On Thursday, June 30, 2011 2:06:22 PM UTC+2, El bassistos wrote: > > I am doing a small "test" application and I am using Activities and > Place but can't make it work as I expect.. > > I have 2 Views, Activities and Places. DefaultView calls Example1View > and Vice Versa .. > > In the Example1Activity I override mayStop() so that it returns a > String asking if user wants to "go to Default". It works the first > time - when I hit "go to Default", it ask if I am "sure, and then I > press " 'OK' - that works, it swaps out the Example1View/Activity and > swap in the DefaultView/Activity. > > But when I hit the "go to Example1" from the DefaultView/Activity, it > ALSO ask the question. I can see in the Debugger that first the > DefaultActivity is called, and that it behaves as expected (the > mayStop() returns null), but the ExampleView's mayStop() method is > ALSO called?? Even though it is no "in focus" - "it is about to come > in Focus" .. So it seems as the previous Example1Activity is NOT > deregistered on the EventBus, after I hit the "OK" (which calles the > onClose() method and should cause the ActivityManager to de-registere > the "Activity"..) > > Any Ideas ??? > > Rehgards Jesper - Running GWT 2.2.1 and it is same behavior on FF, > Chrome and Safari > > > Here is my code: > > DefaultPlace.java: > public class DefaultPlace extends Place {} > > DefaultView.java: > public class DefaultView extends Composite implements IsWidget{ > HorizontalPanel hp = new HorizontalPanel(); > Button b = new Button("Go To Example1"); > > public DefaultView() { > hp.add(b); > initWidget(hp); > > } > > HasClickHandlers getButton() { > return b; > } > } > > DefaultActivity.java > public class DefaultActivity extends AbstractActivity implements > Activity { > > ClientFactory clientFactory; > DefaultView defaultView; > > public DefaultActivity(DefaultPlace place, ClientFactory > clientFactory) { > this.clientFactory = clientFactory; > } > > public void start(AcceptsOneWidget panel, EventBus eventBus) { > defaultView = clientFactory.getDefaultView(); > defaultView.getButton().addClickHandler(new ClickHandler() { > public void onClick(ClickEvent event) { > clientFactory.getPlaceController().goTo(new > Example1Place()); > } > }); >
Beware! you have a leak here! your view is a singleton but your activity is disposable: you should remove the ClickHandler from onStop and onCancel otherwise the button keeps references to all the activities ever started! This is why you experience a slowdown when you remove your mayStop override. I'm afraid it's not the cause of your issue with mayStop but it's a start… -- 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/-/hOZUbep85PIJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.