Kobi Ianko has uploaded a new change for review.

Change subject: webadmin: Adding Quota column to the Disk tab
......................................................................

webadmin: Adding Quota column to the Disk tab

Adding a new column to the Disk tab, Quota.
the new Quota column will be visible only in case
the user point to a DC in the tree view,
and that DC is not marked as Quota disabled.
The possible value for this column is:
Empty(null) - no Quota was selected for this Disk.
String value - the name of the Quota selected for this Disk.

Change-Id: I2332da722396a16aca9545b9ef0532ebc84d8d5e
Bug-Url: https://bugzilla.redhat.com/949863
Signed-off-by: Kobi Ianko <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.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/section/main/presenter/tab/MainTabDiskPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
6 files changed, 68 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/25068/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
index 6d35bbd..cca055a 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
@@ -50,6 +50,19 @@
         }
     };
 
+    public static final TextColumnWithTooltip<Disk> qoutaColumn = new 
TextColumnWithTooltip<Disk>() {
+        @Override
+        public String getValue(Disk object) {
+
+            String value = null;
+            if (object.getDiskStorageType() == DiskStorageType.IMAGE) {
+                DiskImage diskImage = (DiskImage) object;
+                value = diskImage.getQuotaName();
+            }
+            return value;
+        }
+    };
+
     public static final ImageResourceColumn<Disk> bootableDiskColumn = new 
ImageResourceColumn<Disk>() {
         @Override
         public ImageResource getValue(Disk object) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java
index df4a370..184ec20 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SystemTreeModel.java
@@ -447,6 +447,7 @@
             
storagesItem.setTitle(ConstantsManager.getInstance().getConstants().storageTitle());
             storagesItem.setEntity(getDataCenters().get(count));
             dataCenterItem.addChild(storagesItem);
+            treeItemById.put(getDataCenters().get(count).getId(), 
storagesItem);
 
             if (storages != null && storages.size() > 0)
             {
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 815d1da..181482a 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
@@ -39,6 +39,7 @@
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
+import org.ovirt.engine.ui.uicommonweb.models.CommonModel;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
@@ -769,6 +770,12 @@
                 },
                 this);
         } else {
+            // Update the Quota at the corresponding DC object at the system 
tree.
+            // The DC Quota value from the tree is used at MainTabDiskView.
+            SystemTreeItemModel itemModel = 
CommonModel.getInstance().getSystemTree().getItemById(dataCenter.getId());
+            StoragePool storagePool = (StoragePool) itemModel.getEntity();
+            
storagePool.setQuotaEnforcementType(dataCenter.getQuotaEnforcementType());
+
             // Otherwise use async action in order to close dialog immediately.
             
Frontend.getInstance().runMultipleAction(VdcActionType.UpdateStoragePool,
                 new ArrayList<VdcActionParametersBase>(Arrays.asList(
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 8dfc5bc..2f84c4f 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
@@ -2681,6 +2681,9 @@
     @DefaultStringValue("ID")
     String idDisk();
 
+    @DefaultStringValue("Qouta")
+    String qoutaDisk();
+
     @DefaultStringValue("Volume Format")
     String volumeFormatDisk();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java
index 6fc4ea9..3cc4b9f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabDiskPresenter.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
+import org.ovirt.engine.ui.uicommonweb.models.CommonModel;
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskListModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.IEventListener;
@@ -13,6 +14,7 @@
 import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractMainTabWithDetailsPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.MainTabPanelPresenter;
+import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabDiskView;
 
 import com.google.gwt.event.shared.EventBus;
 import com.google.inject.Inject;
@@ -42,6 +44,7 @@
     public interface ViewDef extends 
AbstractMainTabWithDetailsPresenter.ViewDef<Disk> {
 
         IEventListener getDiskTypeChangedEventListener();
+        IEventListener systemTreeChangedEventListener();
 
     }
 
@@ -74,6 +77,13 @@
             
entityChangedEvent.addListener(getView().getDiskTypeChangedEventListener());
         }
 
+        Event systemTreeSelectedItemChangedEvent =
+                
CommonModel.getInstance().getSystemTree().getSelectedItemChangedEvent();
+        if 
(!systemTreeSelectedItemChangedEvent.getListeners().contains(getView().systemTreeChangedEventListener()))
 {
+            
systemTreeSelectedItemChangedEvent.addListener(getView().systemTreeChangedEventListener());
+        }
+
         super.onReveal();
+        ((MainTabDiskView) getView()).handleQuotaColumnVisibility();
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
index f117a455..3f4ec5e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
@@ -2,6 +2,8 @@
 
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
+import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.CommonModelManager;
 import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider;
@@ -11,6 +13,8 @@
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.CommonModel;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
+import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
 import org.ovirt.engine.ui.uicommonweb.models.disks.DiskListModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -76,6 +80,33 @@
     @Override
     public IEventListener getDiskTypeChangedEventListener() {
         return diskTypeChangedEventListener;
+    }
+
+    final IEventListener systemTreeChangedEventListener = new IEventListener() 
{
+        @Override
+        public void eventRaised(Event ev, Object sender, EventArgs args) {
+            handleQuotaColumnVisibility();
+        }
+    };
+
+    @Override
+    public IEventListener systemTreeChangedEventListener() {
+        return systemTreeChangedEventListener;
+    }
+
+    private boolean isQuotaVisible;
+    public void handleQuotaColumnVisibility() {
+        isQuotaVisible = false;
+        SystemTreeItemModel treeItem =
+                (SystemTreeItemModel) 
CommonModel.getInstance().getSystemTree().getSelectedItem();
+        if (treeItem != null
+                && SystemTreeItemType.DataCenter.equals(treeItem.getType())) {
+            StoragePool storagePool = (StoragePool) treeItem.getEntity();
+            if 
(!QuotaEnforcementTypeEnum.DISABLED.equals(storagePool.getQuotaEnforcementType()))
 {
+                isQuotaVisible = true;
+            }
+        }
+        onDiskViewTypeChanged();
     }
 
     void onDiskViewTypeChanged() {
@@ -150,6 +181,9 @@
                 "100px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
+                DisksViewColumns.qoutaColumn, constants.qoutaDisk(), (all || 
images || luns) && isQuotaVisible, "120px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
                 DisksViewColumns.descriptionColumn, 
constants.descriptionDisk(), all || images || luns,
                 "90px"); //$NON-NLS-1$
     }


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

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

Reply via email to