#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 =