Reviewers: rjrjr,

Description:
Fixed a bug in PropertyColumn introduced by r8780.  PropertyColumn needs
access to the underlying class literals in order to get the value to
render.


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

Affected files:
M samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java M samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
  M user/src/com/google/gwt/app/place/PropertyColumn.java


Index: samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java
===================================================================
--- samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java (revision 8793) +++ samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java (working copy)
@@ -56,7 +56,7 @@
columns.add(PropertyColumn.<EmployeeProxy> getStringPropertyColumn("password", "Password"));

     columns.add(new PropertyColumn<EmployeeProxy, EmployeeProxy>(
-        "supervisor", "Supervisor", EmployeeRenderer.instance()));
+ "supervisor", "Supervisor", EmployeeProxy.class, EmployeeRenderer.instance()));

     return columns;
   }
Index: samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
===================================================================
--- samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java (revision 8793) +++ samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java (working copy)
@@ -56,16 +56,16 @@

List<PropertyColumn<ReportProxy, ?>> columns = new ArrayList<PropertyColumn<ReportProxy, ?>>();

-    columns.add(new PropertyColumn<ReportProxy, Date>("created", "Created",
+ columns.add(new PropertyColumn<ReportProxy, Date>("created", "Created", Date.class,
         new DateTimeFormatRenderer(DateTimeFormat.getShortDateFormat())));

columns.add(PropertyColumn.<ReportProxy> getStringPropertyColumn("purpose", "Purpose"));

     columns.add(new PropertyColumn<ReportProxy, EmployeeProxy>(
-        "reporter", "Reporter", EmployeeRenderer.instance()));
+ "reporter", "Reporter", EmployeeProxy.class, EmployeeRenderer.instance()));

     columns.add(new PropertyColumn<ReportProxy, EmployeeProxy>(
- "approvedSupervisor", "Approved Supervisor Key", EmployeeRenderer.instance())); + "approvedSupervisor", "Approved Supervisor Key", EmployeeProxy.class, EmployeeRenderer.instance()));

     return columns;
   }
Index: user/src/com/google/gwt/app/place/PropertyColumn.java
===================================================================
--- user/src/com/google/gwt/app/place/PropertyColumn.java       (revision 8793)
+++ user/src/com/google/gwt/app/place/PropertyColumn.java       (working copy)
@@ -38,24 +38,27 @@
public static <R extends EntityProxy> PropertyColumn<R, String> getStringPropertyColumn(
       String property, String displayName) {
     return new PropertyColumn<R, String>(property, displayName,
-        PassthroughRenderer.instance());
+        String.class, PassthroughRenderer.instance());
   }

+  private final Class<T> clazz;
   private String displayName;
   private final Renderer<T> renderer;
   private final String property;
   private final String[] paths;

- public PropertyColumn(String property, String displayName, ProxyRenderer<T> renderer) { + public PropertyColumn(String property, String displayName, Class<T> clazz, ProxyRenderer<T> renderer) {
     this.displayName = displayName;
     this.property = property;
+    this.clazz = clazz;
     this.renderer = renderer;
     this.paths = pathinate(property, renderer);
   }

- public PropertyColumn(String property, String displayName, Renderer<T> renderer) { + public PropertyColumn(String property, String displayName, Class<T> clazz, Renderer<T> renderer) {
     this.displayName = displayName;
     this.property = property;
+    this.clazz = clazz;
     this.renderer = renderer;
     this.paths = new String[] {property};
   }
@@ -71,7 +74,7 @@
   @Override
   public String getValue(R object) {
     ProxyImpl proxyImpl = (ProxyImpl) object;
-    return renderer.render(proxyImpl.<T>get(property, String.class));
+    return renderer.render(proxyImpl.<T>get(property, clazz));
   }

   private String[] pathinate(String property, ProxyRenderer<T> renderer) {


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

Reply via email to