[Seaside] Ending all callbacks/calls
ramon.leon at allresnet.com
Fri Apr 11 16:03:02 UTC 2008
> 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.
> self call: TaskA
> 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
> 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
Are you aware of WAComponent>>home, it does exactly this. Sending home to
any component removes all decorations from it.
More information about the seaside