Revision: 8794
Author: [email protected]
Date: Wed Sep 15 17:06:43 2010
Log: Fixed a bug in PropertyColumn introduced by r8780. PropertyColumn needs access to the underlying class literals in order to get the value to render.

Review at http://gwt-code-reviews.appspot.com/889801

Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=8794

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

=======================================
--- /trunk/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java Tue Sep 14 17:54:04 2010 +++ /trunk/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java Wed Sep 15 17:06:43 2010
@@ -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;
   }
=======================================
--- /trunk/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java Tue Sep 14 17:54:04 2010 +++ /trunk/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java Wed Sep 15 17:06:43 2010
@@ -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;
   }
=======================================
--- /trunk/user/src/com/google/gwt/app/place/PropertyColumn.java Tue Sep 14 17:54:04 2010 +++ /trunk/user/src/com/google/gwt/app/place/PropertyColumn.java Wed Sep 15 17:06:43 2010
@@ -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