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.

Reply via email to