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 <tanteanni@hotmail.com> 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 google-web-toolkit@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> google-web-toolkit+unsubscribe@googlegroups.com.
>>> 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 google-web-toolkit@googlegroups.com.
> To unsubscribe from this group, send email to
> google-web-toolkit+unsubscribe@googlegroups.com.
> 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 google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
No comments:
Post a Comment