Модель выделения CheckBoxSelectionModel в Grid используется для того, чтобы можно было выделять строки и помечать выделенные строки галочками. Скорее всего эту модель выделения будут использовать когда есть необходимость выделить какую-то часть строк и совершить над ней определенные действия, например удалить или сформировать какой-нибудь отчет.
Перед тем как создать таблицу нужно для этого кое-что подготовить.
Создаем список конфигураций для столбцов таблицы.
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
Создаем store для хранения моделей, которые являются строками таблицы.
ListStore store = new ListStore<ModelData>();
Нужно определить CheckBoxSelectionModel как столбец таблицы и добавить его в список конфигураций для столбцов таблицы.
CheckBoxSelectionModel<ModelData> sm = new CheckBoxSelectionModel<ModelData>();
ColumnConfig checkConfig = sm.getColumn();
configs.add(checkConfig);
Создаем остальные конфигурации для столбцов таблицы.
ColumnConfig column = new ColumnConfig();
column.setHeader("Name");
column.setWidth(130);
column.setId("name");
configs.add(column);
column = new ColumnConfig();
column.setHeader("Surname");
column.setId("surname");
column.setWidth(130);
configs.add(column);
column = new ColumnConfig();
column.setHeader("Age");
column.setId("age");
column.setWidth(120);
configs.add(column);
Создаем модель столбцов таблицы на основании списка конфигураций столбцов.
ColumnModel cm = new ColumnModel(configs);
А потом уже на основании store и модели столбцов создаем саму таблицу.
EditorGrid grid = new EditorGrid<ModelData>(store, cm);
Необходимо установить CheckBoxSelectionModel в качестве модели выделения элементов таблицы
grid.setSelectionModel(sm);
и установить в качестве плагина для таблицы
grid.addPlugin(sm);
Метод addPlugin() необходим для того, чтобы работал чекбокс в заголовке столбца - позволял выделить все строки таблицы или снять выделение со всех строк таблицы (если этого не сделать, тогда все будет отображаться правильно, но чекбокс в заголовке столбца будет не кликабельным).
При работе с таблицами пользователь скорее всего будет иметь две стандартные возможности - добавлять и удалять строки в таблицу. Если используется модель выделения CheckBoxSelectionModel, то подразумевается, что строку можно будет выделить - поставить галочку, а потом строки помеченные галочками удалить.
// получаем у таблицы модель выделения
GridSelectionModel<ModelData> selectionModel = grid.getSelectionModel();
// получаем у модели выделения выделенные строки
List<ModelData> list = selectionModel.getSelectedItems();
// пробегаем в цикле выделенные строки
// и удаляем их из хранилища таблицы
for (ModelData m : list) {
grid.getStore().remove(m);
}
Перед тем как создать таблицу нужно для этого кое-что подготовить.
Создаем список конфигураций для столбцов таблицы.
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
Создаем store для хранения моделей, которые являются строками таблицы.
ListStore store = new ListStore<ModelData>();
Нужно определить CheckBoxSelectionModel как столбец таблицы и добавить его в список конфигураций для столбцов таблицы.
CheckBoxSelectionModel<ModelData> sm = new CheckBoxSelectionModel<ModelData>();
ColumnConfig checkConfig = sm.getColumn();
configs.add(checkConfig);
Создаем остальные конфигурации для столбцов таблицы.
ColumnConfig column = new ColumnConfig();
column.setHeader("Name");
column.setWidth(130);
column.setId("name");
configs.add(column);
column = new ColumnConfig();
column.setHeader("Surname");
column.setId("surname");
column.setWidth(130);
configs.add(column);
column = new ColumnConfig();
column.setHeader("Age");
column.setId("age");
column.setWidth(120);
configs.add(column);
Создаем модель столбцов таблицы на основании списка конфигураций столбцов.
ColumnModel cm = new ColumnModel(configs);
А потом уже на основании store и модели столбцов создаем саму таблицу.
EditorGrid grid = new EditorGrid<ModelData>(store, cm);
Необходимо установить CheckBoxSelectionModel в качестве модели выделения элементов таблицы
grid.setSelectionModel(sm);
и установить в качестве плагина для таблицы
grid.addPlugin(sm);
Метод addPlugin() необходим для того, чтобы работал чекбокс в заголовке столбца - позволял выделить все строки таблицы или снять выделение со всех строк таблицы (если этого не сделать, тогда все будет отображаться правильно, но чекбокс в заголовке столбца будет не кликабельным).
Удаление выделенных галочками строк.
// получаем у таблицы модель выделения
GridSelectionModel<ModelData> selectionModel = grid.getSelectionModel();
// получаем у модели выделения выделенные строки
List<ModelData> list = selectionModel.getSelectedItems();
// пробегаем в цикле выделенные строки
// и удаляем их из хранилища таблицы
for (ModelData m : list) {
grid.getStore().remove(m);
}
Good job, man!
ОтветитьУдалить