[Seaside] Ending all callbacks/calls

Ramon Leon ramon.leon at allresnet.com
Fri Apr 11 16:03:02 UTC 2008


> Hello,
> 
> I'm trying to add a "home" link/button to our application, 
> which will return the user to the page after login, whilst 
> not leaving a trail of calls/callbacks "hanging" in memory.
> 
> We are using several tasks for some parts of this 
> application, so I'll make a cut-down example.
> 
> Root>>go
>   self call: TaskA
> 
> TaskA>>go
>   self call: Component
> 
> Component>>renderContentOn: html
>   html anchor callback: [ self session goHome ]; with: 'Home'
> 
> 
> What I have tried so far, is subclassing the session, and 
> task and component with the following overrides:
> 
> Task/Component>>call: aComponentOrTask
>   self session addCall: aComponentOrTask.
>   ^super call: aComponentOrTask.
> 
> Task/Component>>answer: anObject.
>   self session removeCall: self.
>   ^super answer: anObject
> 
> Session>>addCall: aComponentOrTask
>   calls add: aComponentOrTask
> 
> Session>>removeCall: aComponentOrTask
>   calls remove: aComponentOrTask
> 
> Session>>goHome
>   calls do: [ :each | each answer: nil ]
> 
> 
> However, the process will only send #answer: to the first 
> component due to the continuations (I think.)
> 
> Does anyone know of a way to effectively reset the 
> application state to a specific callback?
> 
> Many thanks,
> --
> John Thornborrow
> http://www.pinesoft.co.uk

Are you aware of WAComponent>>home, it does exactly this.  Sending home to
any component removes all decorations from it.

Ramon Leon
http://onsmalltalk.com



More information about the seaside mailing list