1 Attachment(s)
[GXT 2.2.4] Bug on GridCellRenderer for TreeGrid
Hi,
I have some issues on widget renderer when I try to scroll with the mouse wheel.
Some widgets are not rerendering correctly.
here is a simple source code producing the bug :
Code:
import java.util.Arrays;
import com.extjs.gxt.samples.resources.client.Resources;
import com.extjs.gxt.samples.resources.client.TestData;
import com.extjs.gxt.samples.resources.client.model.Folder;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.store.TreeStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.treegrid.TreeGrid;
import com.extjs.gxt.ui.client.widget.treegrid.TreeGridCellRenderer;
import com.google.gwt.user.client.Element;
public class TreeGridExample extends LayoutContainer {
@Override
protected void onRender( Element parent, int index ) {
super.onRender( parent, index );
setLayout( new FlowLayout( 10 ) );
Folder model = TestData.getTreeModel();
TreeStore<ModelData> store = new TreeStore<ModelData>();
for ( int i = 0; i < 10; i++ ) {
store.add( model.getChildren(), true );
}
ColumnConfig cBox = new ColumnConfig( "cBox", "cBox", 20 );
cBox.setRenderer( new GridCellRenderer<ModelData>() {
@Override
public Object render( ModelData model, String property, ColumnData config, int rowIndex, int colIndex,
ListStore<ModelData> store, Grid<ModelData> grid ) {
final CheckBox checkBox = new CheckBox();
checkBox.setValue( rowIndex % 2 == 1 );
return checkBox;
}
} );
ColumnConfig name = new ColumnConfig( "name", "Name", 100 );
name.setRenderer( new TreeGridCellRenderer<ModelData>() );
ColumnModel cm = new ColumnModel( Arrays.asList( cBox, name ) );
ContentPanel cp = new ContentPanel();
cp.setLayout( new FitLayout() );
cp.setSize( 600, 300 );
final TreeGrid<ModelData> tree = new TreeGrid<ModelData>( store, cm );
tree.getStyle().setLeafIcon( Resources.ICONS.music() );
tree.setAutoExpandColumn( "name" );
cp.add( tree );
add( cp );
}
}
The result optained :
Attachment 31143
Thank you