diff options
author | Shawn O. Pearce <sop@google.com> | 2010-04-24 19:04:16 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2010-04-24 19:05:16 -0700 |
commit | 1acc5dc987535a9b1b4348f6d90ed2de689d0888 (patch) | |
tree | cc32d302a08e405e6432a81d7083c3ed5e3e8a1c | |
parent | c9ce8bfe82daf711755c769a62132821d8ae142a (diff) |
Fix enter causing miscompletion of new project watches
Pressing Enter while completing a project name when adding a new
project to your watch list caused a server error with the partially
completed name displayed. Work around it with the same solution
we used within d9a780a526f6649f863d1f118b4c8bc5a0d52cef, delaying
the submit until the completion is closed.
Bug: issue 507
Change-Id: I1efa776ae544e80254bbbc397af9106a458d8815
Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r-- | gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ProjectWatchPanel.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ProjectWatchPanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ProjectWatchPanel.java index ad02588bd3..9fb3748355 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ProjectWatchPanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ProjectWatchPanel.java @@ -31,6 +31,8 @@ import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; +import com.google.gwt.event.logical.shared.SelectionEvent; +import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; @@ -38,6 +40,7 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.SuggestBox; import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter; +import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; import com.google.gwtexpui.globalkey.client.NpTextBox; import com.google.gwtjsonrpc.client.VoidResult; @@ -50,6 +53,7 @@ class ProjectWatchPanel extends Composite { private Button addNew; private SuggestBox nameTxt; private Button delSel; + private boolean submitOnSelection; ProjectWatchPanel() { final FlowPanel body = new FlowPanel(); @@ -83,7 +87,22 @@ class ProjectWatchPanel extends Composite { box.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { + submitOnSelection = false; + if (event.getCharCode() == KeyCodes.KEY_ENTER) { + if (nameTxt.isSuggestionListShowing()) { + submitOnSelection = true; + } else { + doAddNew(); + } + } + } + }); + nameTxt.addSelectionHandler(new SelectionHandler<Suggestion>() { + @Override + public void onSelection(SelectionEvent<Suggestion> event) { + if (submitOnSelection) { + submitOnSelection = false; doAddNew(); } } |