I think your only two choices are to either avoid the event bus for the async data call, or as you suggest with the Scheduler.
On Wed, Apr 25, 2012 at 7:54 AM, tanteanni <[email protected]> wrote: > > Thanks! > I understand (some time ago i had a similar problem but in my "main"-Class - > it didn't react on first place change event) > but the solution is ugly: > ...Scheduler.get().scheduleFinally(new ScheduledCommand()... > > is there another way to get this working? i need the dataModel in start to > restore the state given by place. > > > On Wednesday, 25 April 2012 08:21:58 UTC+2, Chris Price wrote: >> >> Ah yes, the code you pasted exactly fits the problem I described. The >> activity start method is called by the ActivityManager from within the >> PlaceChangeEvent.Handler [1]. The SimpleEventBus, uses deferred >> methods to only apply changes to the handler lists after the current >> round of events have fired [2]. i.e. if you are currently in a >> handler, add a handler and then immediately fire that event, your >> handler won't be called. >> >> [1] >> http://code.google.com/p/google-web-toolkit/source/browse/branches/2.1/bikeshed/src/com/google/gwt/app/place/ActivityManager.java?r=8009#85 >> [2] >> http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/event/shared/SimpleEventBus.java#156 >> >> On Wed, Apr 25, 2012 at 7:11 AM, tanteanni wrote: >> >> >> > i think this is not the problem. first i register for event then i fetch >> > the >> > data that triggers the event. here is the code of start method: >> > >> > @Override >> > public final void start(final AcceptsOneWidget panel, final >> > com.google.gwt.event.shared.EventBus eventBus) { >> > this.eb = new ResettableEventBus(eventBus); >> > view.setPresenter(this); >> > this.eb.addHandler(DynamicTableHashResolvedEvent.TYPE, >> > this);//handler registration >> > stateResolver.resolveState(((DynamicTablePlace) >> > pc.getWhere()).getTablehash(), eb);//triggers event >> > panel.setWidget(view); >> > } >> > >> > the event triggered in start method will be received when next event is >> > triggered - so after the start method i am one event too "late". >> > >> > >> > On Tuesday, 24 April 2012 19:19:28 UTC+2, Chris Price wrote: >> >> >> >> Does your data fetch include the event bus in some way? If so you may >> >> be >> >> running into the problem that handler changes (adds/removes) are only >> >> applied after the current event has completed. In this case that event >> >> would >> >> be the place change eventually calling the activity start. >> >> >> >> Sorry for the lack of references, im not at a pc >> >> >> >> On 24 Apr 2012 14:49, "tanteanni" wrote: >> >> >> >>> i have an activity that needs another class to resolve the state (ids >> >>> to >> >>> real objects) brought by current place. this class' >> >>> "getData(StateObject)" >> >>> is called within start-method right after registering for the class' >> >>> gotData-event. But the activitie's onGotData-data method isn't called >> >>> the >> >>> first time. If the activity calls getData after the start method all >> >>> works >> >>> fine. >> >>> i have the feeling that this can't work but how to get it working? The >> >>> data class need an object provided by a special kind of place (the >> >>> same >> >>> place as the activity starts on). >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> >>> Groups >> >>> "Google Web Toolkit" group. >> >>> To view this discussion on the web visit >> >>> https://groups.google.com/d/msg/google-web-toolkit/-/6MNHc8yNbm0J. >> >>> To post to this group, send email to >> >>> [email protected]. >> >>> To unsubscribe from this group, send email to >> >>> [email protected]. >> >>> For more options, visit this group at >> >>> http://groups.google.com/group/google-web-toolkit?hl=en. >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Google Web Toolkit" group. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msg/google-web-toolkit/-/BLVNKJReNVAJ. >> > >> > To post to this group, send email to >> > [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-web-toolkit/-/ttj2N8rpsIIJ. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
