Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: [WIP] host gluster-swift sub tab
......................................................................

webadmin: [WIP] host gluster-swift sub tab

Adding a new sub-tab "Gluster Swift" under Hosts.
This will list all the Gluste Swift related services
and their statuses.

Change-Id: Iacffe5b49e6dcde743fa81d5a3f694de5d8f1421
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterSwiftListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/HostModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostEventPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGlusterSwiftPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostPermissionPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGlusterSwiftView.java
13 files changed, 280 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/15296/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index 0693095..a2c29cc 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -50,6 +50,7 @@
 import org.ovirt.engine.core.common.businessentities.permissions;
 import org.ovirt.engine.core.common.businessentities.tags;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
@@ -1183,6 +1184,17 @@
         Frontend.RunQuery(VdcQueryType.GetGlusterHookContent, parameters, 
aQuery);
     }
 
+    public static void getGlusterSwiftServices(AsyncQuery aQuery, Guid 
serverId) {
+        aQuery.converterCallback = new IAsyncConverter() {
+            @Override
+            public Object Convert(Object source, AsyncQuery _asyncQuery)
+            {
+                return source != null ? source : new 
ArrayList<GlusterServerService>();
+            }
+        };
+        Frontend.RunQuery(VdcQueryType.GetGlusterServerServicesByServerId, new 
IdQueryParameters(serverId), aQuery);
+    }
+
     public static void getRpmVersionViaPublic(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterSwiftListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterSwiftListModel.java
new file mode 100644
index 0000000..236dc9f
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterSwiftListModel.java
@@ -0,0 +1,109 @@
+package org.ovirt.engine.ui.uicommonweb.models.gluster;
+
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
+import org.ovirt.engine.core.common.mode.ApplicationMode;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class HostGlusterSwiftListModel extends SearchableListModel {
+
+    private UICommand startSwiftCommand;
+
+    public UICommand getStartSwiftCommand() {
+        return startSwiftCommand;
+    }
+
+    public void setStartSwiftCommand(UICommand startSwiftCommand) {
+        this.startSwiftCommand = startSwiftCommand;
+    }
+
+    private UICommand stopSwiftCommand;
+
+    public UICommand getStopSwiftCommand() {
+        return stopSwiftCommand;
+    }
+
+    public void setStopSwiftCommand(UICommand stopSwiftCommand) {
+        this.stopSwiftCommand = stopSwiftCommand;
+    }
+
+    private UICommand restartSwiftCommand;
+
+    public UICommand getRestartSwiftCommand() {
+        return restartSwiftCommand;
+    }
+
+    public void setRestartSwiftCommand(UICommand restartSwiftCommand) {
+        this.restartSwiftCommand = restartSwiftCommand;
+    }
+
+    public HostGlusterSwiftListModel() {
+        
setTitle(ConstantsManager.getInstance().getConstants().glusterSwiftTitle());
+        setHashName("host_gluster_swift"); //$NON-NLS-1$
+        setAvailableInModes(ApplicationMode.GlusterOnly);
+
+        setStartSwiftCommand(new UICommand("StartSwift", this));
+        setStopSwiftCommand(new UICommand("StopSwift", this));
+        setRestartSwiftCommand(new UICommand("RestartSwift", this));
+    }
+
+    @Override
+    public VDS getEntity() {
+        return (VDS) super.getEntity();
+    }
+
+    @Override
+    protected void onEntityChanged() {
+        super.onEntityChanged();
+        getSearchCommand().execute();
+    }
+
+    @Override
+    public void search() {
+        if (getEntity() != null) {
+            super.search();
+        }
+    }
+
+    @Override
+    protected void syncSearch() {
+        if (getEntity() == null) {
+            return;
+        }
+
+        AsyncDataProvider.getGlusterSwiftServices(new AsyncQuery(this, new 
INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                setItems((List<GlusterServerService>) returnValue);
+            }
+        }), getEntity().getId());
+    }
+
+    @Override
+    public void executeCommand(UICommand command) {
+        super.executeCommand(command);
+
+        if (command.equals(getStartSwiftCommand())) {
+
+        }
+        else if (command.equals(getStopSwiftCommand())) {
+
+        }
+        else if (command.equals(getRestartSwiftCommand())) {
+
+        }
+    }
+
+    @Override
+    protected String getListName() {
+        return "HostGlusterSwiftListModel"; //$NON-NLS-1$
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
index c4bdf40..23f6e5f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
@@ -24,12 +24,12 @@
 import org.ovirt.engine.core.common.action.VdsActionParameters;
 import org.ovirt.engine.core.common.businessentities.FenceActionType;
 import org.ovirt.engine.core.common.businessentities.RoleType;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VDSType;
 import org.ovirt.engine.core.common.businessentities.permissions;
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
@@ -60,6 +60,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
 import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel;
 import org.ovirt.engine.ui.uicommonweb.models.events.TaskListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.HostGlusterSwiftListModel;
 import org.ovirt.engine.ui.uicommonweb.models.tags.TagListModel;
 import org.ovirt.engine.ui.uicommonweb.models.tags.TagModel;
 import org.ovirt.engine.ui.uicompat.Constants;
@@ -1413,6 +1414,7 @@
         setHostEventListModel(new HostEventListModel());
         list.add(getHostEventListModel());
         list.add(new HostHooksListModel());
+        list.add(new HostGlusterSwiftListModel());
         list.add(new PermissionListModel());
         setDetailModels(list);
     }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index c1117fc..4e94aae 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -93,6 +93,9 @@
     @DefaultStringValue("Gluster Hooks")
     String glusterHooksTitle();
 
+    @DefaultStringValue("Gluster Swift")
+    String glusterSwiftTitle();
+
     @DefaultStringValue("Policy")
     String clusterPolicyTitle();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index 6f09656..4d1d0ac 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -364,6 +364,9 @@
     @DefaultStringValue("Host Hooks")
     String hostHookSubTabLabel();
 
+    @DefaultStringValue("Gluster Swift")
+    String hostGlusterSwiftSubTabLabel();
+
     @DefaultStringValue("Permissions")
     String hostPermissionSubTabLabel();
 
@@ -1781,6 +1784,13 @@
     @DefaultStringValue("Property Value")
     String propertyValueHook();
 
+    // Host Gluster Swift
+    @DefaultStringValue("Service")
+    String serviceGlusterSwift();
+
+    @DefaultStringValue("Status")
+    String statusGlusterSwift();
+
     // Group
     @DefaultStringValue("Group Name")
     String groupNameGroup();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java
index 2c3bdfe..82e3dd4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java
@@ -10,6 +10,7 @@
 import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
@@ -17,9 +18,9 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.event_subscriber;
 import org.ovirt.engine.core.common.businessentities.permissions;
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity;
 import org.ovirt.engine.core.common.businessentities.network.Network;
@@ -54,6 +55,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskTemplateListModel;
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskVmListModel;
 import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.HostGlusterSwiftListModel;
 import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeBrickListModel;
 import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeEventListModel;
 import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeneralModel;
@@ -177,6 +179,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostEventPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGlusterSwiftPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHookPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter;
@@ -508,6 +511,10 @@
 
     SearchableDetailModelProvider<Map<String, String>, HostListModel, 
HostHooksListModel> getSubTabHostHookModelProvider();
 
+    AsyncProvider<SubTabHostGlusterSwiftPresenter> 
getSubTabHostGlusterSwiftPresenter();
+
+    SearchableDetailModelProvider<GlusterServerService, HostListModel, 
HostGlusterSwiftListModel> getSubTabHostGlusterSwiftModelProvider();
+
     AsyncProvider<SubTabHostPermissionPresenter> 
getSubTabHostPermissionPresenter();
 
     SearchableDetailModelProvider<permissions, HostListModel, 
PermissionListModel> getSubTabHostPermissionModelProvider();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
index 892ddac..de4d3e1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
@@ -133,6 +133,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostEventPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGlusterSwiftPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHookPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter;
@@ -324,6 +325,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.HostSubTabPanelView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostEventView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGlusterSwiftView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHardwareView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHookView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostInterfaceView;
@@ -640,6 +642,10 @@
                 SubTabHostHookPresenter.ViewDef.class,
                 SubTabHostHookView.class,
                 SubTabHostHookPresenter.ProxyDef.class);
+        bindPresenter(SubTabHostGlusterSwiftPresenter.class,
+                SubTabHostGlusterSwiftPresenter.ViewDef.class,
+                SubTabHostGlusterSwiftView.class,
+                SubTabHostGlusterSwiftPresenter.ProxyDef.class);
         bindPresenter(SubTabHostPermissionPresenter.class,
                 SubTabHostPermissionPresenter.ViewDef.class,
                 SubTabHostPermissionView.class,
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/HostModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/HostModule.java
index b8a28fb..800907f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/HostModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/HostModule.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.permissions;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
 import org.ovirt.engine.core.compat.StringHelper;
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
 import org.ovirt.engine.ui.common.presenter.ModelBoundPresenterWidget;
@@ -22,10 +23,11 @@
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel;
-import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.HostGlusterSwiftListModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostBondInterfaceModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostEventListModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHooksListModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceLineModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel;
@@ -245,6 +247,14 @@
 
     @Provides
     @Singleton
+    public SearchableDetailModelProvider<GlusterServerService, HostListModel, 
HostGlusterSwiftListModel> getHostGlusterSwiftListProvider(ClientGinjector 
ginjector) {
+        return new SearchableDetailTabModelProvider<GlusterServerService, 
HostListModel, HostGlusterSwiftListModel>(ginjector,
+                HostListModel.class,
+                HostGlusterSwiftListModel.class);
+    }
+
+    @Provides
+    @Singleton
     public SearchableDetailModelProvider<permissions, HostListModel, 
PermissionListModel> getPermissionListProvider(ClientGinjector ginjector,
             final Provider<PermissionsPopupPresenterWidget> popupProvider,
             final Provider<RemoveConfirmationPopupPresenterWidget> 
removeConfirmPopupProvider) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
index 7d3739b..f16bbaa 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
@@ -167,6 +167,9 @@
     public static final String hostHookSubTabPlace = hostMainTabPlace + 
SUB_TAB_PREFIX
             + "host_hooks"; //$NON-NLS-1$
 
+    public static final String hostGlusterSwiftSubTabPlace = hostMainTabPlace 
+ SUB_TAB_PREFIX
+            + "gluster_swift"; //$NON-NLS-1$
+
     public static final String hostPermissionSubTabPlace = hostMainTabPlace + 
SUB_TAB_PREFIX
             + "permissions"; //$NON-NLS-1$
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostEventPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostEventPresenter.java
index f5d054f..5e27e78 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostEventPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostEventPresenter.java
@@ -36,7 +36,7 @@
 
     @TabInfo(container = HostSubTabPanelPresenter.class)
     static TabData getTabData(ClientGinjector ginjector) {
-        return new 
ModelBoundTabData(ginjector.getApplicationConstants().hostEventSubTabLabel(), 6,
+        return new 
ModelBoundTabData(ginjector.getApplicationConstants().hostEventSubTabLabel(), 7,
                 ginjector.getSubTabHostEventModelProvider(), Align.RIGHT);
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGlusterSwiftPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGlusterSwiftPresenter.java
new file mode 100644
index 0000000..43afd65
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGlusterSwiftPresenter.java
@@ -0,0 +1,64 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
+import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
+import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
+import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.HostGlusterSwiftListModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
+import org.ovirt.engine.ui.webadmin.gin.ClientGinjector;
+import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.HostSelectionChangeEvent;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+import com.gwtplatform.mvp.client.TabData;
+import com.gwtplatform.mvp.client.annotations.NameToken;
+import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
+import com.gwtplatform.mvp.client.annotations.ProxyEvent;
+import com.gwtplatform.mvp.client.annotations.TabInfo;
+import com.gwtplatform.mvp.client.proxy.PlaceManager;
+import com.gwtplatform.mvp.client.proxy.PlaceRequest;
+import com.gwtplatform.mvp.client.proxy.RevealContentEvent;
+import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
+
+public class SubTabHostGlusterSwiftPresenter extends 
AbstractSubTabPresenter<VDS, HostListModel, HostGlusterSwiftListModel, 
SubTabHostGlusterSwiftPresenter.ViewDef, 
SubTabHostGlusterSwiftPresenter.ProxyDef> {
+
+    @ProxyCodeSplit
+    @NameToken(ApplicationPlaces.hostGlusterSwiftSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostGlusterSwiftPresenter> {
+    }
+
+    public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDS> {
+    }
+
+    @TabInfo(container = HostSubTabPanelPresenter.class)
+    static TabData getTabData(ClientGinjector ginjector) {
+        return new 
ModelBoundTabData(ginjector.getApplicationConstants().hostGlusterSwiftSubTabLabel(),
 4,
+                ginjector.getSubTabHostGlusterSwiftModelProvider());
+    }
+
+    @Inject
+    public SubTabHostGlusterSwiftPresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
+            PlaceManager placeManager,
+            SearchableDetailModelProvider<GlusterServerService, HostListModel, 
HostGlusterSwiftListModel> modelProvider) {
+        super(eventBus, view, proxy, placeManager, modelProvider);
+    }
+
+    @Override
+    protected void revealInParent() {
+        RevealContentEvent.fire(this, 
HostSubTabPanelPresenter.TYPE_SetTabContent, this);
+    }
+
+    @Override
+    protected PlaceRequest getMainTabRequest() {
+        return new PlaceRequest(ApplicationPlaces.hostMainTabPlace);
+    }
+
+    @ProxyEvent
+    public void onHostSelectionChange(HostSelectionChangeEvent event) {
+        updateMainTabSelection(event.getSelectedItems());
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostPermissionPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostPermissionPresenter.java
index a20d2f1..ead98bd 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostPermissionPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostPermissionPresenter.java
@@ -35,7 +35,7 @@
 
     @TabInfo(container = HostSubTabPanelPresenter.class)
     static TabData getTabData(ClientGinjector ginjector) {
-        return new 
ModelBoundTabData(ginjector.getApplicationConstants().hostPermissionSubTabLabel(),
 4,
+        return new 
ModelBoundTabData(ginjector.getApplicationConstants().hostPermissionSubTabLabel(),
 6,
                 ginjector.getSubTabHostPermissionModelProvider());
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGlusterSwiftView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGlusterSwiftView.java
new file mode 100644
index 0000000..eee8de6
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGlusterSwiftView.java
@@ -0,0 +1,49 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.tab.host;
+
+import javax.inject.Inject;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServiceStatus;
+import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
+import org.ovirt.engine.ui.common.widget.table.column.EnumColumn;
+import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.HostGlusterSwiftListModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGlusterSwiftPresenter;
+import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView;
+
+public class SubTabHostGlusterSwiftView extends AbstractSubTabTableView<VDS, 
GlusterServerService, HostListModel, HostGlusterSwiftListModel>
+        implements SubTabHostGlusterSwiftPresenter.ViewDef {
+
+    @Inject
+    public 
SubTabHostGlusterSwiftView(SearchableDetailModelProvider<GlusterServerService, 
HostListModel, HostGlusterSwiftListModel> modelProvider,
+            ApplicationConstants constants) {
+        super(modelProvider);
+        initTable(constants);
+        initWidget(getTable());
+    }
+
+    void initTable(ApplicationConstants constants) {
+        getTable().enableColumnResizing();
+
+        TextColumnWithTooltip<GlusterServerService> serviceColumn = new 
TextColumnWithTooltip<GlusterServerService>() {
+            @Override
+            public String getValue(GlusterServerService object) {
+                return object.getServiceName();
+            }
+        };
+        getTable().addColumn(serviceColumn, constants.serviceGlusterSwift(), 
"200px"); //$NON-NLS-1$
+
+        TextColumnWithTooltip<GlusterServerService> statusColumn =
+                new EnumColumn<GlusterServerService, GlusterServiceStatus>() {
+            @Override
+                    protected GlusterServiceStatus 
getRawValue(GlusterServerService object) {
+                        return object.getStatus();
+            }
+        };
+        getTable().addColumn(statusColumn, constants.statusGlusterSwift(), 
"200px"); //$NON-NLS-1$
+    }
+
+}


--
To view, visit http://gerrit.ovirt.org/15296
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iacffe5b49e6dcde743fa81d5a3f694de5d8f1421
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Kanagaraj M <kmayi...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to