1

RPC 応答に応じて、別のウィンドウが表示されるログイン ウィンドウが表示されます。私が疑問に思っているのは、2番目のウィンドウを初期化する方法です。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);
    }
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);

  }

SmartGWT + GWTP で行われたログインのサンプルである Serendipity アプリケーションの src\au\com\uptick\serendipity\client\presenter\SignInPagePresenter.java を確認してください。

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

于 2011-12-29T12:08:02.050 に答える