X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/fd84943c34d199de82d4224b945a4d9010267e8b..4cef6f041d0cc36231421c462eddfeedfddfc276:/src/gr/ebs/gss/client/PermissionsAddDialog.java diff --git a/src/gr/ebs/gss/client/PermissionsAddDialog.java b/src/gr/ebs/gss/client/PermissionsAddDialog.java index b625341..4cef442 100644 --- a/src/gr/ebs/gss/client/PermissionsAddDialog.java +++ b/src/gr/ebs/gss/client/PermissionsAddDialog.java @@ -28,23 +28,27 @@ import gr.ebs.gss.client.rest.resource.UserSearchResource; import java.util.List; 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.CheckBox; -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.ListBox; 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 @@ -89,21 +93,34 @@ public class PermissionsAddDialog extends DialogBox { permTable.getFlexCellFormatter().setStyleName(0, 2, "props-toplabels"); permTable.getFlexCellFormatter().setStyleName(0, 3, "props-toplabels"); if (userAdd) { - 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; @@ -125,9 +142,9 @@ public class PermissionsAddDialog extends DialogBox { permTable.getFlexCellFormatter().setHorizontalAlignment(1, 3, HasHorizontalAlignment.ALIGN_CENTER); panel.add(permTable); - final Button ok = new Button("OK", new ClickListener() { - - public void onClick(Widget sender) { + final Button ok = new Button("OK", new ClickHandler() { + @Override + public void onClick(ClickEvent event) { addPermission(); hide(); } @@ -137,18 +154,18 @@ public class PermissionsAddDialog extends DialogBox { // Create the 'Cancel' button, along with a listener that hides the // dialog // when the button is clicked. - final Button cancel = new Button("Cancel", new ClickListener() { - - public void onClick(Widget sender) { + final Button cancel = new Button("Cancel", new ClickHandler() { + @Override + public void onClick(ClickEvent event) { hide(); } }); buttons.add(cancel); buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER); buttons.setSpacing(8); - buttons.addStyleName("gwt-TabPanelBottom"); + buttons.addStyleName("gss-TabPanelBottom"); panel.add(buttons); - panel.addStyleName("gwt-TabPanelBottom"); + panel.addStyleName("gss-TabPanelBottom"); } private void addPermission() { @@ -176,9 +193,9 @@ public class PermissionsAddDialog extends DialogBox { } perm.setGroup(selected.getName()); } - boolean readValue = read.isChecked(); - boolean writeValue = write.isChecked(); - boolean modifyValue = modifyACL.isChecked(); + boolean readValue = read.getValue(); + boolean writeValue = write.getValue(); + boolean modifyValue = modifyACL.getValue(); perm.setRead(readValue); perm.setWrite(writeValue); @@ -188,21 +205,25 @@ public class PermissionsAddDialog 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: - addPermission(); - hide(); - 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: + addPermission(); + hide(); + break; + case KeyCodes.KEY_ESCAPE: + hide(); + break; + } } + @Override public void center() { super.center(); @@ -219,18 +240,18 @@ public class PermissionsAddDialog 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