Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Add host network QoS subtab
......................................................................

webadmin: Add host network QoS subtab

Added this QoS subtab to join the existing network, CPU and storage
subtabs.

Change-Id: I6effa72b6a3bc336921a69803600f5a5c7367aff
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/help/HelpTag.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/DataCenterHostNetworkQosListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.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/ClientGinjectorExtension.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/DataCenterModule.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/datacenter/DataCenterQosSubTabPanelPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterCpuQosPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterHostNetworkQosPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterHostNetworkQosView.java
13 files changed, 301 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/34129/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/help/HelpTag.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/help/HelpTag.java
index 8ecca8e..4c4e08b 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/help/HelpTag.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/help/HelpTag.java
@@ -510,6 +510,8 @@
 
     cpu_qos("storage_qos", HelpTagType.UNKNOWN), //$NON-NLS-1$
 
+    host_network_qos("host_network_qos", HelpTagType.UNKNOWN), //$NON-NLS-1$
+
     disk_profiles("disk profiles", HelpTagType.UNKNOWN), //$NON-NLS-1$
 
     new_disk_profile("new_disk_profile", HelpTagType.WEBADMIN, "Storage Tab > 
Disk Profiles sub-tab -> New Disk Profile dialog"), //$NON-NLS-1$ //$NON-NLS-2$
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
index c5fd698..56f778f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
@@ -51,6 +51,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.datacenters.qos.DataCenterCpuQosListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterStorageQosListModel;
 import org.ovirt.engine.ui.uicommonweb.models.macpool.NewSharedMacPoolModel;
 import org.ovirt.engine.ui.uicommonweb.models.macpool.SharedMacPoolModel;
@@ -253,6 +254,7 @@
         quotaListModel.setIsAvailable(false);
         list.add(quotaListModel);
         list.add(new DataCenterNetworkQoSListModel());
+        list.add(new DataCenterHostNetworkQosListModel());
         list.add(new DataCenterStorageQosListModel());
         list.add(new DataCenterCpuQosListModel());
         list.add(new PermissionListModel());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/DataCenterHostNetworkQosListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/DataCenterHostNetworkQosListModel.java
new file mode 100644
index 0000000..b08e821
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/qos/DataCenterHostNetworkQosListModel.java
@@ -0,0 +1,50 @@
+package org.ovirt.engine.ui.uicommonweb.models.datacenters.qos;
+
+import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos;
+import org.ovirt.engine.core.common.businessentities.qos.QosType;
+import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class DataCenterHostNetworkQosListModel extends 
DataCenterQosListModel<HostNetworkQos, HostNetworkQosParametersModel> {
+
+    @Override
+    protected String getQosTitle() {
+        return 
ConstantsManager.getInstance().getConstants().hostNetworkQosTitle();
+    }
+
+    @Override
+    protected String getQosHashName() {
+        return "host_network_qos"; //$NON-NLS-1$
+    }
+
+    @Override
+    protected HelpTag getQosHelpTag() {
+        return HelpTag.host_network_qos;
+    }
+
+    @Override
+    protected QosType getQosType() {
+        return QosType.HOSTNETWORK;
+    }
+
+    @Override
+    protected QosModel<HostNetworkQos, HostNetworkQosParametersModel> 
getNewQosModel() {
+        return new NewHostNetworkQosModel(this, getEntity());
+    }
+
+    @Override
+    protected QosModel<HostNetworkQos, HostNetworkQosParametersModel> 
getEditQosModel(HostNetworkQos qoS) {
+        return new EditHostNetworkQosModel((HostNetworkQos) getSelectedItem(), 
this, getEntity());
+    }
+
+    @Override
+    protected RemoveQosModel<HostNetworkQos> getRemoveQosModel() {
+        return new RemoveHostNetworkQos(this);
+    }
+
+    @Override
+    protected String getListName() {
+        return "DataCenterHostNetworkQosModel"; //$NON-NLS-1$
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 84e359b..b0c5e48 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -269,6 +269,9 @@
     @DefaultStringValue("CPU QoS")
     String cpuQosTitle();
 
+    @DefaultStringValue("Host Network QoS")
+    String hostNetworkQosTitle();
+
     @DefaultStringValue("Volumes")
     String volumesTitle();
 
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 d5e6df6..0f1c8ec 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
@@ -181,6 +181,9 @@
     @DefaultStringValue("Network")
     String dataCenterNetworkQoSSubTabLabel();
 
+    @DefaultStringValue("Host Network")
+    String dataCenterHostNetworkQosSubTabLabel();
+
     @DefaultStringValue("Storage")
     String dataCenterStorageQosSubTabLabel();
 
@@ -3404,6 +3407,15 @@
     @DefaultStringValue("Committed Rate [Mbps]")
     String hostNetworkQosPopupOutAverageRealtime();
 
+    @DefaultStringValue("Out Share")
+    String hostNetworkQosTabOutAverageLinkshare();
+
+    @DefaultStringValue("Out Limit")
+    String hostNetworkQosTabOutAverageUpperlimit();
+
+    @DefaultStringValue("Out Committed")
+    String hostNetworkQosTabOutAverageRealtime();
+
     // MAC pool widget
     @DefaultStringValue("From")
     String macPoolWidgetLeftBound();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java
index fbb2bd8..87256ba 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java
@@ -26,6 +26,7 @@
 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.ExternalSubnet;
+import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
 import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
@@ -62,6 +63,7 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterQuotaListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterStorageListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterCpuQosListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterStorageQosListModel;
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskGeneralModel;
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskListModel;
@@ -221,6 +223,8 @@
 
     SearchableDetailModelProvider<CpuQos, DataCenterListModel, 
DataCenterCpuQosListModel> getSubTabDataCenterCpuQosModelProvider();
 
+    SearchableDetailModelProvider<HostNetworkQos, DataCenterListModel, 
DataCenterHostNetworkQosListModel> 
getSubTabDataCenterHostNetworkQosModelProvider();
+
     SearchableDetailModelProvider<Permissions, DataCenterListModel, 
PermissionListModel> getSubTabDataCenterPermissionModelProvider();
 
     SearchableDetailModelProvider<AuditLog, DataCenterListModel, 
DataCenterEventListModel> getSubTabDataCenterEventModelProvider();
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 6813e37..9d7c649 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
@@ -148,6 +148,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterClusterPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterCpuQosPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterEventPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterHostNetworkQosPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterIscsiBondPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterNetworkPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterNetworkQoSPresenter;
@@ -390,6 +391,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterClusterView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterCpuQosView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterEventView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterHostNetworkQosView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterIscsiBondView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterNetworkQoSView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterNetworkView;
@@ -649,6 +651,10 @@
                 SubTabDataCenterCpuQosPresenter.ViewDef.class,
                 SubTabDataCenterCpuQosView.class,
                 SubTabDataCenterCpuQosPresenter.ProxyDef.class);
+        bindPresenter(SubTabDataCenterHostNetworkQosPresenter.class,
+                SubTabDataCenterHostNetworkQosPresenter.ViewDef.class,
+                SubTabDataCenterHostNetworkQosView.class,
+                SubTabDataCenterHostNetworkQosPresenter.ProxyDef.class);
         bindPresenter(SubTabDataCenterClusterPresenter.class,
                 SubTabDataCenterClusterPresenter.ViewDef.class,
                 SubTabDataCenterClusterView.class,
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/DataCenterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/DataCenterModule.java
index 23af756..f51d723 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/DataCenterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/DataCenterModule.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
 import org.ovirt.engine.core.common.businessentities.qos.CpuQos;
@@ -34,9 +35,11 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterQuotaListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterStorageListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterCpuQosListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterStorageQosListModel;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.ReportPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.CpuQosPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.HostNetworkQosPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.NetworkQoSPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.StorageQosPopupPresenterWidget;
@@ -274,6 +277,40 @@
 
     @Provides
     @Singleton
+    public SearchableDetailModelProvider<HostNetworkQos, DataCenterListModel, 
DataCenterHostNetworkQosListModel> 
getDataCenterHostNetworkQosListProvider(EventBus eventBus,
+            Provider<DefaultConfirmationPopupPresenterWidget> 
defaultConfirmPopupProvider,
+            final Provider<HostNetworkQosPopupPresenterWidget> 
hostNetworkQosPopupProvider,
+            final Provider<RemoveConfirmationPopupPresenterWidget> 
removeConfirmPopupProvider) {
+        return new SearchableDetailTabModelProvider<HostNetworkQos, 
DataCenterListModel, DataCenterHostNetworkQosListModel>(
+                eventBus, defaultConfirmPopupProvider,
+                DataCenterListModel.class,
+                DataCenterHostNetworkQosListModel.class) {
+            @Override
+            public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> 
getModelPopup(DataCenterHostNetworkQosListModel source,
+                    UICommand lastExecutedCommand,
+                    Model windowModel) {
+                if (lastExecutedCommand.equals(getModel().getNewCommand())
+                        || 
lastExecutedCommand.equals(getModel().getEditCommand())) {
+                    return hostNetworkQosPopupProvider.get();
+                } else {
+                    return super.getModelPopup(source, lastExecutedCommand, 
windowModel);
+                }
+            }
+
+            @Override
+            public AbstractModelBoundPopupPresenterWidget<? extends 
ConfirmationModel, ?> getConfirmModelPopup(DataCenterHostNetworkQosListModel 
source,
+                    UICommand lastExecutedCommand) {
+                if (lastExecutedCommand.equals(getModel().getRemoveCommand())) 
{
+                    return removeConfirmPopupProvider.get();
+                } else {
+                    return super.getConfirmModelPopup(source, 
lastExecutedCommand);
+                }
+            }
+        };
+    }
+
+    @Provides
+    @Singleton
     public SearchableDetailModelProvider<StorageQos, DataCenterListModel, 
DataCenterStorageQosListModel> getDataCenterStorageQosListProvider(EventBus 
eventBus,
             Provider<DefaultConfirmationPopupPresenterWidget> 
defaultConfirmPopupProvider,
             final Provider<StorageQosPopupPresenterWidget> 
storageQosPopupProvider,
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 937f0d5..481e007 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
@@ -75,6 +75,9 @@
     public static final String dataCenterCpuQosSubTabPlace = 
dataCenterMainTabPlace + SUB_TAB_PREFIX
             + "cpu_qos"; //$NON-NLS-1$
 
+    public static final String dataCenterHostNetworkQosSubTabPlace = 
dataCenterMainTabPlace + SUB_TAB_PREFIX
+            + "host_network_qos"; //$NON-NLS-1$
+
     public static final String dataCenterPermissionSubTabPlace = 
dataCenterMainTabPlace + 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/datacenter/DataCenterQosSubTabPanelPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
index 4fb2b86..8ed07f6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
@@ -67,7 +67,8 @@
         super.setInSlot(slot, content);
         if (content instanceof SubTabDataCenterStorageQosPresenter
                 || content instanceof SubTabDataCenterNetworkQoSPresenter
-                || content instanceof SubTabDataCenterCpuQosPresenter) {
+                || content instanceof SubTabDataCenterCpuQosPresenter
+                || content instanceof SubTabDataCenterHostNetworkQosPresenter) 
{
             lastPresenter = (Presenter<?, ?>) content;
         }
         TabContentProxy<?> proxy = (TabContentProxy<?>) 
lastPresenter.getProxy();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterCpuQosPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterCpuQosPresenter.java
index 7f1302f..323f25c 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterCpuQosPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterCpuQosPresenter.java
@@ -38,7 +38,7 @@
     @TabInfo(container = DataCenterQosSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
             SearchableDetailModelProvider<CpuQos, DataCenterListModel, 
DataCenterCpuQosListModel> modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.dataCenterCpuQosSubTabLabel(), 2, 
modelProvider);
+        return new 
ModelBoundTabData(applicationConstants.dataCenterCpuQosSubTabLabel(), 3, 
modelProvider);
     }
 
     @Inject
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterHostNetworkQosPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterHostNetworkQosPresenter.java
new file mode 100644
index 0000000..0c5ec51
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterHostNetworkQosPresenter.java
@@ -0,0 +1,64 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter;
+
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos;
+import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
+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.datacenters.DataCenterListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.DataCenterSelectionChangeEvent;
+
+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.TabContentProxyPlace;
+
+public class SubTabDataCenterHostNetworkQosPresenter extends 
AbstractSubTabPresenter<StoragePool, DataCenterListModel,
+        DataCenterHostNetworkQosListModel, 
SubTabDataCenterHostNetworkQosPresenter.ViewDef,
+        SubTabDataCenterHostNetworkQosPresenter.ProxyDef> {
+
+    @ProxyCodeSplit
+    @NameToken(ApplicationPlaces.dataCenterHostNetworkQosSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<SubTabDataCenterHostNetworkQosPresenter> {
+    }
+
+    public interface ViewDef extends 
AbstractSubTabPresenter.ViewDef<StoragePool> {
+    }
+
+    @TabInfo(container = DataCenterQosSubTabPanelPresenter.class)
+    static TabData getTabData(ApplicationConstants applicationConstants,
+            SearchableDetailModelProvider<HostNetworkQos, DataCenterListModel, 
DataCenterHostNetworkQosListModel> modelProvider) {
+        return new 
ModelBoundTabData(applicationConstants.dataCenterHostNetworkQosSubTabLabel(), 
2, modelProvider);
+    }
+
+    @Inject
+    public SubTabDataCenterHostNetworkQosPresenter(EventBus eventBus,
+            ViewDef view,
+            ProxyDef proxy,
+            PlaceManager placeManager,
+            SearchableDetailModelProvider<HostNetworkQos, DataCenterListModel, 
DataCenterHostNetworkQosListModel> modelProvider) {
+        super(eventBus, view, proxy, placeManager, modelProvider,
+                DataCenterQosSubTabPanelPresenter.TYPE_SetTabContent);
+    }
+
+    @Override
+    protected PlaceRequest getMainTabRequest() {
+        return 
PlaceRequestFactory.get(ApplicationPlaces.dataCenterMainTabPlace);
+    }
+
+    @ProxyEvent
+    public void onDataCenterSelectionChange(DataCenterSelectionChangeEvent 
event) {
+        updateMainTabSelection(event.getSelectedItems());
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterHostNetworkQosView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterHostNetworkQosView.java
new file mode 100644
index 0000000..79878b0
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterHostNetworkQosView.java
@@ -0,0 +1,115 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter;
+
+import javax.inject.Inject;
+
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos;
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
+import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterHostNetworkQosPresenter;
+import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView;
+import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
+
+import com.google.gwt.core.client.GWT;
+
+public class SubTabDataCenterHostNetworkQosView extends 
AbstractSubTabTableView<StoragePool,
+        HostNetworkQos, DataCenterListModel, DataCenterHostNetworkQosListModel>
+        implements SubTabDataCenterHostNetworkQosPresenter.ViewDef {
+
+    interface ViewIdHandler extends 
ElementIdHandler<SubTabDataCenterHostNetworkQosView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    @Inject
+    public 
SubTabDataCenterHostNetworkQosView(SearchableDetailModelProvider<HostNetworkQos,
+            DataCenterListModel, DataCenterHostNetworkQosListModel> 
modelProvider,
+            ApplicationConstants constants) {
+        super(modelProvider);
+        initTable(constants);
+        initWidget(getTable());
+    }
+
+    @Override
+    protected void generateIds() {
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+    }
+
+    void initTable(final ApplicationConstants constants) {
+        getTable().enableColumnResizing();
+
+        TextColumnWithTooltip<HostNetworkQos> nameColumn = new 
TextColumnWithTooltip<HostNetworkQos>() {
+            @Override
+            public String getValue(HostNetworkQos object) {
+                return object.getName() == null ? "" : object.getName(); 
//$NON-NLS-1$
+            }
+        };
+        nameColumn.makeSortable();
+        getTable().addColumn(nameColumn, constants.storageQosName(), "200px"); 
//$NON-NLS-1$
+
+        TextColumnWithTooltip<HostNetworkQos> descColumn = new 
TextColumnWithTooltip<HostNetworkQos>() {
+            @Override
+            public String getValue(HostNetworkQos object) {
+                return object.getDescription() == null ? "" : 
object.getDescription(); //$NON-NLS-1$
+            }
+        };
+        descColumn.makeSortable();
+        getTable().addColumn(descColumn, constants.storageQosDescription(), 
"150px"); //$NON-NLS-1$
+
+        TextColumnWithTooltip<HostNetworkQos> outAverageLinkshareColumn = new 
TextColumnWithTooltip<HostNetworkQos>() {
+            @Override
+            public String getValue(HostNetworkQos object) {
+                return object.getOutAverageLinkshare() == null ? 
constants.unlimitedQos()
+                        : object.getOutAverageLinkshare().toString();
+            }
+        };
+        outAverageLinkshareColumn.makeSortable();
+        getTable().addColumn(outAverageLinkshareColumn, 
constants.hostNetworkQosTabOutAverageLinkshare(), "105px"); //$NON-NLS-1$
+
+        TextColumnWithTooltip<HostNetworkQos> outAverageUpperlimitColumn = new 
TextColumnWithTooltip<HostNetworkQos>() {
+            @Override
+            public String getValue(HostNetworkQos object) {
+                return object.getOutAverageUpperlimit() == null ? 
constants.unlimitedQos()
+                        : object.getOutAverageUpperlimit().toString();
+            }
+        };
+        outAverageUpperlimitColumn.makeSortable();
+        getTable().addColumn(outAverageUpperlimitColumn, 
constants.hostNetworkQosTabOutAverageUpperlimit(), "105px"); //$NON-NLS-1$
+
+        TextColumnWithTooltip<HostNetworkQos> outAverageRealtimeColumn = new 
TextColumnWithTooltip<HostNetworkQos>() {
+            @Override
+            public String getValue(HostNetworkQos object) {
+                return object.getOutAverageRealtime() == null ? 
constants.unlimitedQos()
+                        : object.getOutAverageRealtime().toString();
+            }
+        };
+        outAverageRealtimeColumn.makeSortable();
+        getTable().addColumn(outAverageRealtimeColumn, 
constants.hostNetworkQosTabOutAverageRealtime(), "105px"); //$NON-NLS-1$
+
+        getTable().addActionButton(new 
WebAdminButtonDefinition<HostNetworkQos>(constants.newStorageQos()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getDetailModel().getNewCommand();
+            }
+        });
+
+        getTable().addActionButton(new 
WebAdminButtonDefinition<HostNetworkQos>(constants.editStorageQos()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getDetailModel().getEditCommand();
+            }
+        });
+
+        getTable().addActionButton(new 
WebAdminButtonDefinition<HostNetworkQos>(constants.removeStorageQos()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getDetailModel().getRemoveCommand();
+            }
+        });
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6effa72b6a3bc336921a69803600f5a5c7367aff
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to