[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

example[spec] Modify the listener of a MobileCoordinator

" self is a MobileThreadAction instance "

| jsObject js coordinatorSpec spec coordinatorConf listenersSpec newHandlerBlock |
newHandlerBlock := [:coordinator | self print: 'OK'].
jsObject := self basicAt: #spec.
js := JS @ jsObject.
coordinatorSpec := js @ #coordinator.
coordinatorConf := JS @ coordinatorSpec @ #configuration.

listenersSpec := JS @ coordinatorConf @ #listeners. 

" change property "
JS @ listenersSpec handleAt: #built: put: newHandlerBlock json.

" update rendered UI "
self update.

"refresh template"
self coordinator template listeners: JS @ listenersSpec.

"re-subscribe"
self coordinator 
	when: (JS @ listenersSpec) keys first 
	do: JS @ listenersSpec @ (JS @ listenersSpec) keys first.

" trigger event to test "
self coordinator triggerEvent: #built: withArguments: (Array with: self coordinator).