Component confusion

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Component confusion

Jason Johnson-3

Hello all,

 

I have just started using seaside, and I must say I am very impressed.  I have been able to fix all the problems I have ran into so far but now I tried to make a new component and there seems to be something wrong with it.  I am confused because it seems to me like any other component (im using the Store example as a reference).  The message I get is “Error. Components not found while processing callbacks:#(a WANavBar)”.

 

What my component is trying to do is be the main navagation component for a site I will eventually build.  It is a very simple class at the moment.  It inherits from WAComponent and it has two instance variables: items (the list items) and activeItem.  Here is the renderOn: method:

 

renderContentOn: html

            html divNamed: 'navcontainer' with: [

                        html cssId: 'navlist'; unorderedList: [

                                   items do: [:item|

                                               (item = activeItem) ifTrue: [ html cssId: 'active'].

                                               html listItem: [

                                                           html anchorWithAction: [self activeItem: item ] text: item

                                               ]

                                   ]

                        ]

            ].

 

As you can see, all I’m trying to do is make a CSS aware navagation so that the designer can just do his thing with CSS without having to figure out how it gets made.  I want any part of the site to use this.  I tried it in another test application where it does:

 

navBar := WANavBar new.

navBar items: #(‘Item one’ ‘Item two’).

navBar activeItem: ‘Item one’.

 

When I click on either item I get the above error.

 

Thanks very much for your help,

Jason


_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: Component confusion

Boris Popov, DeepCove Labs (SNN)
Jason,

Welcome to the Light Side :) Check these links out for the explanation,

http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
http://www.motionobj.com/seasidefaq/ComponentsNotFoundWhileProcessingCal
lbacks
http://www.motionobj.com/seasidefaq/RegisteringASubcomponent

You must be doing render: component somewhere but that component is not
included in the #children method of the container component.

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 9:14 AM
To: [hidden email]
Subject: [Seaside] Component confusion

Hello all,
 
I have just started using seaside, and I must say I am very impressed.
I have been able to fix all the problems I have ran into so far but now
I tried to make a new component and there seems to be something wrong
with it.  I am confused because it seems to me like any other component
(im using the Store example as a reference).  The message I get is
"Error. Components not found while processing callbacks:#(a WANavBar)".
 
What my component is trying to do is be the main navagation component
for a site I will eventually build.  It is a very simple class at the
moment.  It inherits from WAComponent and it has two instance variables:
items (the list items) and activeItem.  Here is the renderOn: method:
 
renderContentOn: html
            html divNamed: 'navcontainer' with: [
                        html cssId: 'navlist'; unorderedList: [
                                   items do: [:item|
                                               (item = activeItem)
ifTrue: [ html cssId: 'active'].
                                               html listItem: [
                                                           html
anchorWithAction: [self activeItem: item ] text: item
                                               ]
                                   ]
                        ]
            ].
 
As you can see, all I'm trying to do is make a CSS aware navagation so
that the designer can just do his thing with CSS without having to
figure out how it gets made.  I want any part of the site to use this.
I tried it in another test application where it does:
 
navBar := WANavBar new.
navBar items: #('Item one' 'Item two').
navBar activeItem: 'Item one'.
 
When I click on either item I get the above error.
 
Thanks very much for your help,
Jason
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Component confusion

Michel Bany-3
In reply to this post by Jason Johnson-3
Jason Johnson a écrit :

>  
>
> What my component is trying to do is be the main navagation component
> for a site I will eventually build.  It is a very simple class at the
> moment.  It inherits from WAComponent and it has two instance
> variables: items (the list items) and activeItem.  Here is the
> renderOn: method:
>
Hi Jason,
Not sure, but it looks as if  the "items" were other Seaside components.
If this happens to be true, then your main component is rendering
child components, then you need to tell Seaside what those children are,
with an instance method that may look like this:
    children
           ^items
HTH
Michel.

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

AW: Component confusion

Jason Johnson-3
In reply to this post by Boris Popov, DeepCove Labs (SNN)
Oh no, I didn't read the documentation. :(  I appologize, I really
thought I had read through everything.  I guess I'm trying to learn too
many things at once.

Anyway, thank you very much for your help on this. Now it works
beutiful.  Exactly as I would expect.

I read through the docs more thouroughly this time but I still have a
question about something.

I did notice that Seaside seems to want all styles to be in the code.
How hard would it be to set it up so that a call to the style method
will return a URL?  For example, if I have a site that is static on an
Apache server, that happens to redirect all requests for applications to
seaside, but I want to use site wide style sheets for it.  The easiest
thing would be if I can just get seaside to give a full URL for where to
find the stylesheet.

Thanks,
Jason

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 18:23
An: [hidden email]
Betreff: RE: [Seaside] Component confusion

Jason,

Welcome to the Light Side :) Check these links out for the explanation,

http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
http://www.motionobj.com/seasidefaq/ComponentsNotFoundWhileProcessingCal
lbacks
http://www.motionobj.com/seasidefaq/RegisteringASubcomponent

You must be doing render: component somewhere but that component is not
included in the #children method of the container component.

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 9:14 AM
To: [hidden email]
Subject: [Seaside] Component confusion

Hello all,
 
I have just started using seaside, and I must say I am very impressed.
I have been able to fix all the problems I have ran into so far but now
I tried to make a new component and there seems to be something wrong
with it.  I am confused because it seems to me like any other component
(im using the Store example as a reference).  The message I get is
"Error. Components not found while processing callbacks:#(a WANavBar)".
 
What my component is trying to do is be the main navagation component
for a site I will eventually build.  It is a very simple class at the
moment.  It inherits from WAComponent and it has two instance variables:
items (the list items) and activeItem.  Here is the renderOn: method:
 
renderContentOn: html
            html divNamed: 'navcontainer' with: [
                        html cssId: 'navlist'; unorderedList: [
                                   items do: [:item|
                                               (item = activeItem)
ifTrue: [ html cssId: 'active'].
                                               html listItem: [
                                                           html
anchorWithAction: [self activeItem: item ] text: item
                                               ]
                                   ]
                        ]
            ].
 
As you can see, all I'm trying to do is make a CSS aware navagation so
that the designer can just do his thing with CSS without having to
figure out how it gets made.  I want any part of the site to use this.
I tried it in another test application where it does:
 
navBar := WANavBar new.
navBar items: #('Item one' 'Item two').
navBar activeItem: 'Item one'.
 
When I click on either item I get the above error.
 
Thanks very much for your help,
Jason
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: Component confusion

Ramon Leon-5
>
> I did notice that Seaside seems to want all styles to be in the code.
> How hard would it be to set it up so that a call to the style
> method will return a URL?  For example, if I have a site that
> is static on an Apache server, that happens to redirect all
> requests for applications to seaside, but I want to use site
> wide style sheets for it.  The easiest thing would be if I
> can just get seaside to give a full URL for where to find the
> stylesheet.
>
> Thanks,
> Jason

Just override updateRoot: on your component like so to reference an external
style sheet..

updateRoot: anHtmlRoot
        super updateRoot: anHtmlRoot.
        anHtmlRoot linkToStyle: '/style.css'.
        anHtmlRoot linkToScript: '/blabla.js'.
        anHtmlRoot title: 'Some Page Title'.

This is also used to set the title, or reference external JavaScript files.

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: Component confusion

Boris Popov, DeepCove Labs (SNN)
In reply to this post by Jason Johnson-3
For these types of things you could create a subclass of WAStyleLibrary, say MyStyles, and then add it to your application,

MyApplication class>>initialize
 | app |
 app := self registerAsApplication: 'myapplication'.
 app libraries add: MyStyles.

See WAStandardStyles for a sample of such style library.

Having said all this, you can also link to the external stylesheets, by modifying the html root in the #updateRoot: method on your component,

updateRoot: aHtmlRoot
 super updateRoot: aHtmlRoot.
 aHtmlRoot
        title: 'Welcome to My Application';
        linkToStyle: 'http://www.myapplication.com/style.css'

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Jason Johnson
Sent: Wednesday, August 02, 2006 10:34 AM
To: 'The Squeak Enterprise Aubergines Server - general discussion.'
Subject: AW: [Seaside] Component confusion

Oh no, I didn't read the documentation. :(  I appologize, I really
thought I had read through everything.  I guess I'm trying to learn too
many things at once.

Anyway, thank you very much for your help on this. Now it works
beutiful.  Exactly as I would expect.

I read through the docs more thouroughly this time but I still have a
question about something.

I did notice that Seaside seems to want all styles to be in the code.
How hard would it be to set it up so that a call to the style method
will return a URL?  For example, if I have a site that is static on an
Apache server, that happens to redirect all requests for applications to
seaside, but I want to use site wide style sheets for it.  The easiest
thing would be if I can just get seaside to give a full URL for where to
find the stylesheet.

Thanks,
Jason

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 18:23
An: [hidden email]
Betreff: RE: [Seaside] Component confusion

Jason,

Welcome to the Light Side :) Check these links out for the explanation,

http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
http://www.motionobj.com/seasidefaq/ComponentsNotFoundWhileProcessingCal
lbacks
http://www.motionobj.com/seasidefaq/RegisteringASubcomponent

You must be doing render: component somewhere but that component is not
included in the #children method of the container component.

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 9:14 AM
To: [hidden email]
Subject: [Seaside] Component confusion

Hello all,
 
I have just started using seaside, and I must say I am very impressed.
I have been able to fix all the problems I have ran into so far but now
I tried to make a new component and there seems to be something wrong
with it.  I am confused because it seems to me like any other component
(im using the Store example as a reference).  The message I get is
"Error. Components not found while processing callbacks:#(a WANavBar)".
 
What my component is trying to do is be the main navagation component
for a site I will eventually build.  It is a very simple class at the
moment.  It inherits from WAComponent and it has two instance variables:
items (the list items) and activeItem.  Here is the renderOn: method:
 
renderContentOn: html
            html divNamed: 'navcontainer' with: [
                        html cssId: 'navlist'; unorderedList: [
                                   items do: [:item|
                                               (item = activeItem)
ifTrue: [ html cssId: 'active'].
                                               html listItem: [
                                                           html
anchorWithAction: [self activeItem: item ] text: item
                                               ]
                                   ]
                        ]
            ].
 
As you can see, all I'm trying to do is make a CSS aware navagation so
that the designer can just do his thing with CSS without having to
figure out how it gets made.  I want any part of the site to use this.
I tried it in another test application where it does:
 
navBar := WANavBar new.
navBar items: #('Item one' 'Item two').
navBar activeItem: 'Item one'.
 
When I click on either item I get the above error.
 
Thanks very much for your help,
Jason
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

AW: Component confusion

Jason Johnson-3
Ah, that is simple enough.  Thanks everyone.  I saw the part about
deriving a Styles class, but that would put me reading in a file and
then passing it as a string.  But the updateRoot looks perfect.

Sorry for all the questions that are probably all answered somewhere in
the documentation (I really looked all over for this styles thing and
didn't see it).  I am brand new to smalltalk, started last Friday.  My
first dynamic language was Perl and I didn't like it at all.  But
smalltalk seems pretty nice.  Simple syntax, power comes from the
library, which is how I like it.

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 19:43
An: The Squeak Enterprise Aubergines Server - general discussion.
Betreff: RE: [Seaside] Component confusion

For these types of things you could create a subclass of WAStyleLibrary,
say MyStyles, and then add it to your application,

MyApplication class>>initialize
 | app |
 app := self registerAsApplication: 'myapplication'.
 app libraries add: MyStyles.

See WAStandardStyles for a sample of such style library.

Having said all this, you can also link to the external stylesheets, by
modifying the html root in the #updateRoot: method on your component,

updateRoot: aHtmlRoot
 super updateRoot: aHtmlRoot.
 aHtmlRoot
        title: 'Welcome to My Application';
        linkToStyle: 'http://www.myapplication.com/style.css'

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 10:34 AM
To: 'The Squeak Enterprise Aubergines Server - general discussion.'
Subject: AW: [Seaside] Component confusion

Oh no, I didn't read the documentation. :(  I appologize, I really
thought I had read through everything.  I guess I'm trying to learn too
many things at once.

Anyway, thank you very much for your help on this. Now it works
beutiful.  Exactly as I would expect.

I read through the docs more thouroughly this time but I still have a
question about something.

I did notice that Seaside seems to want all styles to be in the code.
How hard would it be to set it up so that a call to the style method
will return a URL?  For example, if I have a site that is static on an
Apache server, that happens to redirect all requests for applications to
seaside, but I want to use site wide style sheets for it.  The easiest
thing would be if I can just get seaside to give a full URL for where to
find the stylesheet.

Thanks,
Jason

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 18:23
An: [hidden email]
Betreff: RE: [Seaside] Component confusion

Jason,

Welcome to the Light Side :) Check these links out for the explanation,

http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
http://www.motionobj.com/seasidefaq/ComponentsNotFoundWhileProcessingCal
lbacks
http://www.motionobj.com/seasidefaq/RegisteringASubcomponent

You must be doing render: component somewhere but that component is not
included in the #children method of the container component.

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 9:14 AM
To: [hidden email]
Subject: [Seaside] Component confusion

Hello all,
 
I have just started using seaside, and I must say I am very impressed.
I have been able to fix all the problems I have ran into so far but now
I tried to make a new component and there seems to be something wrong
with it.  I am confused because it seems to me like any other component
(im using the Store example as a reference).  The message I get is
"Error. Components not found while processing callbacks:#(a WANavBar)".
 
What my component is trying to do is be the main navagation component
for a site I will eventually build.  It is a very simple class at the
moment.  It inherits from WAComponent and it has two instance variables:
items (the list items) and activeItem.  Here is the renderOn: method:
 
renderContentOn: html
            html divNamed: 'navcontainer' with: [
                        html cssId: 'navlist'; unorderedList: [
                                   items do: [:item|
                                               (item = activeItem)
ifTrue: [ html cssId: 'active'].
                                               html listItem: [
                                                           html
anchorWithAction: [self activeItem: item ] text: item
                                               ]
                                   ]
                        ]
            ].
 
As you can see, all I'm trying to do is make a CSS aware navagation so
that the designer can just do his thing with CSS without having to
figure out how it gets made.  I want any part of the site to use this.
I tried it in another test application where it does:
 
navBar := WANavBar new.
navBar items: #('Item one' 'Item two').
navBar activeItem: 'Item one'.
 
When I click on either item I get the above error.
 
Thanks very much for your help,
Jason
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: Component confusion

Boris Popov, DeepCove Labs (SNN)
You're most welcome, and certainly don't hesitate asking any questions you may have. The documentation is faily limited and spread across various blogs and web pages, but the bits that are out there are likely quite useful too.

Cheers!

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Jason Johnson
Sent: Wednesday, August 02, 2006 10:47 AM
To: 'The Squeak Enterprise Aubergines Server - general discussion.'
Subject: AW: [Seaside] Component confusion

Ah, that is simple enough.  Thanks everyone.  I saw the part about
deriving a Styles class, but that would put me reading in a file and
then passing it as a string.  But the updateRoot looks perfect.

Sorry for all the questions that are probably all answered somewhere in
the documentation (I really looked all over for this styles thing and
didn't see it).  I am brand new to smalltalk, started last Friday.  My
first dynamic language was Perl and I didn't like it at all.  But
smalltalk seems pretty nice.  Simple syntax, power comes from the
library, which is how I like it.

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 19:43
An: The Squeak Enterprise Aubergines Server - general discussion.
Betreff: RE: [Seaside] Component confusion

For these types of things you could create a subclass of WAStyleLibrary,
say MyStyles, and then add it to your application,

MyApplication class>>initialize
 | app |
 app := self registerAsApplication: 'myapplication'.
 app libraries add: MyStyles.

See WAStandardStyles for a sample of such style library.

Having said all this, you can also link to the external stylesheets, by
modifying the html root in the #updateRoot: method on your component,

updateRoot: aHtmlRoot
 super updateRoot: aHtmlRoot.
 aHtmlRoot
        title: 'Welcome to My Application';
        linkToStyle: 'http://www.myapplication.com/style.css'

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 10:34 AM
To: 'The Squeak Enterprise Aubergines Server - general discussion.'
Subject: AW: [Seaside] Component confusion

Oh no, I didn't read the documentation. :(  I appologize, I really
thought I had read through everything.  I guess I'm trying to learn too
many things at once.

Anyway, thank you very much for your help on this. Now it works
beutiful.  Exactly as I would expect.

I read through the docs more thouroughly this time but I still have a
question about something.

I did notice that Seaside seems to want all styles to be in the code.
How hard would it be to set it up so that a call to the style method
will return a URL?  For example, if I have a site that is static on an
Apache server, that happens to redirect all requests for applications to
seaside, but I want to use site wide style sheets for it.  The easiest
thing would be if I can just get seaside to give a full URL for where to
find the stylesheet.

Thanks,
Jason

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von Boris
Popov
Gesendet: Mittwoch, 2. August 2006 18:23
An: [hidden email]
Betreff: RE: [Seaside] Component confusion

Jason,

Welcome to the Light Side :) Check these links out for the explanation,

http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
http://www.motionobj.com/seasidefaq/ComponentsNotFoundWhileProcessingCal
lbacks
http://www.motionobj.com/seasidefaq/RegisteringASubcomponent

You must be doing render: component somewhere but that component is not
included in the #children method of the container component.

Hope this helps,

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jason
Johnson
Sent: Wednesday, August 02, 2006 9:14 AM
To: [hidden email]
Subject: [Seaside] Component confusion

Hello all,
 
I have just started using seaside, and I must say I am very impressed.
I have been able to fix all the problems I have ran into so far but now
I tried to make a new component and there seems to be something wrong
with it.  I am confused because it seems to me like any other component
(im using the Store example as a reference).  The message I get is
"Error. Components not found while processing callbacks:#(a WANavBar)".
 
What my component is trying to do is be the main navagation component
for a site I will eventually build.  It is a very simple class at the
moment.  It inherits from WAComponent and it has two instance variables:
items (the list items) and activeItem.  Here is the renderOn: method:
 
renderContentOn: html
            html divNamed: 'navcontainer' with: [
                        html cssId: 'navlist'; unorderedList: [
                                   items do: [:item|
                                               (item = activeItem)
ifTrue: [ html cssId: 'active'].
                                               html listItem: [
                                                           html
anchorWithAction: [self activeItem: item ] text: item
                                               ]
                                   ]
                        ]
            ].
 
As you can see, all I'm trying to do is make a CSS aware navagation so
that the designer can just do his thing with CSS without having to
figure out how it gets made.  I want any part of the site to use this.
I tried it in another test application where it does:
 
navBar := WANavBar new.
navBar items: #('Item one' 'Item two').
navBar activeItem: 'Item one'.
 
When I click on either item I get the above error.
 
Thanks very much for your help,
Jason
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: AW: Component confusion

stephane ducasse
In reply to this post by Jason Johnson-3
Hi jason

please do not stop you to ask questions. We all learn each time  
someone thinks
he is asking obvious questions!
Frameworks are the most difficult applications to learn and master.
Smalltalk is uniform and simple only once you got it.
Really please do not hesitate to ask questions!

Stef

On 2 août 06, at 19:46, Jason Johnson wrote:

> Ah, that is simple enough.  Thanks everyone.  I saw the part about
> deriving a Styles class, but that would put me reading in a file and
> then passing it as a string.  But the updateRoot looks perfect.
>
> Sorry for all the questions that are probably all answered  
> somewhere in
> the documentation (I really looked all over for this styles thing and
> didn't see it).  I am brand new to smalltalk, started last Friday.  My
> first dynamic language was Perl and I didn't like it at all.  But
> smalltalk seems pretty nice.  Simple syntax, power comes from the
> library, which is how I like it.
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email]
> [mailto:[hidden email]] Im Auftrag von  
> Boris
> Popov
> Gesendet: Mittwoch, 2. August 2006 19:43
> An: The Squeak Enterprise Aubergines Server - general discussion.
> Betreff: RE: [Seaside] Component confusion
>
> For these types of things you could create a subclass of  
> WAStyleLibrary,
> say MyStyles, and then add it to your application,
>
> MyApplication class>>initialize
>  | app |
>  app := self registerAsApplication: 'myapplication'.
>  app libraries add: MyStyles.
>
> See WAStandardStyles for a sample of such style library.
>
> Having said all this, you can also link to the external  
> stylesheets, by
> modifying the html root in the #updateRoot: method on your component,
>
> updateRoot: aHtmlRoot
>  super updateRoot: aHtmlRoot.
>  aHtmlRoot
> title: 'Welcome to My Application';
> linkToStyle: 'http://www.myapplication.com/style.css'
>
> Hope this helps,
>
> -Boris
>
> --
> +1.604.689.0322
> DeepCove Labs Ltd.
> 4th floor 595 Howe Street
> Vancouver, Canada V6C 2T5
>
> [hidden email]
>
> CONFIDENTIALITY NOTICE
>
> This email is intended only for the persons named in the message
> header. Unless otherwise indicated, it contains information that is
> private and confidential. If you have received it in error, please
> notify the sender and delete the entire message including any
> attachments.
>
> Thank you.
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Jason
> Johnson
> Sent: Wednesday, August 02, 2006 10:34 AM
> To: 'The Squeak Enterprise Aubergines Server - general discussion.'
> Subject: AW: [Seaside] Component confusion
>
> Oh no, I didn't read the documentation. :(  I appologize, I really
> thought I had read through everything.  I guess I'm trying to learn  
> too
> many things at once.
>
> Anyway, thank you very much for your help on this. Now it works
> beutiful.  Exactly as I would expect.
>
> I read through the docs more thouroughly this time but I still have a
> question about something.
>
> I did notice that Seaside seems to want all styles to be in the code.
> How hard would it be to set it up so that a call to the style method
> will return a URL?  For example, if I have a site that is static on an
> Apache server, that happens to redirect all requests for  
> applications to
> seaside, but I want to use site wide style sheets for it.  The easiest
> thing would be if I can just get seaside to give a full URL for  
> where to
> find the stylesheet.
>
> Thanks,
> Jason
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email]
> [mailto:[hidden email]] Im Auftrag von  
> Boris
> Popov
> Gesendet: Mittwoch, 2. August 2006 18:23
> An: [hidden email]
> Betreff: RE: [Seaside] Component confusion
>
> Jason,
>
> Welcome to the Light Side :) Check these links out for the  
> explanation,
>
> http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
> http://www.motionobj.com/seasidefaq/ 
> ComponentsNotFoundWhileProcessingCal
> lbacks
> http://www.motionobj.com/seasidefaq/RegisteringASubcomponent
>
> You must be doing render: component somewhere but that component is  
> not
> included in the #children method of the container component.
>
> Hope this helps,
>
> -Boris
>
> --
> +1.604.689.0322
> DeepCove Labs Ltd.
> 4th floor 595 Howe Street
> Vancouver, Canada V6C 2T5
>
> [hidden email]
>
> CONFIDENTIALITY NOTICE
>
> This email is intended only for the persons named in the message
> header. Unless otherwise indicated, it contains information that is
> private and confidential. If you have received it in error, please
> notify the sender and delete the entire message including any
> attachments.
>
> Thank you.
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Jason
> Johnson
> Sent: Wednesday, August 02, 2006 9:14 AM
> To: [hidden email]
> Subject: [Seaside] Component confusion
>
> Hello all,
>
> I have just started using seaside, and I must say I am very impressed.
> I have been able to fix all the problems I have ran into so far but  
> now
> I tried to make a new component and there seems to be something wrong
> with it.  I am confused because it seems to me like any other  
> component
> (im using the Store example as a reference).  The message I get is
> "Error. Components not found while processing callbacks:#(a  
> WANavBar)".
>
> What my component is trying to do is be the main navagation component
> for a site I will eventually build.  It is a very simple class at the
> moment.  It inherits from WAComponent and it has two instance  
> variables:
> items (the list items) and activeItem.  Here is the renderOn: method:
>
> renderContentOn: html
>             html divNamed: 'navcontainer' with: [
>                         html cssId: 'navlist'; unorderedList: [
>                                    items do: [:item|
>                                                (item = activeItem)
> ifTrue: [ html cssId: 'active'].
>                                                html listItem: [
>                                                            html
> anchorWithAction: [self activeItem: item ] text: item
>                                                ]
>                                    ]
>                         ]
>             ].
>
> As you can see, all I'm trying to do is make a CSS aware navagation so
> that the designer can just do his thing with CSS without having to
> figure out how it gets made.  I want any part of the site to use this.
> I tried it in another test application where it does:
>
> navBar := WANavBar new.
> navBar items: #('Item one' 'Item two').
> navBar activeItem: 'Item one'.
>
> When I click on either item I get the above error.
>
> Thanks very much for your help,
> Jason
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

AW: AW: Component confusion

Jason Johnson-3
Well thanks everyone.  I must say; this is the friendliest mail list I
have ever seen. :)

>From what I have seen so far, it seems to me seaside should be pushed
even more.

I have always been a backend programmer and prefer writing libraries,
etc.  When I wanted to play around with GUI programming I downloaded the
C++ RAD builders and played with them, tried out VB etc, and just
decided GUI programming just wasn't for me.

Lately I have been looking around at other language offerings to see
what's out there and I noticed that Dolphin Account manager tutorial.  I
was really impressed because it had a nice GUI building tool and the
language made sense for how to talk to the components.  The C++ RAD
tools always took me the entire 30 trial period to figure out what
enough components did to make something trivial.  And of course I don't
think I need to break down my problems with VB as a language.

So the next thing I tried was squeak, and I tried to build the same
graphic application.  I'm sure the morph stuff is nice for higher end
graphic things but it didn't seem to be very good for the low end that
most people want to do when they set out to make some GUI interface.

This is where my comment about seaside comes in.  Squeak should make
seaside their official main graphical interface system.  The fact is,
several big players in the technology world believe the future is going
to be all GUI's through the web browser or some form of that.  I know
you don't have a RAD tool for making the components, per se, but it's
not as necassary for web programming IMO.  Anyone who has been in IT for
a while knows how those things work, and the great thing about the
seaside concept is: the programmer doesn't concern himself with that
stuff anyway.  If I think about it; Dolphin is really nice for making
window's GUI's.  But it still leaves me, a programmer not a designer,
making display choices.  With seaside you can really put all the
graphical desisions in the hands of a true "right brain" graphics person
instead of a "left brain" programmer.

And the other advantage is it lessens one of the complaints of
smalltalk: smalltalk likes to stay in it's own world.  But if the main
graphical interface for applications a smalltalker writes are seaside
apps then that doesn't apply anymore.

Just my thoughts. :)

-----Ursprüngliche Nachricht-----
Von: [hidden email]
[mailto:[hidden email]] Im Auftrag von
stephane ducasse
Gesendet: Donnerstag, 3. August 2006 09:58
An: The Squeak Enterprise Aubergines Server - general discussion.
Betreff: Re: AW: [Seaside] Component confusion

Hi jason

please do not stop you to ask questions. We all learn each time  
someone thinks
he is asking obvious questions!
Frameworks are the most difficult applications to learn and master.
Smalltalk is uniform and simple only once you got it.
Really please do not hesitate to ask questions!

Stef

On 2 août 06, at 19:46, Jason Johnson wrote:

> Ah, that is simple enough.  Thanks everyone.  I saw the part about
> deriving a Styles class, but that would put me reading in a file and
> then passing it as a string.  But the updateRoot looks perfect.
>
> Sorry for all the questions that are probably all answered  
> somewhere in
> the documentation (I really looked all over for this styles thing and
> didn't see it).  I am brand new to smalltalk, started last Friday.  My
> first dynamic language was Perl and I didn't like it at all.  But
> smalltalk seems pretty nice.  Simple syntax, power comes from the
> library, which is how I like it.
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email]
> [mailto:[hidden email]] Im Auftrag von  
> Boris
> Popov
> Gesendet: Mittwoch, 2. August 2006 19:43
> An: The Squeak Enterprise Aubergines Server - general discussion.
> Betreff: RE: [Seaside] Component confusion
>
> For these types of things you could create a subclass of  
> WAStyleLibrary,
> say MyStyles, and then add it to your application,
>
> MyApplication class>>initialize
>  | app |
>  app := self registerAsApplication: 'myapplication'.
>  app libraries add: MyStyles.
>
> See WAStandardStyles for a sample of such style library.
>
> Having said all this, you can also link to the external  
> stylesheets, by
> modifying the html root in the #updateRoot: method on your component,
>
> updateRoot: aHtmlRoot
>  super updateRoot: aHtmlRoot.
>  aHtmlRoot
> title: 'Welcome to My Application';
> linkToStyle: 'http://www.myapplication.com/style.css'
>
> Hope this helps,
>
> -Boris
>
> --
> +1.604.689.0322
> DeepCove Labs Ltd.
> 4th floor 595 Howe Street
> Vancouver, Canada V6C 2T5
>
> [hidden email]
>
> CONFIDENTIALITY NOTICE
>
> This email is intended only for the persons named in the message
> header. Unless otherwise indicated, it contains information that is
> private and confidential. If you have received it in error, please
> notify the sender and delete the entire message including any
> attachments.
>
> Thank you.
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Jason
> Johnson
> Sent: Wednesday, August 02, 2006 10:34 AM
> To: 'The Squeak Enterprise Aubergines Server - general discussion.'
> Subject: AW: [Seaside] Component confusion
>
> Oh no, I didn't read the documentation. :(  I appologize, I really
> thought I had read through everything.  I guess I'm trying to learn  
> too
> many things at once.
>
> Anyway, thank you very much for your help on this. Now it works
> beutiful.  Exactly as I would expect.
>
> I read through the docs more thouroughly this time but I still have a
> question about something.
>
> I did notice that Seaside seems to want all styles to be in the code.
> How hard would it be to set it up so that a call to the style method
> will return a URL?  For example, if I have a site that is static on an
> Apache server, that happens to redirect all requests for  
> applications to
> seaside, but I want to use site wide style sheets for it.  The easiest
> thing would be if I can just get seaside to give a full URL for  
> where to
> find the stylesheet.
>
> Thanks,
> Jason
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email]
> [mailto:[hidden email]] Im Auftrag von  
> Boris
> Popov
> Gesendet: Mittwoch, 2. August 2006 18:23
> An: [hidden email]
> Betreff: RE: [Seaside] Component confusion
>
> Jason,
>
> Welcome to the Light Side :) Check these links out for the  
> explanation,
>
> http://www.shaffer-consulting.com/david/Seaside/Embedding/index.html
> http://www.motionobj.com/seasidefaq/ 
> ComponentsNotFoundWhileProcessingCal
> lbacks
> http://www.motionobj.com/seasidefaq/RegisteringASubcomponent
>
> You must be doing render: component somewhere but that component is  
> not
> included in the #children method of the container component.
>
> Hope this helps,
>
> -Boris
>
> --
> +1.604.689.0322
> DeepCove Labs Ltd.
> 4th floor 595 Howe Street
> Vancouver, Canada V6C 2T5
>
> [hidden email]
>
> CONFIDENTIALITY NOTICE
>
> This email is intended only for the persons named in the message
> header. Unless otherwise indicated, it contains information that is
> private and confidential. If you have received it in error, please
> notify the sender and delete the entire message including any
> attachments.
>
> Thank you.
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Jason
> Johnson
> Sent: Wednesday, August 02, 2006 9:14 AM
> To: [hidden email]
> Subject: [Seaside] Component confusion
>
> Hello all,
>
> I have just started using seaside, and I must say I am very impressed.
> I have been able to fix all the problems I have ran into so far but  
> now
> I tried to make a new component and there seems to be something wrong
> with it.  I am confused because it seems to me like any other  
> component
> (im using the Store example as a reference).  The message I get is
> "Error. Components not found while processing callbacks:#(a  
> WANavBar)".
>
> What my component is trying to do is be the main navagation component
> for a site I will eventually build.  It is a very simple class at the
> moment.  It inherits from WAComponent and it has two instance  
> variables:
> items (the list items) and activeItem.  Here is the renderOn: method:
>
> renderContentOn: html
>             html divNamed: 'navcontainer' with: [
>                         html cssId: 'navlist'; unorderedList: [
>                                    items do: [:item|
>                                                (item = activeItem)
> ifTrue: [ html cssId: 'active'].
>                                                html listItem: [
>                                                            html
> anchorWithAction: [self activeItem: item ] text: item
>                                                ]
>                                    ]
>                         ]
>             ].
>
> As you can see, all I'm trying to do is make a CSS aware navagation so
> that the designer can just do his thing with CSS without having to
> figure out how it gets made.  I want any part of the site to use this.
> I tried it in another test application where it does:
>
> navBar := WANavBar new.
> navBar items: #('Item one' 'Item two').
> navBar activeItem: 'Item one'.
>
> When I click on either item I get the above error.
>
> Thanks very much for your help,
> Jason
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside