InlineEdit: Handle enter event in add file dialog box
Bug: Issue 3244
Change-Id: I90d05e3e5a16e1f3dd1819c99125ead5b2ed8853
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileAction.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileAction.java
index d08d09c..f74ebf6 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileAction.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileAction.java
@@ -28,16 +28,18 @@
private final RevisionInfo revision;
private final ChangeScreen.Style style;
private final Widget addButton;
+ private final FileTable files;
private AddFileBox addBox;
private PopupPanel popup;
AddFileAction(Change.Id changeId, RevisionInfo revision,
- ChangeScreen.Style style, Widget addButton) {
+ ChangeScreen.Style style, Widget addButton, FileTable files) {
this.changeId = changeId;
this.revision = revision;
this.style = style;
this.addButton = addButton;
+ this.files = files;
}
public void onEdit() {
@@ -46,8 +48,9 @@
return;
}
+ files.unregisterKeys();
if (addBox == null) {
- addBox = new AddFileBox(changeId, revision);
+ addBox = new AddFileBox(changeId, revision, files);
}
addBox.clearPath();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.java
index b63718f..7245e47 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.java
@@ -41,6 +41,7 @@
private final Change.Id changeId;
private final RevisionInfo revision;
+ private final FileTable fileTable;
@UiField Button open;
@UiField Button cancel;
@@ -48,9 +49,10 @@
@UiField(provided = true)
RemoteSuggestBox path;
- AddFileBox(Change.Id changeId, RevisionInfo revision) {
+ AddFileBox(Change.Id changeId, RevisionInfo revision, FileTable files) {
this.changeId = changeId;
this.revision = revision;
+ this.fileTable = files;
path = new RemoteSuggestBox(new PathSuggestOracle(changeId, revision));
path.addSelectionHandler(new SelectionHandler<String>() {
@@ -63,6 +65,7 @@
@Override
public void onClose(CloseEvent<RemoteSuggestBox> event) {
hide();
+ fileTable.registerKeys();
}
});
@@ -92,6 +95,7 @@
@UiHandler("cancel")
void onCancel(@SuppressWarnings("unused") ClickEvent e) {
hide();
+ fileTable.registerKeys();
}
private void hide() {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index b875772..db7b485 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -492,7 +492,7 @@
reviewMode.setVisible(!editMode.isVisible());
addFileAction = new AddFileAction(
changeId, info.revision(revision),
- style, addFile);
+ style, addFile, files);
deleteFileAction = new DeleteFileAction(
changeId, info.revision(revision),
style, addFile);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
index fc62c46..2947be8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
@@ -224,6 +224,14 @@
}
}
+ void unregisterKeys() {
+ register = false;
+
+ if (table != null) {
+ table.setRegisterKeys(false);
+ }
+ }
+
void registerKeys() {
register = true;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java
index 0e19e46..dd36657 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java
@@ -347,7 +347,7 @@
private void initEditor(HttpResponse<NativeString> file) {
ModeInfo mode = null;
String content = "";
- if (file != null) {
+ if (file != null && file.getResult() != null) {
content = file.getResult().asString();
if (prefs.syntaxHighlighting()) {
mode = ModeInfo.findMode(file.getContentType(), path);