Reviewers: rjrjr, rdcastro,

Description:
Making ui:style builders always called in the Widgets ctor. Also add a
final clause in field builders.


Please review this at http://gwt-code-reviews.appspot.com/1422814/

Affected files:
  M user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
M user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java
  M user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java


Index: user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
===================================================================
--- user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java (revision 10090) +++ user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java (working copy)
@@ -227,7 +227,7 @@
     if (getterCount > 1) {
       w.write("%s = %s;", name, initializer);
     } else {
-      w.write("%s %s = %s;", getQualifiedSourceName(), name, initializer);
+ w.write("final %s %s = %s;", getQualifiedSourceName(), name, initializer);
     }

     w.write("// Setup section.");
Index: user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java
===================================================================
--- user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java (revision 10090) +++ user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java (working copy)
@@ -20,6 +20,7 @@
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.uibinder.attributeparsers.CssNameConverter;
 import com.google.gwt.uibinder.rebind.model.ImplicitCssResource;
+import com.google.gwt.uibinder.rebind.model.OwnerField;

 import java.util.Set;

@@ -69,4 +70,11 @@
     }
     return super.getReturnType(path, logger);
   }
+
+  @Override
+  public void writeFieldBuilder(IndentedWriter w,
+ int getterCount, OwnerField ownerField) throws UnableToCompleteException { + w.write("%s; // generated css resource must be always created. Precedence: %s",
+        FieldManager.getFieldBuilder(getName()), getBuildPrecedence());
+  }
 }
Index: user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
===================================================================
--- user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (revision 10090) +++ user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (working copy)
@@ -1083,7 +1083,9 @@
     fieldManager.registerFieldOfGeneratedType(
         oracle.findType(ClientBundle.class.getName()),
         bundleClass.getPackageName(), bundleClass.getClassName(),
-        bundleClass.getFieldName());
+        bundleClass.getFieldName())
+ .setBuildPrecendence(Integer.MAX_VALUE); // must be the first thing built.
+
     // Allow GWT.create() to init the field, the default behavior

String rootField = new UiBinderParser(this, messages, fieldManager, oracle,


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to