summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-04-24 19:04:16 -0700
committerShawn O. Pearce <sop@google.com>2010-04-24 19:05:16 -0700
commit1acc5dc987535a9b1b4348f6d90ed2de689d0888 (patch)
treecc32d302a08e405e6432a81d7083c3ed5e3e8a1c
parentc9ce8bfe82daf711755c769a62132821d8ae142a (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.java19
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();
}
}