Martin Mucha has uploaded a new change for review. Change subject: webadmin: duplicate code extracted to PermissionsSimpleActionTableBuilder ......................................................................
webadmin: duplicate code extracted to PermissionsSimpleActionTableBuilder creation of SimpleActionTable for displaying permissions extracted to separate class, so there won't be duplicates or visual inconsistencies. Change-Id: Ic22b229f88374bfe5e374e567200da81bfb85a20 Signed-off-by: Martin Mucha <mmu...@redhat.com> --- A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/PermissionsSimpleActionTableBuilder.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/macpool/SharedMacPoolView.java 3 files changed, 123 insertions(+), 156 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/33362/1 diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/PermissionsSimpleActionTableBuilder.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/PermissionsSimpleActionTableBuilder.java new file mode 100644 index 0000000..3bb5a42 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/PermissionsSimpleActionTableBuilder.java @@ -0,0 +1,111 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.configure; + +import org.ovirt.engine.core.common.businessentities.Permissions; +import org.ovirt.engine.ui.common.system.ClientStorage; +import org.ovirt.engine.ui.common.uicommon.model.SearchableTabModelProvider; +import org.ovirt.engine.ui.common.widget.table.SimpleActionTable; +import org.ovirt.engine.ui.common.widget.table.column.PermissionTypeColumn; +import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.user.cellview.client.CellTable; +import com.google.gwt.view.client.SelectionChangeEvent; + +public class PermissionsSimpleActionTableBuilder { + + private final SearchableTabModelProvider modelProvider; + private final EventBus eventBus; + private final ClientStorage clientStorage; + private final CellTable.Resources tableHeaderlessResources; + private final CellTable.Resources tableResources; + private final ApplicationConstants constants; + private final UICommand addCommand; + private final UICommand removeCommand; + + public PermissionsSimpleActionTableBuilder(SearchableTabModelProvider modelProvider, + EventBus eventBus, + ClientStorage clientStorage, + CellTable.Resources tableHeaderlessResources, + CellTable.Resources tableResources, + ApplicationConstants constants, UICommand addCommand, UICommand removeCommand) { + + this.modelProvider = modelProvider; + this.eventBus = eventBus; + this.clientStorage = clientStorage; + this.tableHeaderlessResources = tableHeaderlessResources; + this.tableResources = tableResources; + this.constants = constants; + this.addCommand = addCommand; + this.removeCommand = removeCommand; + } + + @SuppressWarnings("unchecked") + public SimpleActionTable createTable() { + final SimpleActionTable table = new SimpleActionTable<Permissions>(modelProvider, + tableHeaderlessResources, tableResources, eventBus, clientStorage); + + table.enableColumnResizing(); + + table.addColumn(new PermissionTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ + + TextColumnWithTooltip<Permissions> userColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getOwnerName(); + } + }; + table.addColumn(userColumn, constants.userPermission(), "300px"); //$NON-NLS-1$ + + TextColumnWithTooltip<Permissions> authzColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getAuthz(); + } + }; + table.addColumn(authzColumn, constants.authz(), "200px"); //$NON-NLS-1$ + + TextColumnWithTooltip<Permissions> namespaceColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getNamespace(); + } + }; + table.addColumn(namespaceColumn, constants.namespace(), "200px"); //$NON-NLS-1$ + + TextColumnWithTooltip<Permissions> roleColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getRoleName(); + } + }; + table.addColumn(roleColumn, constants.rolePermission()); + + table.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.addPermission()) { + @Override + protected UICommand resolveCommand() { + return addCommand; + } + }); + + table.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.removePermission()) { + @Override + protected UICommand resolveCommand() { + return removeCommand; + } + }); + + table.getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() { + + @Override + public void onSelectionChange(SelectionChangeEvent event) { + modelProvider.setSelectedItems(table.getSelectionModel().getSelectedList()); + } + }); + + return table; + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java index f74793b..4ac19e4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java @@ -5,12 +5,8 @@ import org.ovirt.engine.ui.common.MainTableResources; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.common.widget.table.SimpleActionTable; -import org.ovirt.engine.ui.common.widget.table.column.PermissionTypeColumn; -import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; -import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.uicommon.model.SystemPermissionModelProvider; -import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.EventBus; @@ -20,7 +16,6 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.SplitLayoutPanel; -import com.google.gwt.view.client.SelectionChangeEvent; import com.google.inject.Inject; public class SystemPermissionView extends Composite { @@ -36,98 +31,28 @@ private SimpleActionTable<Permissions> table; - private final SystemPermissionModelProvider modelProvider; - - private final EventBus eventBus; - private final ClientStorage clientStorage; - @Inject public SystemPermissionView(ApplicationConstants constants, SystemPermissionModelProvider modelProvider, EventBus eventBus, ClientStorage clientStorage) { super(); - this.modelProvider = modelProvider; - this.eventBus = eventBus; - this.clientStorage = clientStorage; initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); - localize(constants); content = new SplitLayoutPanel(); content.setWidth("100%"); //$NON-NLS-1$ content.setHeight("100%"); //$NON-NLS-1$ tabContent.add(content); - initTable(constants); - } - - private void localize(ApplicationConstants constants) { - } - - private void initTable(ApplicationConstants constants) { - table = new SimpleActionTable<Permissions>(modelProvider, - getTableHeaderlessResources(), getTableResources(), eventBus, clientStorage); - + PermissionsSimpleActionTableBuilder factory = new PermissionsSimpleActionTableBuilder(modelProvider, + eventBus, clientStorage, getTableHeaderlessResources(), getTableResources(), constants, + modelProvider.getModel().getAddCommand(), modelProvider.getModel().getRemoveCommand()); + this.table = factory.createTable(); content.add(table); - table.enableColumnResizing(); - table.addColumn(new PermissionTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> userColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getOwnerName(); - } - }; - table.addColumn(userColumn, constants.userPermission(), "300px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> authzColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getAuthz(); - } - }; - table.addColumn(authzColumn, constants.authz(), "200px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> namespaceColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getNamespace(); - } - }; - table.addColumn(namespaceColumn, constants.namespace(), "200px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> roleColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getRoleName(); - } - }; - table.addColumn(roleColumn, constants.rolePermission()); - - table.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.addPermission()) { - @Override - protected UICommand resolveCommand() { - return modelProvider.getModel().getAddCommand(); - } - }); - - table.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.removePermission()) { - @Override - protected UICommand resolveCommand() { - return modelProvider.getModel().getRemoveCommand(); - } - }); - - table.getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - - @Override - public void onSelectionChange(SelectionChangeEvent event) { - modelProvider.setSelectedItems(table.getSelectionModel().getSelectedList()); - } - }); } + protected Resources getTableHeaderlessResources() { return (Resources) GWT.create(MainTableHeaderlessResources.class); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/macpool/SharedMacPoolView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/macpool/SharedMacPoolView.java index 5b611d2..f09fc14 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/macpool/SharedMacPoolView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/macpool/SharedMacPoolView.java @@ -9,11 +9,11 @@ import org.ovirt.engine.ui.common.MainTableResources; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.common.widget.table.SimpleActionTable; -import org.ovirt.engine.ui.common.widget.table.column.PermissionTypeColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.PermissionsSimpleActionTableBuilder; import org.ovirt.engine.ui.webadmin.uicommon.model.SharedMacPoolModelProvider; import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; import org.ovirt.engine.ui.webadmin.widget.table.column.WebAdminImageResourceColumn; @@ -49,8 +49,12 @@ macPoolTable = createMacPoolTable(eventBus, clientStorage, headerlessResources, tableResources, constants, resources); - authorizationTable = createAuthorizationTable(eventBus, clientStorage, headerlessResources, - tableResources, constants, resources); + PermissionsSimpleActionTableBuilder factory = new PermissionsSimpleActionTableBuilder(macPoolPermissionModelProvider, + eventBus, clientStorage, headerlessResources, tableResources, constants, + macPoolPermissionModelProvider.getModel().getAddPermissionCommand(), + macPoolPermissionModelProvider.getModel().getRemovePermissionCommand()); + + authorizationTable = factory.createTable(); SplitLayoutPanel rootPanel = createRootPanel(); rootPanel.addSouth(authorizationTable, 150); @@ -148,77 +152,4 @@ return macPoolTable; } - - //TODO MM: remove duplicity with org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.SystemPermissionView.initTable() - private SimpleActionTable<Permissions> createAuthorizationTable(final EventBus eventBus, - final ClientStorage clientStorage, - final MainTableHeaderlessResources headerlessResources, - final MainTableResources tableResources, - final ApplicationConstants constants, - final ApplicationResources resources) { - - SimpleActionTable<Permissions> permissionsTable = new SimpleActionTable<Permissions>(macPoolPermissionModelProvider, - headerlessResources, - tableResources, - eventBus, - clientStorage); - permissionsTable.addColumn(new PermissionTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> userColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getOwnerName(); - } - }; - permissionsTable.addColumn(userColumn, constants.userPermission(), "300px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> namespaceColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getNamespace(); - } - }; - permissionsTable.addColumn(namespaceColumn, constants.namespace(), "200px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> authzColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getAuthz(); - } - }; - permissionsTable.addColumn(authzColumn, constants.authz(), "200px"); //$NON-NLS-1$ - - TextColumnWithTooltip<Permissions> roleColumn = new TextColumnWithTooltip<Permissions>() { - @Override - public String getValue(Permissions object) { - return object.getRoleName(); - } - }; - permissionsTable.addColumn(roleColumn, constants.rolePermission()); - - permissionsTable.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.addPermission()) { - @Override - protected UICommand resolveCommand() { - return macPoolPermissionModelProvider.getModel().getAddPermissionCommand(); - } - }); - - permissionsTable.addActionButton(new WebAdminButtonDefinition<Permissions>(constants.removePermission()) { - @Override - protected UICommand resolveCommand() { - return macPoolPermissionModelProvider.getModel().getRemovePermissionCommand(); - } - }); - - permissionsTable.getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - - @Override - public void onSelectionChange(SelectionChangeEvent event) { - macPoolPermissionModelProvider.setSelectedItems(authorizationTable.getSelectedItems()); - } - }); - - return permissionsTable; - } - } -- To view, visit http://gerrit.ovirt.org/33362 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic22b229f88374bfe5e374e567200da81bfb85a20 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Mucha <mmu...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches