Revision: 8031
Author: [email protected]
Date: Mon May 3 15:39:10 2010
Log: Moved the showErrors method into the generator.
Patch by: amitmanjhi
Review by: rjrjr (desk review)
Review at http://gwt-code-reviews.appspot.com/451801
http://code.google.com/p/google-web-toolkit/source/detail?r=8031
Modified:
/branches/2.1/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
/branches/2.1/bikeshed/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
=======================================
--- /branches/2.1/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
Thu Apr 29 18:58:19 2010
+++ /branches/2.1/bikeshed/src/com/google/gwt/app/client/EditorSupport.java
Mon May 3 15:39:10 2010
@@ -19,6 +19,7 @@
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.ui.RecordEditView;
+import java.util.Map;
import java.util.Set;
/**
@@ -35,4 +36,6 @@
void setEnabled(V view, boolean enabled);
void setValue(V view, R value);
-}
+
+ void showErrors(V view, Map<String, String> errorMap);
+}
=======================================
---
/branches/2.1/bikeshed/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
Fri Apr 30 09:32:20 2010
+++
/branches/2.1/bikeshed/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
Mon May 3 15:39:10 2010
@@ -25,6 +25,10 @@
import com.google.gwt.core.ext.typeinfo.JParameterizedType;
import com.google.gwt.core.ext.typeinfo.JType;
import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dom.client.DivElement;
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.SpanElement;
+import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.uibinder.client.UiField;
@@ -140,8 +144,13 @@
f.addImport(ValueChangeHandler.class.getName());
f.addImport(superinterfaceType.recordType.getQualifiedSourceName());
f.addImport(Property.class.getName());
+ f.addImport(DivElement.class.getName());
+ f.addImport(Document.class.getName());
+ f.addImport(SpanElement.class.getName());
+ f.addImport(FontWeight.class.getName().replace("$", "."));
f.addImport(HashSet.class.getName());
+ f.addImport(Map.class.getName());
f.addImport(Set.class.getName());
f.addImplementedInterface(interfaceType.getName());
@@ -160,6 +169,7 @@
writeSetEnabledMethod(sw, viewType, uiPropertyFields, takesValueType);
writeSetValueMethod(sw, recordType, viewType, uiPropertyFields,
generatorContext, logger);
+ writeShowErrorsMethod(sw, viewType, logger);
sw.outdent();
sw.println("}");
@@ -423,5 +433,45 @@
sw.println("}");
sw.outdent();
}
+
+ private void writeShowErrorsMethod(SourceWriter sw, JClassType viewType,
+ TreeLogger logger) {
+ sw.indent();
+ sw.println("public void showErrors(" + viewType.getName()
+ + " view, Map<String, String> errorMap) {");
+ sw.indent();
+ sw.println("view.errors.setInnerText(\"\");");
+ sw.println("if (errorMap == null || errorMap.isEmpty()) {");
+ sw.indent();
+ sw.println("return;");
+ sw.outdent();
+ sw.println("}");
+ sw.println();
+
+ sw.println("Document doc = Document.get();");
+ sw.println("for (Map.Entry<String, String> entry :
errorMap.entrySet()) {");
+ sw.println(" /*");
+ sw.println(" * Note that we are careful not to use setInnerHtml, to
ensure we don't");
+ sw.println(" * render user created markup: xsite attack protection");
+ sw.println(" */");
+ sw.println("");
+ sw.indent();
+ sw.println("DivElement div = doc.createDivElement();");
+ sw.println("div.setInnerText(\" \" + entry.getValue());");
+ sw.println("");
+ sw.println("SpanElement name = doc.createSpanElement();");
+ sw.println("name.getStyle().setFontWeight(FontWeight.BOLD);");
+ sw.println("name.setInnerText(entry.getKey());");
+ sw.println("");
+ sw.println("div.insertFirst(name);");
+ sw.println("");
+ sw.println("view.errors.appendChild(div);");
+ sw.outdent();
+ sw.println("}");
+
+ sw.outdent();
+ sw.println("}");
+ sw.outdent();
+ }
}
=======================================
---
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
Mon May 3 13:28:30 2010
+++
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
Mon May 3 15:39:10 2010
@@ -18,9 +18,6 @@
import com.google.gwt.app.client.EditorSupport;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
-import com.google.gwt.dom.client.Document;
-import com.google.gwt.dom.client.SpanElement;
-import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
import com.google.gwt.uibinder.client.UiBinder;
@@ -114,30 +111,7 @@
}
public void showErrors(Map<String, String> errorMap) {
- // TODO Make EditorSupport do this
- errors.setInnerText("");
- if (errorMap == null || errorMap.isEmpty()) {
- return;
- }
-
- Document doc = Document.get();
- for (Map.Entry<String, String> entry : errorMap.entrySet()) {
- /*
- * Note that we are careful not to use setInnerHtml, to ensure we
don't
- * render user created markup: xsite attack protection
- */
-
- DivElement div = doc.createDivElement();
- div.setInnerText(" " + entry.getValue());
-
- SpanElement name = doc.createSpanElement();
- name.getStyle().setFontWeight(FontWeight.BOLD);
- name.setInnerText(entry.getKey());
-
- div.insertFirst(name);
-
- errors.appendChild(div);
- }
+ DATA_BINDER.showErrors(this, errorMap);
}
@UiHandler("save")
=======================================
---
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
Mon May 3 09:01:39 2010
+++
/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
Mon May 3 15:39:10 2010
@@ -18,9 +18,6 @@
import com.google.gwt.app.client.EditorSupport;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
-import com.google.gwt.dom.client.Document;
-import com.google.gwt.dom.client.SpanElement;
-import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.sample.expenses.gwt.request.ReportRecord;
import com.google.gwt.uibinder.client.UiBinder;
@@ -113,38 +110,13 @@
this.record = value;
DATA_BINDER.setValue(this, value);
}
+
+ public void showErrors(Map<String, String> errorMap) {
+ DATA_BINDER.showErrors(this, errorMap);
+ }
@UiHandler("save")
void onSave(@SuppressWarnings("unused") ClickEvent event) {
delegate.saveClicked();
}
-
- public void showErrors(Map<String, String> errorMap) {
- // TODO Make EditorSupport do this
-
- errors.setInnerText("");
-
- if (errorMap == null || errorMap.isEmpty()) {
- return;
- }
-
- Document doc = Document.get();
- for (Map.Entry<String, String> entry : errorMap.entrySet()) {
- /*
- * Note that we are careful not to use setInnerHtml, to ensure we
don't
- * render user created markup: xsite attack protection
- */
-
- DivElement div = doc.createDivElement();
- div.setInnerText(" " + entry.getValue());
-
- SpanElement name = doc.createSpanElement();
- name.getStyle().setFontWeight(FontWeight.BOLD);
- name.setInnerText(entry.getKey());
-
- div.insertFirst(name);
-
- errors.appendChild(div);
- }
- }
-}
+}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors