2014-10-14 4 views
0

У меня есть сетка с сеткой внутри. Я применяю фильтр к хранилищу сетки и хочу, чтобы и набор полей, и сетка изменялись при применении фильтра. У меня есть слушатель в магазине, но я не могу на всю жизнь понять, как изменить размер обоих компонентов.GXT Resize Grid и FieldSet, когда фильтр сетки фильтруется

Я использую GXT 2.4

Вот некоторые примеры кода, чтобы дать контекст:

final FieldSet fieldSet = new FieldSet(); 
fieldSet.setHeading("Example"); 
fieldSet.setCollapsible(true); 
fieldSet.setCheckboxToggle(true); 
fieldSet.setExpanded(false); 
mainFieldSet.add(fieldSet,new RowData(-1,-1,new Margins(10,0,0,0))); 

ListStore<MyModel> store = new ListStore<MyModel>(); 
store.add(myModels); 

CheckBoxSelectionModel<MyModel> sm = new CheckBoxSelectionModel<MyModel>(); 

List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); 
columns.add(sm.getColumn()); 
ColumnConfig column = new ColumnConfig("id", "Id", 40); 
column.setSortable(false); 
columns.add(column); 
column = new ColumnConfig("name", "Label",280); 
column.setSortable(false); 
columns.add(column); 

final Grid<MyModel> grid = new Grid<MyModel>(store, new ColumnModel(columns)); 
grid.addPlugin(sm); 
grid.setBorders(true); 
grid.setSelectionModel(sm); 
fieldSet.add(grid); 

grid.getStore().addStoreListener(new StoreListener<MyModel>() { 
    public void storeFilter(StoreEvent<MyModel> se) { 
     // Need something here to resize both grid and fieldSet 
    } 
}); 

ответ

0

взломали! fieldSet и grid оба должны иметь setAutoHeight(true) и огнестойкость следующие события из StoreListener:

grid.getStore().addStoreListener(new StoreListener<OptionModel>() { 
    public void storeFilter(StoreEvent<OptionModel> se) { 
    questionFieldSet.fireEvent(Events.Expand); 
    questionFieldSet.fireEvent(Events.Resize); 
    } 
});