X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/16baf609bb746ccbc6cd8da7213ee74cf474f2a9..69e3e8896fe8ad5f93cab8f13764906b35517974:/src/gr/ebs/gss/client/UserAddDialog.java diff --git a/src/gr/ebs/gss/client/UserAddDialog.java b/src/gr/ebs/gss/client/UserAddDialog.java index f9efd0e..3d35522 100644 --- a/src/gr/ebs/gss/client/UserAddDialog.java +++ b/src/gr/ebs/gss/client/UserAddDialog.java @@ -26,22 +26,26 @@ import gr.ebs.gss.client.rest.resource.UserResource; import gr.ebs.gss.client.rest.resource.UserSearchResource; import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.FocusEvent; +import com.google.gwt.event.dom.client.FocusHandler; +import com.google.gwt.event.dom.client.KeyCodes; +import com.google.gwt.event.dom.client.KeyUpEvent; +import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.http.client.URL; import com.google.gwt.user.client.DeferredCommand; +import com.google.gwt.user.client.Event.NativePreviewEvent; 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.FocusListenerAdapter; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.KeyboardListener; -import com.google.gwt.user.client.ui.KeyboardListenerAdapter; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.MultiWordSuggestOracle; import com.google.gwt.user.client.ui.SuggestBox; import com.google.gwt.user.client.ui.VerticalPanel; -import com.google.gwt.user.client.ui.Widget; /** * @author kman @@ -62,25 +66,37 @@ public class UserAddDialog extends DialogBox { setText("Add User"); VerticalPanel panel = new VerticalPanel(); setWidget(panel); - panel.addStyleName("gwt-TabPanelBottom"); + panel.addStyleName("gss-TabPanelBottom"); userTable.addStyleName("gss-permList"); userTable.setWidget(0, 0, new Label("Username:")); userTable.getFlexCellFormatter().setStyleName(0, 0, "props-toplabels"); - suggestBox.addFocusListener(new FocusListenerAdapter() { + suggestBox.getTextBox().addFocusHandler(new FocusHandler() { + @Override - public void onFocus(Widget sender) { + public void onFocus(FocusEvent event) { if (selectedUser != null && selectedUser.endsWith("@")) updateSuggestions(); } }); - suggestBox.addKeyboardListener(new KeyboardListenerAdapter() { + + suggestBox.addKeyUpHandler(new KeyUpHandler() { + @Override - public void onKeyUp(Widget sender, char keyCode, int modifiers) { + public void onKeyUp(KeyUpEvent event) { // Ignore the arrow keys. - if (keyCode==KEY_UP || keyCode==KEY_DOWN || keyCode==KEY_LEFT || keyCode==KEY_RIGHT) + int keyCode=event.getNativeKeyCode(); + if(keyCode == KeyCodes.KEY_UP || + keyCode == KeyCodes.KEY_DOWN || + keyCode == KeyCodes.KEY_LEFT || + keyCode == KeyCodes.KEY_RIGHT) + return; + if (keyCode==KeyCodes.KEY_ESCAPE) { + suggestBox.hideSuggestionList(); return; + } String text = suggestBox.getText().trim(); - // Avoid useless queries for keystrokes that do not modify the text. + // Avoid useless queries for keystrokes that do not modify the + // text. if (text.equals(selectedUser)) return; selectedUser = text; @@ -89,30 +105,33 @@ public class UserAddDialog extends DialogBox { updateSuggestions(); } }); + suggestBox.getElement().setId("addUser.textBox"); userTable.setWidget(0, 1, suggestBox); panel.add(userTable); HorizontalPanel buttons = new HorizontalPanel(); - Button ok = new Button("OK", new ClickListener() { - - public void onClick(Widget sender) { + Button ok = new Button("OK", new ClickHandler() { + @Override + public void onClick(ClickEvent event) { addUser(); hide(); } }); + ok.getElement().setId("addUser.button.ok"); buttons.add(ok); buttons.setCellHorizontalAlignment(ok, HasHorizontalAlignment.ALIGN_CENTER); // Create the 'Cancel' button, along with a listener that hides the // dialog when the button is clicked. - Button cancel = new Button("Cancel", new ClickListener() { - - public void onClick(Widget sender) { + Button cancel = new Button("Cancel", new ClickHandler() { + @Override + public void onClick(ClickEvent event) { hide(); } }); + cancel.getElement().setId("addUser.button.cancel"); buttons.add(cancel); buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER); buttons.setSpacing(8); - buttons.addStyleName("gwt-TabPanelBottom"); + buttons.addStyleName("gss-TabPanelBottom"); panel.add(buttons); panel.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER); panel.addStyleName("gss-DialogBox"); @@ -125,19 +144,22 @@ public class UserAddDialog extends DialogBox { } @Override - public boolean onKeyDownPreview(final char key, final int modifiers) { - // Use the popup's key preview hooks to close the dialog when either - // enter or escape is pressed. - switch (key) { - case KeyboardListener.KEY_ENTER: - hide(); - addUser(); - break; - case KeyboardListener.KEY_ESCAPE: - hide(); - break; - } - return true; + protected void onPreviewNativeEvent(NativePreviewEvent preview) { + super.onPreviewNativeEvent(preview); + + NativeEvent evt = preview.getNativeEvent(); + if (evt.getType().equals("keydown")) + // Use the popup's key preview hooks to close the dialog when either + // enter or escape is pressed. + switch (evt.getKeyCode()) { + case KeyCodes.KEY_ENTER: + addUser(); + hide(); + break; + case KeyCodes.KEY_ESCAPE: + hide(); + break; + } } /** @@ -195,18 +217,18 @@ public class UserAddDialog extends DialogBox { GWT.log("Searching for " + query, null); GetCommand eg = new GetCommand(UserSearchResource.class, - app.getApiPath() + "users/" + URL.encodeComponent(query)) { + app.getApiPath() + "users/" + URL.encodeComponent(query), false, null) { @Override public void onComplete() { - DisplayHelper.hideSuggestions(suggestBox); + suggestBox.hideSuggestionList(); oracle.clear(); UserSearchResource s = getResult(); for (UserResource user : s.getUsers()) { GWT.log("Found " + user.getUsername(), null); oracle.add(user.getUsername()); } - DisplayHelper.showSuggestions(suggestBox, selectedUser); + suggestBox.showSuggestionList(); } @Override