private SimpleActionTable<MacPool> createMacPoolTable() { final SimpleActionTable<MacPool> macPoolTable = new SimpleActionTable<>( sharedMacPoolModelProvider, headerlessResources, tableResources, eventBus, clientStorage); macPoolTable.addColumn( new AbstractImageResourceColumn<MacPool>() { @Override public ImageResource getValue(MacPool macPool) { return macPool.isDefaultPool() ? resources.lockImage() : null; } }, constants.empty(), "20px"); //$NON-NLS-1$ macPoolTable.addColumn( new AbstractTextColumn<MacPool>() { @Override public String getValue(MacPool macPool) { return macPool.getName(); } }, constants.configureMacPoolNameColumn(), "100px"); //$NON-NLS-1$ macPoolTable.addColumn( new AbstractTextColumn<MacPool>() { @Override public String getValue(MacPool macPool) { return macPool.getDescription(); } }, constants.configureMacPoolDescriptionColumn(), "300px"); //$NON-NLS-1$ macPoolTable.addActionButton( new WebAdminButtonDefinition<MacPool>(constants.configureMacPoolAddButton()) { @Override protected UICommand resolveCommand() { return sharedMacPoolModelProvider.getModel().getNewCommand(); } }); macPoolTable.addActionButton( new WebAdminButtonDefinition<MacPool>(constants.configureMacPoolEditButton()) { @Override protected UICommand resolveCommand() { return sharedMacPoolModelProvider.getModel().getEditCommand(); } }); macPoolTable.addActionButton( new WebAdminButtonDefinition<MacPool>(constants.configureMacPoolRemoveButton()) { @Override protected UICommand resolveCommand() { return sharedMacPoolModelProvider.getModel().getRemoveCommand(); } }); macPoolTable .getSelectionModel() .addSelectionChangeHandler( new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { final List<MacPool> selectedItems = macPoolTable.getSelectedItems(); sharedMacPoolModelProvider.setSelectedItems(selectedItems); final PermissionListModel<MacPool> model = permissionModelProvider.getModel(); if (selectedItems.size() == 1) { model.setEntity(selectedItems.get(0)); setupAuthorizationTableVisibility(true); } else { model.setEntity(null); setupAuthorizationTableVisibility(false); } } }); return macPoolTable; }