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.

Reply via email to