List of usage examples for com.google.gwt.view.client DefaultSelectionEventManager.CheckboxEventTranslator DefaultSelectionEventManager.CheckboxEventTranslator
DefaultSelectionEventManager.CheckboxEventTranslator
From source file:org.jboss.as.console.client.administration.role.form.RolesFormItem.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public Widget asWidget() { // table/*from ww w . ja v a 2 s .c om*/ DefaultCellTable<Role> table = new DefaultCellTable<Role>(pageSize, keyProvider); table.setSelectionModel(selectionModel, DefaultSelectionEventManager .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<Role>() { @Override public SelectAction translateSelectionEvent(CellPreviewEvent<Role> event) { SelectAction action = super.translateSelectionEvent(event); if (action.equals(SelectAction.IGNORE)) { Role role = event.getValue(); boolean selected = selectionModel.isSelected(role); return selected ? SelectAction.DESELECT : SelectAction.SELECT; } return action; } })); dataProvider.addDataDisplay(table); selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(final SelectionChangeEvent event) { value.clear(); value.addAll(selectionModel.getSelectedSet()); setModified(true); } }); // columns Column<Role, Boolean> checkColumn = new Column<Role, Boolean>(new CheckboxCell(true, false)) { @Override public Boolean getValue(Role role) { // Get the value from the selection model. return selectionModel.isSelected(role); } }; TextColumn<Role> nameColumn = new TextColumn<Role>() { @Override public String getValue(Role role) { return role.getName(); } }; table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>")); table.setColumnWidth(checkColumn, 40, PX); table.addColumn(nameColumn, Console.CONSTANTS.common_label_name()); // pager DefaultPager pager = new DefaultPager(); pager.setWidth("auto"); pager.setDisplay(table); // panels VerticalPanel content = new VerticalPanel(); content.setWidth("95%"); content.add(table); content.add(pager); wrapper = new FormItemPanelWrapper(content, this); return wrapper; }