Set focus into upload panel
This allows users to immediately paste images for upload after the
screen is loaded.
Change-Id: I8e81b06e863e1ac47c812b010d0f7336e35412ba
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/ImageUploadScreen.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/ImageUploadScreen.java
index 21d7f1c..72e8a12 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/ImageUploadScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/ImageUploadScreen.java
@@ -45,6 +45,8 @@
static UploadStagePanel uploadStagePanel;
static UploadedImagesPanel uploadedPanel;
+ private final UploadByDropOrPastePanel uploadPanel;
+
ImageUploadScreen() {
setStyleName("imagare-image-upload-screen");
@@ -56,7 +58,8 @@
add(p);
add(new UploadByFileSelection());
- add(new UploadByDropOrPastePanel());
+ uploadPanel = new UploadByDropOrPastePanel();
+ add(uploadPanel);
uploadStagePanel = new UploadStagePanel();
add(uploadStagePanel);
uploadedPanel = new UploadedImagesPanel();
@@ -73,6 +76,7 @@
} else {
projectBox.setValue(info.getDefaultProject());
}
+ uploadPanel.focus();
}
@Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
index 1255f8c..e521b20 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.imagare.client;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -123,4 +124,19 @@
}
}
}-*/;
+
+ public void focus() {
+ focus(getElement());
+ }
+
+ private static native void focus(Element elem) /*-{
+ var range = document.createRange();
+ var sel = window.getSelection();
+ range.selectNode(elem);
+ range.collapse(true);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ elem.focus();
+ }-*/;
+
}