1

我有一个登录窗口,根据 RPC 响应,它会显示另一个窗口。我想知道的是如何初始化第二个窗口。我尝试了 onReset 和 onReveal 方法,但就像它们从未被触发一样,此外,在重置值时,使用 destroy() 将永久杀死我的 Window。我最终得到了以下解决方案,但我觉得效率不是很高,有人可以推荐我一种方法吗?

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);
    }
4

1 回答 1

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);

  }

查看 Serendipity 应用程序中的 src\au\com\uptick\serendipity\client\presenter\SignInPagePresenter.java 使用 SmartGWT + GWTP 完成的登录示例:

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

于 2011-12-29T12:08:02.050 回答