[Seaside] Using one component to render multiple views?

Keith Hodges keith_hodges at yahoo.co.uk
Fri Aug 11 01:27:26 UTC 2006

You can use the multiview component from a link... like so

html anchor callback: [ self call: (WAMultipleViewTest view: 'config') ] 
text: '(configuration demo)'.

This will render the multiple view component as a page showing the 
'Config View'. The rendering of this view includes link/buttons that can 
change the view.

html anchor callback: [ self setView: 'EditOrganisation' ] text: '(edit)'.

this will re-render the page but with an alternative view.


You can also use the multiview component embedded in any other component 
using #render:

MyComponent>>renderContentOn: html

some html gen here

html render: configTestComponent

some more html gen here.

To do this the component needs to be registered as one of the children 
of the containing component.


super initialize
configTestComponent := WAMulipleViewTest view: 'config'.


^ Array with: configTestComponent.

hope this helps


Rick Flower wrote:
> Keith Hodges wrote:
>> Dear Rick,
>> It may not be necessary to have lots of different components, if you 
>> have ever looked at SUnit, there is one class, but each time you 
>> instanciate an instance you indicate which test case you want that 
>> instance to run. The test case is run according to its selector.
>> This piece of smalltalk trickery is handled by Object>>#perform: 
>> aSelector
>> I tried the attached code, in which callbacks are able to switch the 
>> viewSelector and it seemed to work quite well.
> Thanks Keith!  I'll check that out when I get home, but it looks like 
> what I was looking for.. That should keep me from having a bunch of 
> needless components lying around.. I'm constantly amazed at the 
> interesting things that Smalltalk can easily do, but which other 
> languages either are incapable of doing or not without some really 
> ugly hacks.. Thanks again!
> -- Rick
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

All New Yahoo! Mail – Tired of Vi at gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html

More information about the Seaside mailing list