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
