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 <[email protected]> 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 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