@Override public void prepareFromRequest(PlaceRequest request) { super.prepareFromRequest(request); _serviceName = _placeManager.getCurrentPlaceRequest().getParameter(NameTokens.SERVICE_NAME_PARAM, null); _applicationName = _placeManager.getCurrentPlaceRequest().getParameter(NameTokens.APPLICATION_NAME_PARAM, null); if (_serviceName != null) { _serviceName = URL.decode(_serviceName); } if (_applicationName != null) { _applicationName = URL.decode(_applicationName); } }
@Override public void prepareFromRequest(PlaceRequest request) { super.prepareFromRequest(request); _referenceName = _placeManager.getCurrentPlaceRequest().getParameter(NameTokens.REFERENCE_NAME_PARAM, null); _applicationName = _placeManager.getCurrentPlaceRequest().getParameter(NameTokens.APPLICATION_NAME_PARAM, null); if (_referenceName != null) { _referenceName = URL.decode(_referenceName); } if (_applicationName != null) { _applicationName = URL.decode(_applicationName); } }
void setTabAccessible(boolean tabAccessible) { this.tabAccessible = tabAccessible; // If the current place matches dynamic tab presenter, reveal // the place again in order to apply presenter reveal process // after tab accessibility change String currentPlaceToken = placeManager.getCurrentPlaceRequest().getNameToken(); if (getProxy().getTargetHistoryToken().equals(currentPlaceToken)) { placeManager.revealCurrentPlace(); } }
@Override public void success(final P presenter) { // Everything should be bound before we prepare the presenter from the // request, // in case it wants to fire some events. That's why we will do this in a // deferred command. addDeferredCommand(() -> { PlaceRequest originalRequest = placeManager.getCurrentPlaceRequest(); presenter.prepareFromRequest(request); if (originalRequest == placeManager.getCurrentPlaceRequest()) { // User did not manually update place request in prepareFromRequest, update it here. placeManager.updateHistory(request, updateBrowserUrl); } NavigationEvent.fire(placeManager, request); if (!presenter.useManualReveal()) { // Automatic reveal manualReveal(presenter); } }); }
@Override protected void onReset() { super.onReset(); releasePresenterWidget(); loadComponent(_placeManager.getCurrentPlaceRequest().getParameter(NameTokens.COMPONENT_NAME_PARAM, null)); }
@Override public void onSelection(SelectionEvent<Integer> event) { if (_modifyingTabs) { // add/remove tab may change the selection return; } if (event.getSelectedItem() < 0) { // TODO: WHAT???? return; } final PlaceRequest current = placeManager.getCurrentPlaceRequest(); final String selectedToken = _tabs.get(event.getSelectedItem()).getTargetHistoryToken(); final String currentToken = current == null ? null : current.getNameToken(); if (!selectedToken.equals(currentToken)) { placeManager.revealPlace(new PlaceRequest(selectedToken)); } } });
@Override public void onLockInteraction(LockInteractionEvent event) { // Allow progress indicator to be hidden regardless of the current (non-empty) place boolean emptyPlace = placeManager.getCurrentPlaceRequest().getNameToken() == null; if (!emptyPlace && !event.shouldLock()) { // Use deferred command because some other initialization might happen // right after place transition; therefore we want to hide the loading // indicator only after the browser event loop returns Scheduler.get().scheduleDeferred(() -> hideLoadingIndicator()); } // Set data attribute on body element to indicate the status of the application BodyElement body = Document.get().getBody(); if (event.shouldLock()) { body.setAttribute(APP_STATUS_ATTRIBUTE, APP_STATUS_BUSY); } else { body.setAttribute(APP_STATUS_ATTRIBUTE, APP_STATUS_READY); } }
@Override public void onChangeUser(final ChangeUserEvent pevent) { if (tokenEquals(placeManager.getCurrentPlaceRequest().getNameToken(), logoutToken)) { final PlaceRequest loginPlaceRequest = new PlaceRequest.Builder().nameToken(loginToken).build(); placeManager.revealPlace(loginPlaceRequest); } else { if (placeManager.getHierarchyDepth() > 1) { placeManager.revealRelativePlace(-1); } else if (tokenEquals(placeManager.getCurrentPlaceRequest().getNameToken(), loginToken) && pevent.getUser() != null && pevent.getUser().isLoggedIn()) { placeManager.revealDefaultPlace(); } else if (pevent.getUser() == null || !pevent.getUser().isLoggedIn()) { // user not logged in, load page once again, maybe we are no longer allowed to see placeManager.revealCurrentPlace(); } } navigationStructure.buildVisibleNavigation(pevent.getUser()); getView().createNavigation(navigationStructure); }
@Override public void onChangeUser(final ChangeUserEvent pevent) { if (tokenEquals(placeManager.getCurrentPlaceRequest().getNameToken(), logoutToken)) { final PlaceRequest loginPlaceRequest = new PlaceRequest.Builder().nameToken(loginToken).build(); placeManager.revealPlace(loginPlaceRequest); } else { if (placeManager.getHierarchyDepth() > 1) { placeManager.revealRelativePlace(-1); } else if (tokenEquals(placeManager.getCurrentPlaceRequest().getNameToken(), loginToken) && pevent.getUser() != null && pevent.getUser().isLoggedIn()) { placeManager.revealDefaultPlace(); } else if (pevent.getUser() == null || !pevent.getUser().isLoggedIn()) { // user not logged in, load page once again, maybe we are no longer allowed to see placeManager.revealCurrentPlace(); } } navigationStructure.buildVisibleNavigation(pevent.getUser()); getView().createNavigation(navigationStructure); }