Java/GWT/DeferredCommand — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:35, 1 июня 2010
Use deferred Command
<source lang="java">
package com.jexp.gwt.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Hyperlink; import com.google.gwt.user.client.rumand; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.History; import com.google.gwt.user.client.HistoryListener; public class GWTClient implements EntryPoint,HistoryListener {
private static final String LOGIN_STATE = "login"; private static final String WELCOME_STATE = "welcome"; public void onModuleLoad() { setupHistory(); } private void setupHistory() { History.addHistoryListener(this); History.onHistoryChanged(LOGIN_STATE); } public void onHistoryChanged(String historyToken) { if (LOGIN_STATE.equals(historyToken)) { loadLoginView(); } else if (WELCOME_STATE.equals(historyToken)) { loadWelcomeView(); } } private void loadLoginView() { final Label loginPrompt = new Label("Login"); final Grid grid = new Grid(3, 2); final Label namePrompt = new Label("name"); final TextBox nameTextbox = new TextBox(); final Label passwordPrompt = new Label("password"); final PasswordTextBox passwordTextbox = new PasswordTextBox(); final Button button = new Button("Login"); button.addClickListener(new ClickListener() { public void onClick(Widget sender) { History.newItem(WELCOME_STATE); } }); loginPrompt.addStyleName("loginPrompt"); nameTextbox.addStyleName("nameField"); passwordTextbox.addStyleName("passwordField"); DeferredCommand.add(new Command() { public void execute() { nameTextbox.setFocus(true); } }); grid.setWidget(0, 0, namePrompt); grid.setWidget(0, 1, nameTextbox); grid.setWidget(1, 0, passwordPrompt); grid.setWidget(1, 1, passwordTextbox); grid.setWidget(2, 1, button); RootPanel.get().clear(); RootPanel.get().add(loginPrompt); RootPanel.get().add(grid); } private void loadWelcomeView() { final Label welcomeMsg = new Label("welcome"); welcomeMsg.addStyleName("welcomeMsg"); RootPanel.get().clear(); RootPanel.get().add(welcomeMsg); RootPanel.get().add(new Hyperlink("logoutLinkText",LOGIN_STATE)); }
}
</source>