[Seaside] what became of clearDelegate and where's my root

Avi Bryant avi at beta4.com
Sat Aug 28 23:53:19 CEST 2004


On Aug 28, 2004, at 9:51 PM, radoslav hodnicak wrote:

> Af far as I remember the discussion about components declaring their
> #children, one of the arguments was to have #clearDelegate work in a 
> clean
> manner. It's not obvious to me how to implement such method in 2.5 in 
> the
> presence of decorations and separate render loops...

This ought to work, but I haven't tested it:

clearDelegate
	self clearAllDelegates

clearAllDelegates
	self decorationChainDo:
		[:ea |
		(ea isDecoration and: [ea isDelegation]) ifTrue:
			[self removeDecoration: ea]]

> Another problem I have is that in seaside 2.3 I could access the root
> component via session, now the render loop (with its root) isn't stored
> anywhere (I guess a state holder in WAMain subclass would do?). I need 
> to
> access root to simulate user actions that result in the same state of 
> the
> application as if a real user clicked the links.

Need to access it from where?  One interesting property of 2.5 is that 
in either a render method or in a callback, the dynamic context is 
equivalent to the UI nesting - which means that if you walk back up the 
stack, you're also walking up the (current, dynamic) parent component 
chain.  This is probably the best way to find the root.

Otherwise, yeah, just stick it in an inst var on Session, I'd say...

Avi



More information about the Seaside mailing list