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) {