Gilad Chaplik has uploaded a new change for review.

Change subject: webadmin: AssingQuota button under disks refresh bug
......................................................................

webadmin: AssingQuota button under disks refresh bug

In case a quota mode set to !Disabled (or vice-versa) the
AssingQuota button (in various tabs) availability wasn't refreshed.

The problem caused because we relied on the selected DC tree
item quota mode, which not getting refreshed in current ui infrastructure.
Instead fetched quota mode from disk BE.

A bug was fixed in DB to reference data center even
if the quota for the disk is null (using the storageDomain DC).

To allow new functionality to all tabs, introduced a new interface
and static public utility method to avoid code duplication.

Change-Id: I21a0886cfe82d441ad93fd9b15d72f8a4e63002c
Bug-Url: https://bugzilla.redhat.com/950519
Signed-off-by: Gilad Chaplik <gchap...@redhat.com>
---
M backend/manager/dbscripts/create_views.sql
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/ChangeQuotaModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/IChangeQuotaCommadAvailability.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateDiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
6 files changed, 156 insertions(+), 72 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/13925/1

diff --git a/backend/manager/dbscripts/create_views.sql 
b/backend/manager/dbscripts/create_views.sql
index 94ca169..917b401 100644
--- a/backend/manager/dbscripts/create_views.sql
+++ b/backend/manager/dbscripts/create_views.sql
@@ -80,7 +80,7 @@
 LEFT OUTER JOIN storage_domain_static_view ON 
image_storage_domain_map.storage_domain_id = storage_domain_static_view.id
 LEFT OUTER JOIN snapshots ON images.vm_snapshot_id = snapshots.snapshot_id
 LEFT OUTER JOIN quota ON images.quota_id = quota.id
-LEFT OUTER JOIN storage_pool ON storage_pool.id = quota.storage_pool_id
+LEFT OUTER JOIN storage_pool ON storage_pool.id =  
storage_domain_static_view.storage_pool_id
 WHERE images.image_guid != '00000000-0000-0000-0000-000000000000';
 
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
index 83e91e7..e59a704 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.disks;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import org.ovirt.engine.core.common.action.ChangeQuotaParameters;
 import org.ovirt.engine.core.common.action.RemoveDiskParameters;
@@ -11,10 +12,8 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Quota;
-import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmEntityType;
-import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.SearchParameters;
@@ -26,14 +25,13 @@
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
-import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
-import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
 import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.quota.IChangeQuotaCommadAvailability;
 import org.ovirt.engine.ui.uicommonweb.models.storage.SanStorageModel;
 import org.ovirt.engine.ui.uicommonweb.models.templates.CopyDiskModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.AbstractDiskModel;
@@ -48,7 +46,7 @@
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
 @SuppressWarnings("unused")
-public class DiskListModel extends ListWithDetailsModel implements 
ISupportSystemTreeContext
+public class DiskListModel extends ListWithDetailsModel implements 
IChangeQuotaCommadAvailability
 {
     private UICommand privateNewCommand;
 
@@ -64,6 +62,7 @@
 
     private UICommand privateEditCommand;
 
+    @Override
     public UICommand getEditCommand()
     {
         return privateEditCommand;
@@ -100,6 +99,7 @@
 
     private UICommand privateChangeQuotaCommand;
 
+    @Override
     public UICommand getChangeQuotaCommand()
     {
         return privateChangeQuotaCommand;
@@ -145,6 +145,16 @@
     {
         systemTreeSelectedItem = value;
         OnPropertyChanged(new 
PropertyChangedEventArgs("SystemTreeSelectedItem")); //$NON-NLS-1$
+    }
+
+    @Override
+    public List<Disk> getDisks() {
+        return getItems() != null ? (List<Disk>) getItems() : null;
+    }
+
+    @Override
+    public List<Disk> getSelectedDisks() {
+        return getSelectedItems() != null ? (List<Disk>) getSelectedItems() : 
null;
     }
 
     private ListModel diskVmListModel;
@@ -446,24 +456,8 @@
         getRemoveCommand().setIsExecutionAllowed(disks != null && disks.size() 
> 0 && isRemoveCommandAvailable());
         getMoveCommand().setIsExecutionAllowed(disks != null && disks.size() > 
0 && isMoveCommandAvailable());
         getCopyCommand().setIsExecutionAllowed(disks != null && disks.size() > 
0 && isCopyCommandAvailable());
-        getChangeQuotaCommand().setIsAvailable(false);
-        if (getSystemTreeSelectedItem() != null
-                && getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter
-                &&
-                ((storage_pool) 
getSystemTreeSelectedItem().getEntity()).getQuotaEnforcementType() != 
QuotaEnforcementTypeEnum.DISABLED) {
-            getChangeQuotaCommand().setIsAvailable(true);
-            getChangeQuotaCommand().setIsExecutionAllowed(true);
-            if (disks != null && !disks.isEmpty()) {
-                for (Disk diskItem : disks) {
-                    if (diskItem.getDiskStorageType() != 
DiskStorageType.IMAGE) {
-                        getChangeQuotaCommand().setIsExecutionAllowed(false);
-                        break;
-                    }
-                }
-            } else {
-                getChangeQuotaCommand().setIsExecutionAllowed(false);
-            }
-        }
+
+        ChangeQuotaModel.updateChangeQuotaActionAvailability(this);
     }
 
     private boolean isMoveCommandAvailable() {
@@ -600,4 +594,5 @@
     protected String getListName() {
         return "DiskListModel"; //$NON-NLS-1$
     }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/ChangeQuotaModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/ChangeQuotaModel.java
index 2471b30..4ddecfe 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/ChangeQuotaModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/ChangeQuotaModel.java
@@ -5,8 +5,12 @@
 import java.util.List;
 import java.util.Map;
 
+import org.ovirt.engine.core.common.businessentities.Disk;
+import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.DiskImageBase;
 import org.ovirt.engine.core.common.businessentities.Quota;
+import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 import 
org.ovirt.engine.core.common.queries.GetAllRelevantQuotasForStorageParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
@@ -14,6 +18,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback;
 
@@ -64,4 +69,53 @@
             }
         });
     }
+
+    /**
+     * static util method for enabling change quota command for
+     * disks according to the model's disks quota mode in several
+     * disks list models
+     * @param changeQuotaCommad
+     */
+    public static void 
updateChangeQuotaActionAvailability(IChangeQuotaCommadAvailability 
changeQuotaCommad) {
+        boolean isAvailable = true, isExecutionAllowed = true;
+        if (changeQuotaCommad.getSystemTreeSelectedItem() != null
+                && changeQuotaCommad.getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter) {
+            List<Disk> selectedDisks = changeQuotaCommad.getSelectedDisks();
+            if (selectedDisks != null && !selectedDisks.isEmpty()) {
+                for (Disk diskItem : selectedDisks) {
+                    if (diskItem.getDiskStorageType() != DiskStorageType.IMAGE 
||
+                            !(diskItem instanceof DiskImageBase) ||
+                            ((DiskImageBase) 
diskItem).getQuotaEnforcementType() == QuotaEnforcementTypeEnum.DISABLED) {
+                        isExecutionAllowed = false;
+                        break;
+                    }
+                }
+            } else {
+                isExecutionAllowed = false;
+            }
+        } else {
+            isAvailable = false;
+        }
+        // show the button iff there are disks with quota mode != disabled
+        if (isAvailable && !isExecutionAllowed) {
+            boolean hasDisksWithQuotaMode = false;
+            List<Disk> allDisks = changeQuotaCommad.getDisks();
+            if (allDisks != null && !allDisks.isEmpty()) {
+                for (Disk diskItem : allDisks) {
+                    if (diskItem.getDiskStorageType() == DiskStorageType.IMAGE 
&&
+                            (diskItem instanceof DiskImageBase) &&
+                            ((DiskImageBase) 
diskItem).getQuotaEnforcementType() != QuotaEnforcementTypeEnum.DISABLED) {
+                        hasDisksWithQuotaMode = true;
+                        break;
+                    }
+                }
+            }
+            isAvailable = hasDisksWithQuotaMode;
+        }
+
+        changeQuotaCommad.getChangeQuotaCommand().setIsAvailable(isAvailable);
+        if (isAvailable) {
+            
changeQuotaCommad.getChangeQuotaCommand().setIsExecutionAllowed(isExecutionAllowed);
+        }
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/IChangeQuotaCommadAvailability.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/IChangeQuotaCommadAvailability.java
new file mode 100644
index 0000000..099ffc3
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/IChangeQuotaCommadAvailability.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.ui.uicommonweb.models.quota;
+
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.Disk;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
+
+public interface IChangeQuotaCommadAvailability extends 
ISupportSystemTreeContext {
+    public UICommand getChangeQuotaCommand();
+
+    public List<Disk> getDisks();
+
+    public List<Disk> getSelectedDisks();
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateDiskListModel.java
index 13498f8..914120f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateDiskListModel.java
@@ -1,19 +1,17 @@
 package org.ovirt.engine.ui.uicommonweb.models.templates;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import org.ovirt.engine.core.common.action.ChangeQuotaParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.Disk;
-import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Quota;
-import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
-import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
-import org.ovirt.engine.core.common.businessentities.storage_pool;
+import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.queries.GetVmTemplatesDisksParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.StringHelper;
@@ -27,16 +25,17 @@
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
-import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
+import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.quota.IChangeQuotaCommadAvailability;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
 @SuppressWarnings("unused")
-public class TemplateDiskListModel extends SearchableListModel
+public class TemplateDiskListModel extends SearchableListModel implements 
IChangeQuotaCommadAvailability
 {
     private UICommand privateCopyCommand;
 
@@ -62,6 +61,7 @@
 
     private UICommand privateChangeQuotaCommand;
 
+    @Override
     public UICommand getChangeQuotaCommand()
     {
         return privateChangeQuotaCommand;
@@ -210,25 +210,7 @@
         getCopyCommand().setIsExecutionAllowed(getSelectedItems() != null && 
getSelectedItems().size() > 0
                 && isCopyCommandAvailable());
 
-        if (systemTreeContext != null
-                && systemTreeContext.getSystemTreeSelectedItem() != null
-                && systemTreeContext.getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter
-                &&
-                ((storage_pool) 
systemTreeContext.getSystemTreeSelectedItem().getEntity()).getQuotaEnforcementType()
 != QuotaEnforcementTypeEnum.DISABLED) {
-            ArrayList<Disk> disks = getSelectedItems() != null ? 
(ArrayList<Disk>) getSelectedItems() : null;
-            getChangeQuotaCommand().setIsAvailable(true);
-            getChangeQuotaCommand().setIsExecutionAllowed(true);
-            if (disks != null && !disks.isEmpty()) {
-                for (Disk diskItem : disks) {
-                    if (diskItem.getDiskStorageType() != 
DiskStorageType.IMAGE) {
-                        getChangeQuotaCommand().setIsExecutionAllowed(false);
-                        break;
-                    }
-                }
-            } else {
-                getChangeQuotaCommand().setIsExecutionAllowed(false);
-            }
-        }
+        ChangeQuotaModel.updateChangeQuotaActionAvailability(this);
     }
 
     private boolean isCopyCommandAvailable() {
@@ -352,4 +334,31 @@
                 },
                 this);
     }
+
+    @Override
+    public SystemTreeItemModel getSystemTreeSelectedItem() {
+        if (getSystemTreeContext() == null) {
+            return null;
+        }
+        return getSystemTreeContext().getSystemTreeSelectedItem();
+    }
+
+    @Override
+    public void setSystemTreeSelectedItem(SystemTreeItemModel value) {
+        if (getSystemTreeContext() == null) {
+            return;
+        }
+        getSystemTreeContext().setSystemTreeSelectedItem(value);
+    }
+
+    @Override
+    public List<Disk> getDisks() {
+        return getItems() != null ? (List<Disk>) getItems() : null;
+    }
+
+    @Override
+    public List<Disk> getSelectedDisks() {
+        return getSelectedItems() != null ? (List<Disk>) getSelectedItems() : 
null;
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
index a17c184..09f3f22 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import org.ovirt.engine.core.common.action.AttachDettachVmDiskParameters;
 import org.ovirt.engine.core.common.action.ChangeQuotaParameters;
@@ -14,7 +15,6 @@
 import org.ovirt.engine.core.common.businessentities.DiskInterface;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Quota;
-import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
@@ -31,16 +31,17 @@
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
-import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
+import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.quota.IChangeQuotaCommadAvailability;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
 @SuppressWarnings("unused")
-public class VmDiskListModel extends VmDiskListModelBase
+public class VmDiskListModel extends VmDiskListModelBase implements 
IChangeQuotaCommadAvailability
 {
 
     private UICommand privateNewCommand;
@@ -57,6 +58,7 @@
 
     private UICommand privateEditCommand;
 
+    @Override
     public UICommand getEditCommand()
     {
         return privateEditCommand;
@@ -115,12 +117,13 @@
 
     private UICommand privateChangeQuotaCommand;
 
+    @Override
     public UICommand getChangeQuotaCommand()
     {
         return privateChangeQuotaCommand;
     }
 
-    private void setChangeQuotaCommand(UICommand value)
+    public void setChangeQuotaCommand(UICommand value)
     {
         privateChangeQuotaCommand = value;
     }
@@ -536,25 +539,7 @@
 
         
getUnPlugCommand().setIsExecutionAllowed(isPlugCommandAvailable(false));
 
-        if (systemTreeContext != null
-                && systemTreeContext.getSystemTreeSelectedItem() != null
-                && systemTreeContext.getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter
-                &&
-                ((storage_pool) 
systemTreeContext.getSystemTreeSelectedItem().getEntity()).getQuotaEnforcementType()
 != QuotaEnforcementTypeEnum.DISABLED) {
-            ArrayList<Disk> disks = getSelectedItems() != null ? 
(ArrayList<Disk>) getSelectedItems() : null;
-            getChangeQuotaCommand().setIsAvailable(true);
-            getChangeQuotaCommand().setIsExecutionAllowed(true);
-            if (disks != null && !disks.isEmpty()) {
-                for (Disk diskItem : disks) {
-                    if (diskItem.getDiskStorageType() != 
DiskStorageType.IMAGE) {
-                        getChangeQuotaCommand().setIsExecutionAllowed(false);
-                        break;
-                    }
-                }
-            } else {
-                getChangeQuotaCommand().setIsExecutionAllowed(false);
-            }
-        }
+        ChangeQuotaModel.updateChangeQuotaActionAvailability(this);
     }
 
     public boolean isVmDown() {
@@ -736,4 +721,30 @@
     protected String getListName() {
         return "VmDiskListModel"; //$NON-NLS-1$
     }
+
+    @Override
+    public SystemTreeItemModel getSystemTreeSelectedItem() {
+        if (getSystemTreeContext() == null) {
+            return null;
+        }
+        return getSystemTreeContext().getSystemTreeSelectedItem();
+    }
+
+    @Override
+    public void setSystemTreeSelectedItem(SystemTreeItemModel value) {
+        if (getSystemTreeContext() == null) {
+            return;
+        }
+        getSystemTreeContext().setSystemTreeSelectedItem(value);
+    }
+
+    @Override
+    public List<Disk> getSelectedDisks() {
+        return getSelectedItems() != null ? (List<Disk>) getSelectedItems() : 
null;
+    }
+
+    @Override
+    public List<Disk> getDisks() {
+        return getItems() != null ? (List<Disk>) getItems() : null;
+    }
 }


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

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

Reply via email to