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();
+  }-*/;
+
 }