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: rjrjr@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8794 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java index b918184..f02e603 100644 --- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java +++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/employee/EmployeeListView.java
@@ -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; }
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java index 7d15040..511fa91 100644 --- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java +++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ui/report/ReportListView.java
@@ -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; }
diff --git a/user/src/com/google/gwt/app/place/PropertyColumn.java b/user/src/com/google/gwt/app/place/PropertyColumn.java index 44ee42f..af19cb7 100644 --- a/user/src/com/google/gwt/app/place/PropertyColumn.java +++ b/user/src/com/google/gwt/app/place/PropertyColumn.java
@@ -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) {