Reviewers: rdcastro, rjrjr,
Description:
Fixing setInnerHTML calls on attach/detach sections.
Please review this at http://gwt-code-reviews.appspot.com/1422811/
Affected files:
M
user/src/com/google/gwt/uibinder/elementparsers/WidgetPlaceholderInterpreter.java
M user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
Index:
user/src/com/google/gwt/uibinder/elementparsers/WidgetPlaceholderInterpreter.java
===================================================================
---
user/src/com/google/gwt/uibinder/elementparsers/WidgetPlaceholderInterpreter.java
(revision 10081)
+++
user/src/com/google/gwt/uibinder/elementparsers/WidgetPlaceholderInterpreter.java
(working copy)
@@ -182,14 +182,16 @@
if (uiWriter.useLazyWidgetBuilders()) {
if (idIsHasText.contains(idHolder)) {
- fieldManager.require(childField).addAttachStatement(
- "%s.setText(%s.getElementById(%s).getInnerText());",
childField,
- fieldManager.convertFieldToGetter(fieldName),
+ fieldManager.require(fieldName).addAttachStatement(
+ "%s.setText(%s.getElementById(%s).getInnerText());",
+ fieldManager.convertFieldToGetter(childField),
+ fieldName,
fieldManager.convertFieldToGetter(idHolder));
} else if (idIsHasHTML.contains(idHolder)) {
- fieldManager.require(childField).addAttachStatement(
- "%s.setHTML(%s.getElementById(%s).getInnerHTML());",
childField,
- fieldManager.convertFieldToGetter(fieldName),
+ fieldManager.require(fieldName).addAttachStatement(
+ "%s.setHTML(%s.getElementById(%s).getInnerHTML());",
+ fieldManager.convertFieldToGetter(childField),
+ fieldName,
fieldManager.convertFieldToGetter(idHolder));
}
} else {
Index: user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
===================================================================
--- user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
(revision 10081)
+++ user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
(working copy)
@@ -274,6 +274,13 @@
}
w.newline();
+ // If we forced an attach, we should always detach, regardless of
whether
+ // there are any detach statements.
+ if (attachedVar != null) {
+ w.write("// Detach section.");
+ w.write("%s.detach();", attachedVar);
+ }
+
if (detachStatements.size() > 0) {
if (isAttachable) {
w.write("%s.detachedInitializationCallback = ", getName());
@@ -283,14 +290,12 @@
w.outdent();
w.write("@Override public void execute() {");
w.indent();
- } else if (attachedVar != null) {
- w.write("// Detach section.");
- w.write("%s.detach();", attachedVar);
}
for (String s : detachStatements) {
w.write(s);
}
+
if (isAttachable) {
w.outdent();
w.write("}");
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors