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'/>