Нужен множественный выбор в GWT CellList
Я хотел бы выбрать несколько ячеек в компоненте CellList; Я новичок в GWT, кто-то, пожалуйста, помогите. Для того, чтобы получить множественный выбор, как я могу изменить приведенный ниже код?
public class HelloWorld implements EntryPoint {
private static final List<String> DAYS = Arrays.asList("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday");
public void onModuleLoad() {
// Create a cell to render each value.
TextCell textCell = new TextCell();
// Create a CellList that uses the cell.
CellList<String> cellList = new CellList<String>(textCell);
cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
// Add a selection model to handle user selection.
final SingleSelectionModel<String> selectionModel = new SingleSelectionModel<String>();
cellList.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
String selected = selectionModel.getSelectedObject();
if (selected != null) {
// Window.alert("You selected: " + selected);
}
}
});
cellList.setRowCount(DAYS.size(), true);
// Push the data into the widget.
cellList.setRowData(0, DAYS);
// Add it to the root panel.
RootPanel.get("gwtCellListBox").add(cellList);
}
}
2 ответа
Во-первых, вам нужно MultiSelectionModel
, Затем, если вы хотите удерживать клавишу Ctrl, используйте DefaultSelectionEventManager
как CellPreviewEvent.Handler
с обычаем EventTranslator
которые всегда возвращаются TOGGLE
а также false
,
Попробуй это
public class HelloWorld implements EntryPoint {
private static final List<String> DAYS = Arrays.asList("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday");
public void onModuleLoad() {
// Create a cell to render each value.
TextCell textCell = new TextCell();
// Create a CellList that uses the cell.
CellList<String> cellList = new CellList<String>(textCell);
cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
// Add a selection model to handle user selection.
final MultiSelectionModel<String> selectionModel = new MultiSelectionModel<String>();
cellList.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
Set<String> selectedItems = selectionModel.getSelectedSet();
for (String s : selectedItems) {
System.out.println(s);
Window.alert("You selected: " + s);
}
}
});
cellList.setRowCount(DAYS.size(), true);
// Push the data into the widget.
cellList.setRowData(0, DAYS);
// Add it to the root panel.
RootPanel.get("gwtCellListBox").add(cellList);
}
}