Fixes issue 4431, UiBinder with Generic Types fails compilation with error http://code.google.com/p/google-web-toolkit/issues/detail?id=4431 Patch by Andrew Teirney http://code.google.com/u/andrew.teirney/ Reviewed by rjrjr git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7422 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java b/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java index 118b22d..d09f58b 100644 --- a/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java +++ b/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
@@ -978,7 +978,7 @@ // createAndBindUi method w.write("public %s createAndBindUi(final %s owner) {", - uiRootType.getName(), uiOwnerType.getName()); + uiRootType.getParameterizedQualifiedSourceName(), uiOwnerType.getParameterizedQualifiedSourceName()); w.indent(); w.newline(); @@ -1009,7 +1009,7 @@ private void writeClassOpen(IndentedWriter w) { w.write("public class %s implements UiBinder<%s, %s>, %s {", implClassName, - uiRootType.getName(), uiOwnerType.getName(), baseClass.getName()); + uiRootType.getParameterizedQualifiedSourceName(), uiOwnerType.getParameterizedQualifiedSourceName(), baseClass.getParameterizedQualifiedSourceName()); w.indent(); }
diff --git a/user/test/com/google/gwt/uibinder/test/client/Abstract.java b/user/test/com/google/gwt/uibinder/test/client/Abstract.java index 1648e00..7884a17 100644 --- a/user/test/com/google/gwt/uibinder/test/client/Abstract.java +++ b/user/test/com/google/gwt/uibinder/test/client/Abstract.java
@@ -19,7 +19,7 @@ import com.google.gwt.user.client.ui.Widget; /** - * Used by {@link ParameterizedWidgets}. + * Used by {@link ParameterizedWidget}. * @see TestParameterizedWidgets */ abstract class Abstract<T> extends Widget {
diff --git a/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidgets.java b/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidget.java similarity index 81% rename from user/test/com/google/gwt/uibinder/test/client/ParameterizedWidgets.java rename to user/test/com/google/gwt/uibinder/test/client/ParameterizedWidget.java index edf1934..d31db80 100644 --- a/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidgets.java +++ b/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidget.java
@@ -19,13 +19,14 @@ import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiFactory; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; /** * Used by {@link TestParameterizedWidgets}. */ -class ParameterizedWidgets { - interface Binder extends UiBinder<Widget, ParameterizedWidgets> { +class ParameterizedWidget<T> extends Composite { + interface Binder extends UiBinder<Widget, ParameterizedWidget<?>> { } static final Binder binder = GWT.create(Binder.class); @@ -33,8 +34,8 @@ @UiField Abstract<?> a; - ParameterizedWidgets() { - binder.createAndBindUi(this); + ParameterizedWidget() { + initWidget(binder.createAndBindUi(this)); } @UiFactory @@ -42,4 +43,4 @@ return new Abstract<String>() { }; } -} \ No newline at end of file +}
diff --git a/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidgets.ui.xml b/user/test/com/google/gwt/uibinder/test/client/ParameterizedWidget.ui.xml similarity index 100% rename from user/test/com/google/gwt/uibinder/test/client/ParameterizedWidgets.ui.xml rename to user/test/com/google/gwt/uibinder/test/client/ParameterizedWidget.ui.xml
diff --git a/user/test/com/google/gwt/uibinder/test/client/TestParameterizedWidgets.java b/user/test/com/google/gwt/uibinder/test/client/TestParameterizedWidgets.java index 5eca6cc..249c3db 100644 --- a/user/test/com/google/gwt/uibinder/test/client/TestParameterizedWidgets.java +++ b/user/test/com/google/gwt/uibinder/test/client/TestParameterizedWidgets.java
@@ -27,7 +27,7 @@ } public void testHappy() { - ParameterizedWidgets ui = new ParameterizedWidgets(); + ParameterizedWidget<String> ui = new ParameterizedWidget<String>(); assertNotNull(ui.a); } }