Thank you for quick responses. It seems that we all resorted to Scheduler 
and control our custom events by tweaking the intrinsic logic 
of browser's event loop. I thought I could completely miss some obvious 
solution.

On Wednesday, October 26, 2016 at 7:51:19 PM UTC+3, vitrums wrote:
>
> [ Original post on StackOverflow 
> http://stackoverflow.com/questions/40130383/howto-use-gwt-evenbus-to-schedule-openevent-closeevent-sequence
>  
> ]
>
> Say we have few handlers for both events. The goal is to make sure, that 
> all *OpenEvent handlers*finish before any of *CloseEvent handlers* start 
> their job. The old *EventBus* had a reverse order flag, which sometimes 
> helped greatly in these particular cases. I.e. a handler, responsible for 
> launching some process which leads to *CloseEvent* being fired (i.e. 
> event emitter), usually registers itself to a bus first.
>
> Now, due to a synchronous nature of javascript each handler of *OpenEvent* 
> ends 
> his job before the next handler starts. In my app the first *OpenHandler* 
> added 
> to a bus is a *CloseEvent* emitter. Therefore I get an undesirable 
> sequence of calls: *1st handler of OpenEvent* -> *all CloseEvent handlers*
>  -> *the rest of OpenEvent handlers*.
>
> *My question is:* what's the best practice to establish the desirable 
> behavior? So far as a workaround I use 
> *Scheduler.scheduleDeferred(Scheduler.ScheduledCommand 
> cmd)* to enqueue*EventBus.fireEventFromSource(Event event, Object source)*
>  of *CloseEvent* call to the next browser's event loop tick.
>
> p.s. My current thoughts are as follows. I don't want to rely of *Timer*
>  or *Scheduler* (though it might be the only option, which I'm not sure 
> about). Also I have no interest in introducing any flag variables, 
> responsible for tracking which event occurred first. Instead, if one looks 
> closer into the*SimpleEventBus* code, there's a *firingDepth* counter 
> variable, which only works to delay*addHandler(...)* and 
> *removeHandler(...)* calls. It would be great, if same logic could be 
> applied to order call sequences of handlers for different events.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to