package cx.ath.hoenicke.otp.client; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.FormHandler; import com.google.gwt.user.client.ui.FormPanel; import com.google.gwt.user.client.ui.FormSubmitCompleteEvent; import com.google.gwt.user.client.ui.FormSubmitEvent; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.KeyboardListener; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; public class LoginDialog extends DialogBox implements ClickListener, FormHandler, KeyboardListener { Client client; TextBox loginField; PasswordTextBox pwField; Button submitButton; FormPanel form; public LoginDialog(Client client) { this.client = client; setText("Anmelden"); FlexTable loginBox = new FlexTable(); loginBox.setWidget(0,0, new Label("Benutzer: ")); loginField = new TextBox(); loginField.setName("user"); loginField.setVisibleLength(20); loginField.setMaxLength(20); loginField.addKeyboardListener(this); loginBox.setWidget(0, 1, loginField); loginBox.setWidget(1, 0, new Label("Passwort: ")); pwField = new PasswordTextBox(); pwField.setName("pw"); pwField.setVisibleLength(20); pwField.setMaxLength(60); pwField.addKeyboardListener(this); loginBox.setWidget(1, 1, pwField); submitButton = new Button("Anmelden"); submitButton.addClickListener(this); loginBox.setWidget(2, 0, submitButton); loginBox.getFlexCellFormatter(). setHorizontalAlignment(2, 0, HasHorizontalAlignment.ALIGN_CENTER); loginBox.getFlexCellFormatter().setColSpan(2, 0, 2); form = new FormPanel(); form.setWidget(loginBox); form.setAction("javascript:''"); form.addFormHandler(this); setWidget(form); } public void onClick(Widget sender) { client.setAuth(loginField.getText(), pwField.getText()); hide(); } public void onKeyDown(Widget sender, char keyCode, int modifiers) { } public void onKeyPress(Widget sender, char keycode, int modifiers) { if (keycode == KEY_ENTER) { if (sender == loginField) { pwField.setFocus(true); } else if (sender == pwField) { submitButton.click(); } } } public void onKeyUp(Widget sender, char keyCode, int modifiers) { } public void onSubmit(FormSubmitEvent event) { client.setAuth(loginField.getText(), pwField.getText()); } public void onSubmitComplete(FormSubmitCompleteEvent event) { hide(); } public void show() { super.show(); loginField.setFocus(true); } }