Search code examples
javagwturl-parametersgwtp

Using prepareFromRequest(PlaceRequest) from GWT presenter widget


I am trying to get a URL parameter from a GWT presenter widget, but I am getting these error messages:

The method prepareFromRequest(PlaceRequest) of type ViewDiagramPresenter must override or implement a supertype method
The method prepareFromRequest(PlaceRequest) is undefined for the type PresenterWidget<ViewDiagramPresenter.MyView>

Any ideas? THANK YOU

public class ViewDiagramPresenter extends
        PresenterWidget<ViewDiagramPresenter.MyView> {
[...]

@Override
     public void prepareFromRequest(PlaceRequest placeRequest) {
       super.prepareFromRequest(placeRequest);
       String actionString = placeRequest.getParameter("action", "view");
    }
[...]
}

Solution

  • Inject the PlaceManager into your PresenterWidget and handle the url in the onReset() method.

    public class ViewDiagramPresenter extends
            PresenterWidget<ViewDiagramPresenter.MyView> {
    
        protected final PlaceManager placeManager;
    
        @Inject
        public ViewDiagramPresenter(final EventBus eventBus, final MyView view, final MyProxy proxy, final PlaceManager placeManager) {
            super(eventBus, view, proxy);
            this.placeManager = placeManager;
        }
    
        @Override
        public void onReset() {
            super.onReset();
            PlaceRequest placeRequest = placeManager.getCurrentPlaceRequest();
            String actionString = placeRequest.getParameter("action", "view");
        }
    }