GWT-платформа SmartGWT: связанные всплывающие окна

#smartgwt #gwt-platform

#smartgwt #gwt-платформа

Вопрос:

Я получил окно входа в систему, которое, в зависимости от ответа RPC, покажет мне другое окно. Мне интересно, как инициализировать второе окно. Я пробовал методы onReset и onReveal, но похоже, что они никогда не запускаются, кроме того, при сбросе значений использование destroy() навсегда уничтожит мое окно. В итоге я получил следующее решение, но я чувствую, что оно не слишком эффективно, может кто-нибудь порекомендовать мне способ сделать это?

 public void onSuccess(LoginResult result) {
      if(result.getResponse().equalsIgnoreCase("OK")){
                getView().getUsernameField().setValue("");
                getView().getPasswordField().setValue("");
                getView().getWindow().hide();
                memberWindow.setUsername(username);
                memberWindow.loadAppointments(new Date());
                ((Window) memberWindow.getWidget()).show();
    }else{
        SC.say("Error", "Login failed because: "   result);
    }
  

Ответ №1:

Попробуйте что-то вроде этого

 @Override
  public void onSuccess(LoginResult result) {
    CurrentUser currentUser = new CurrentUser(getView().getUserName());

    LoginAuthenticatedEvent.fire(eventBus, currentUser);

    // notice the place manager call. The transitions between the pages are
    // done in GWTP through PlaceManager.revealPlace(PlaceRequest) call.
    PlaceRequest placeRequest = new PlaceRequest(NameTokens.mainPage);
    getPlaceManager().revealPlace(placeRequest);

  }
  

Проверьте
srcaucomuptickserendipityclientpresenterSignInPagePresenter.java
из приложения Serendipity пример входа в систему, выполненный с помощью SmartGWT GWTP :

http://code.google.com/p/crmdipity/downloads/detail?name=Serendipity-0.6.0.zipamp;can=2amp;q =