mtarantini
31 Jul 2009, 4:20 AM
Hi,
I'd like to know how to colorize the GridView (like the stripeRow does) but on the row and depending of a certain property of my model.
I try to use the GridCellRenderer, the code below doesn't work
GridCellRenderer<PropertyModel> cellRenderer = new GridCellRenderer<PropertyModel>()
{
/**
* @see com.extjs.gxt.ui.client.widget.grid.GridCellRenderer#render(com.extjs.gxt.ui.client.data.ModelData, java.lang.String,
* com.extjs.gxt.ui.client.widget.grid.ColumnData, int, int, com.extjs.gxt.ui.client.store.ListStore, com.extjs.gxt.ui.client.widget.grid.Grid)
*/
@Override
public Object render(PropertyModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PropertyModel> store,
Grid<PropertyModel> grid)
{
if (model.get(property) instanceof String)
{
grid.getView().getRow(rowIndex).setAttribute("backgroundColor", "blue");
}
return model.get(property);
}
};
I get an exception on the shell :
Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (TypeError): Cet objet ne gère pas cette propriété ou cette méthode
number: -2146827850
description: Cet objet ne gère pas cette propriété ou cette méthode
at com.google.gwt.dom.client.Element$.setAttribute$(Native Method)
at com.comarch.web.app.faultmanagement.client.app.FaultView$2.render(FaultView.java:122)
at com.comarch.web.app.faultmanagement.client.app.FaultView$2.render(FaultView.java:1)
at com.extjs.gxt.ui.client.widget.grid.GridView.getRenderedValue(GridView.java:982)
at com.extjs.gxt.ui.client.widget.grid.GridView.doRender(GridView.java:835)
at com.extjs.gxt.ui.client.widget.grid.GridView.renderRows(GridView.java:1535)
at com.extjs.gxt.ui.client.widget.grid.GridView.afterRender(GridView.java:654)
at com.extjs.gxt.ui.client.widget.grid.Grid.afterRenderView(Grid.java:619)
at com.extjs.gxt.ui.client.widget.grid.Grid$1.run(Grid.java:609)
at com.google.gwt.user.client.Timer.fireImpl(Timer.java:160)
at com.google.gwt.user.client.Timer.fireAndCatch(Timer.java:146)
at com.google.gwt.user.client.Timer.fire(Timer.java:138)
So, any idea to colorize each row separately ?
Thx you in advance.
I'd like to know how to colorize the GridView (like the stripeRow does) but on the row and depending of a certain property of my model.
I try to use the GridCellRenderer, the code below doesn't work
GridCellRenderer<PropertyModel> cellRenderer = new GridCellRenderer<PropertyModel>()
{
/**
* @see com.extjs.gxt.ui.client.widget.grid.GridCellRenderer#render(com.extjs.gxt.ui.client.data.ModelData, java.lang.String,
* com.extjs.gxt.ui.client.widget.grid.ColumnData, int, int, com.extjs.gxt.ui.client.store.ListStore, com.extjs.gxt.ui.client.widget.grid.Grid)
*/
@Override
public Object render(PropertyModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PropertyModel> store,
Grid<PropertyModel> grid)
{
if (model.get(property) instanceof String)
{
grid.getView().getRow(rowIndex).setAttribute("backgroundColor", "blue");
}
return model.get(property);
}
};
I get an exception on the shell :
Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (TypeError): Cet objet ne gère pas cette propriété ou cette méthode
number: -2146827850
description: Cet objet ne gère pas cette propriété ou cette méthode
at com.google.gwt.dom.client.Element$.setAttribute$(Native Method)
at com.comarch.web.app.faultmanagement.client.app.FaultView$2.render(FaultView.java:122)
at com.comarch.web.app.faultmanagement.client.app.FaultView$2.render(FaultView.java:1)
at com.extjs.gxt.ui.client.widget.grid.GridView.getRenderedValue(GridView.java:982)
at com.extjs.gxt.ui.client.widget.grid.GridView.doRender(GridView.java:835)
at com.extjs.gxt.ui.client.widget.grid.GridView.renderRows(GridView.java:1535)
at com.extjs.gxt.ui.client.widget.grid.GridView.afterRender(GridView.java:654)
at com.extjs.gxt.ui.client.widget.grid.Grid.afterRenderView(Grid.java:619)
at com.extjs.gxt.ui.client.widget.grid.Grid$1.run(Grid.java:609)
at com.google.gwt.user.client.Timer.fireImpl(Timer.java:160)
at com.google.gwt.user.client.Timer.fireAndCatch(Timer.java:146)
at com.google.gwt.user.client.Timer.fire(Timer.java:138)
So, any idea to colorize each row separately ?
Thx you in advance.