[Seaside] Seaside: children problem
an organic
seasidebeginner at gmail.com
Sat Dec 29 16:46:57 UTC 2007
Hi,
WAComponent subclass: #Site
instanceVariableNames: 'head menu'
classVariableNames: ''
poolDictionaries: ''
category: 'Pom'
children
^ Array with: self head with: self menu
initialize
super initialize.
head := Head new.
menu := Menu2 new.
Is this info better?
But from menu2 in renderContentOn i call next Class WMenuItem which i want
use to render my items.
When i render items direct in menu2 component it works fine. But i want
learn render items in next component (because items are hierarchical
structure and WMenuItem can work recursively)
When i write render i think write in html to website ;).
I thought that problem is here: menu2 dont have dynamically created
WMenuItem in his children array. But i am not able to add it into this array
(children of menu2). When i change code renderContentOn of Menu2:
renderContentOn: html
| temp |
html
unorderedList: [items do: [:item | temp := WMenuItem new. self
children: self children, temp. html div class: 'a'; with: (temp kategorie:
item) ]]
i get this error:
Error: Instances of WMenuItem are not indexable
2007/12/29, Rajeev Lochan <lochan94 at gmail.com>:
>
> hi,
> Have you defined/declared menu as an instance variable in class Site (I
> hope thats the class n ame for the first set of code). It would be clear if
> you can provide that info.
>
> The error you have got is due to the fact that the method
> children
> ^ Array with: menu
>
> is not triggered properly.
>
> Update if you still encounter any problem,
> Hope that helps,
> Rajeev
>
> On Dec 29, 2007 5:48 PM, an organic < seasidebeginner at gmail.com> wrote:
>
> > Hello,
> >
> > i am new with seaside and i want make this demo:
> >
> > class Site root component:
> >
> > children
> > ^ Array with: self menu
> >
> > renderContentOn: html
> > html div class: 'site'; with: [
> > html div class: 'menu'; with: self menu.
> > ]
> >
> > initialize
> > super initialize.
> >
> > menu := Menu2 new.
> >
> > +canberoot and accessors for menu
> >
> >
> > class Menu2 instance variables: items
> > initialize
> > super initialize.
> > items := OrderedCollection new.
> > items
> > add: (Item new value: '1').
> > items
> > add: (Item new value: '2').
> > items
> > add: (Item new value: '3')
> >
> > renderContentOn: html
> > html
> > unorderedList: [items do: [:item | html div class: 'a'; with:
> > (SubMenu new item: item) ]]
> >
> > class Item instanceVar value
> > renderContentOn: html
> > html text: value.
> >
> >
> >
> > WAComponent subclass: #SubMenu
> > instanceVariableNames: 'item itemEditor'
> > classVariableNames: ''
> > poolDictionaries: ''
> > category: 'Pom'
> >
> > editItem: aItem
> > self itemEditor item: aItem copy.
> > (self call: self itemEditor)
> > ifTrue: [aItem copyFrom: self itemEditor item]
> >
> > initialize
> > super initialize.
> >
> > itemEditor := ItemEditor new.
> >
> > renderContentOn: html
> > html
> > listItem: [html text: ' a ' , self item value.
> > html anchor
> > callback: [self editItem: self item];
> > with: 'e']
> >
> > and itemEditor, i think editors is fine.
> >
> > i think problem is in menu2 when i create new object subMenu because
> > when i click on 'e' and i want edit item i get error:
> >
> > Possible Causes
> >
> > - you do not implement #children correctly
> > - you do not backtrack #children correctly
> > - you do not implement #states correctly
> >
> > Stack Trace
> >
> > 1. thisContext<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&3>
> > WARenderContinuation>>componentsNotFound:self<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&4>a
> > WARenderContinuation aCollection<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&5>an
> > Array(a SubMenu)
> > 2. thisContext<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&6>WARenderContinuation>>unprocessedCallbacks:
> > self<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&7>a
> > WARenderContinuation aCollection<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&8>an
> > Array(a WAActionCallback)owners<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&9>an
> > Array(a SubMenu) each<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&10>a
> > WAActionCallback
> > 3. thisContext<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&11>WARenderContinuation>>processCallbacks:
> > self<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&12>a
> > WARenderContinuation aRequest<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&13>a
> > WARequest GET /seaside/sitelastPosition<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&14>
> > 0 callbackStream<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&15>a
> > WACallbackStreameach<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&16>a
> > WAToolFrame
> > 4. thisContext<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&17>[]
> > in WARenderContinuation>>handleRequest: {[self processCallbacks: aRequest]}self<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&18>a WARenderContinuation
> > aRequest<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&19>a
> > WARequest GET /seaside/site r<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&20>
> > nil
> > 5. thisContext<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&21>
> > BlockContext>>on:do: self<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&22>[]
> > in WARenderContinuation>>handleRequest: {[self processCallbacks: aRequest]}exception
> >
> > <http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&23>an
> > ExceptionSet handlerAction<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&24>[]
> > in WARenderContinuation>>withNotificationHandler: {[:n | n]}handlerActive<http://localhost:8080/seaside/site?_s=sVPLwysvyCJwWnRw&_k=aILgLVQn&25>
> > true
> >
> >
> >
> > I hope it's quite clear. Thnx for help
> >
> > _______________________________________________
> > seaside mailing list
> > seaside at lists.squeakfoundation.org
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >
> >
>
>
> --
> Rajeev Lochan
>
> Co-founder, AR-CAD.com
>
> http://www.ar-cad.com
> +91 9243468076 (Bangalore)
> 080 65355873
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20071229/2e8ebd52/attachment.htm
More information about the seaside
mailing list