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

Reply via email to