ui:import tags now have highest precedence in the generated 
UiBinder class

Bug-Link: https://github.com/gwtproject/gwt/issues/8617
Change-Id: I7248f2dc6d021f94473fc71b912d31b75985fcfb
diff --git a/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java b/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
index 4b01963..031ce28 100644
--- a/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
+++ b/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
@@ -435,8 +435,8 @@
       fieldType = (JClassType) importType;
     }
 
-    FieldWriter fieldWriter = fieldManager.registerField(fieldType,
-        constantName);
+    FieldWriter fieldWriter = fieldManager.registerField(FieldWriterType.IMPORTED,
+        fieldType, constantName);
     fieldWriter.setInitializer(rawFieldName);
   }
 
diff --git a/user/test/com/google/gwt/uibinder/test/client/Constants.java b/user/test/com/google/gwt/uibinder/test/client/Constants.java
index 4d3f017..19cfc33 100644
--- a/user/test/com/google/gwt/uibinder/test/client/Constants.java
+++ b/user/test/com/google/gwt/uibinder/test/client/Constants.java
@@ -41,6 +41,10 @@
     private static String PRIVATE = "private";
   }
 
+  interface InterfaceConst {
+    String someValue = "imported text";
+  }
+
   public static String CONST_FOO = "Foo";
 
   public SafeHtml getSafeHtml() {
diff --git a/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
index ddab38b..d01535f 100644
--- a/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
+++ b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
@@ -615,6 +615,7 @@
     assertEquals(Constants.MyEnum.ENUM_1.name() + " "
         + Constants.MyEnum.ENUM_2.name(),
         widgetUi.bracedParagraph.getAttribute("enum"));
+    assertEquals(Constants.InterfaceConst.someValue, widgetUi.labelWithImportedText.getText());
   }
 
   public void suppressForIEfail_testBizarrelyElementedWidgets() {
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
index 6b4b60c..5afb9bd 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
@@ -215,6 +215,7 @@
   @UiField HTML htmlWithComputedSafeHtml;
   @UiField HTML htmlWithComputedText;
   @UiField Label labelWithComputedText;
+  @UiField Label labelWithImportedText;
   @UiField FlowPanel flowPanelWithTag;
   @UiField Element myElementWithTagName;
   @UiField DataResource embeddedSvgData;
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
index 5aabf69..cbc65ed 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
@@ -709,6 +709,11 @@
   <gwt:HTML ui:field='htmlWithComputedSafeHtml'><ui:safehtml from="{constants.getSafeHtml}" /></gwt:HTML>
   <gwt:HTML ui:field='htmlWithComputedText'><ui:text from="{constants.getText}" /></gwt:HTML>
   <gwt:Label ui:field='labelWithComputedText'><ui:text from="{constants.getText}"/></gwt:Label>
+  <gwt:Label ui:field="labelWithImportedText"><ui:text from="{InterfaceConst.someValue}" /></gwt:Label>
+
+  <ui:import field='com.google.gwt.uibinder.test.client.Constants.InterfaceConst'>
+    Test import parsing order
+  </ui:import>
 
      <element-with-tagname ui:field='myElementWithTagName'/>
      <js-element-type ui:field='myJsElementType'/>