Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git c/src/main/java/net/customware/gwt/presenter/client/place/Place.java w/src/main/java/net/customware/gwt/presenter/client/place/Place.java
- index f9fa5df..6f63434 100644
- --- c/src/main/java/net/customware/gwt/presenter/client/place/Place.java
- +++ w/src/main/java/net/customware/gwt/presenter/client/place/Place.java
- @@ -18,6 +18,7 @@ import net.customware.gwt.presenter.client.EventBus;
- */
- public abstract class Place {
- private HandlerRegistration placeRequestRegistration;
- + protected boolean isHandling = false;
- public Place() {
- }
- @@ -80,8 +81,13 @@ public abstract class Place {
- public void onPlaceRequest( PlaceRequestEvent event ) {
- PlaceRequest request = event.getRequest();
- if ( matchesRequest( request ) ) {
- - handleRequest( request );
- - PlaceRevealedEvent.fire( eventBus, Place.this, request );
- + isHandling = true;
- + try {
- + handleRequest( request );
- + PlaceRevealedEvent.fire( eventBus, Place.this, request );
- + } finally {
- + isHandling = false;
- + }
- }
- }
- } );
- diff --git c/src/main/java/net/customware/gwt/presenter/client/place/PresenterPlace.java w/src/main/java/net/customware/gwt/presenter/client/place/PresenterPlace.java
- index 13a93c2..57a2a4e 100644
- --- c/src/main/java/net/customware/gwt/presenter/client/place/PresenterPlace.java
- +++ w/src/main/java/net/customware/gwt/presenter/client/place/PresenterPlace.java
- @@ -61,7 +61,7 @@ public abstract class PresenterPlace<T extends Presenter> extends Place {
- */
- @SuppressWarnings("unchecked")
- public void onPresenterChanged( PresenterChangedEvent event ) {
- - if ( isPlaceFor(event.getPresenter()) ) {
- + if ( !isHandling && isPlaceFor(event.getPresenter()) ) {
- PlaceRequest request = prepareRequest( new PlaceRequest(getName()), (T) event.getPresenter() );
- PlaceChangedEvent.fire( eventBus, PresenterPlace.this, request );
- }
- @@ -71,7 +71,7 @@ public abstract class PresenterPlace<T extends Presenter> extends Place {
- presenterRevealedRegistration = eventBus.addHandler( PresenterRevealedEvent.getType(), new PresenterRevealedHandler() {
- @SuppressWarnings("unchecked")
- public void onPresenterRevealed( PresenterRevealedEvent event ) {
- - if ( event.isOriginator() && isPlaceFor(event.getPresenter()) ) {
- + if ( !isHandling && event.isOriginator() && isPlaceFor(event.getPresenter()) ) {
- PlaceRequest request = prepareRequest( new PlaceRequest(getName()), (T) event.getPresenter() );
- PlaceRevealedEvent.fire( eventBus, PresenterPlace.this, request );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement