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