Asaf Shakarchi has uploaded a new change for review.

Change subject: webadmin: VM subtab disks corrections (#846551)
......................................................................

webadmin: VM subtab disks corrections (#846551)

https://bugzilla.redhat.com/846551

- Fixed auto collapse of snapshots when tree gets refreshed.
- VMsTree supported DiskImage only, extended support for LunDisks as
  well.

Change-Id: I059bf7a8b18232640eaa7f2f5c49ee1cbc6d5486
Signed-off-by: Asaf Shakarchi <a...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/storage/VMsTree.java
1 file changed, 69 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/97/7197/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/storage/VMsTree.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/storage/VMsTree.java
index 9023c84..f5fe869 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/storage/VMsTree.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/storage/VMsTree.java
@@ -5,12 +5,15 @@
 
 import org.ovirt.engine.core.common.businessentities.BusinessEntity;
 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.LunDisk;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
 import org.ovirt.engine.ui.common.widget.label.DiskSizeLabel;
 import org.ovirt.engine.ui.common.widget.label.TextBoxLabel;
+import 
org.ovirt.engine.ui.common.widget.renderer.DiskSizeRenderer.DiskSizeUnit;
 import org.ovirt.engine.ui.common.widget.tree.AbstractSubTabTree;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -24,7 +27,7 @@
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.gwt.user.client.ui.VerticalPanel;
 
-public class VMsTree<M extends SearchableListModel> extends 
AbstractSubTabTree<M, VM, DiskImage> {
+public class VMsTree<M extends SearchableListModel> extends 
AbstractSubTabTree<M, VM, Disk> {
 
     ApplicationResources resources;
     ApplicationConstants constants;
@@ -55,27 +58,36 @@
     }
 
     @Override
-    protected TreeItem getNodeItem(DiskImage disk) {
-        return getDiskOrSnapshotNode(new 
ArrayList<DiskImage>(Arrays.asList(disk)), true);
+    protected TreeItem getNodeItem(Disk disk) {
+        //return getDiskOrSnapshotNode(new 
ArrayList<Disk>(Arrays.asList(disk)), true);
+        return getDiskNode(new ArrayList<Disk>(Arrays.asList(disk)));
     }
 
     @Override
-    protected TreeItem getLeafItem(DiskImage disk) {
-        return getDiskOrSnapshotNode(disk.getSnapshots(), false);
-    }
-
-    @Override
-    protected ArrayList<DiskImage> getNodeObjects(VM vm) {
-        ArrayList<DiskImage> diskImages = new ArrayList<DiskImage>();
-        for (Disk disk : vm.getDiskMap().values()) {
-            diskImages.add((DiskImage) disk);
+    protected TreeItem getLeafItem(Disk disk) {
+        if (disk.getDiskStorageType() == DiskStorageType.IMAGE) {
+            return getSnapshotNode(((DiskImage)disk).getSnapshots());
+        } else {
+            return null;
         }
-        return diskImages;
     }
 
     @Override
-    protected boolean getIsNodeEnabled(DiskImage disk) {
-        return disk.getstorage_ids().get(0).equals(((BusinessEntity) 
listModel.getEntity()).getId());
+    protected ArrayList<Disk> getNodeObjects(VM vm) {
+        ArrayList<Disk> disks = new ArrayList<Disk>();
+        for (Disk disk : vm.getDiskMap().values()) {
+            disks.add((Disk) disk);
+        }
+        return disks;
+    }
+
+    @Override
+    protected boolean getIsNodeEnabled(Disk disk) {
+        if (disk.getDiskStorageType() == DiskStorageType.IMAGE) {
+            return 
((DiskImage)disk).getstorage_ids().get(0).equals(((BusinessEntity) 
listModel.getEntity()).getId());
+        } else {
+            return true;
+        }
     }
 
     @Override
@@ -83,20 +95,15 @@
         return constants.differentStorageDomainWarning();
     }
 
-    private TreeItem getDiskOrSnapshotNode(ArrayList<DiskImage> disks, final 
boolean isDisk) {
-        if (disks.isEmpty()) {
-            return null;
-        }
-
+    private TreeItem getSnapshotNode(ArrayList<DiskImage> disks) {
         VerticalPanel vPanel = new VerticalPanel();
         vPanel.setWidth("100%"); //$NON-NLS-1$
 
         for (DiskImage disk : disks) {
             HorizontalPanel panel = new HorizontalPanel();
 
-            ImageResource image =
-                    isDisk ? resources.diskImage() : resources.snapshotImage();
-            String name = isDisk ? disk.getDiskAlias() : disk.getdescription();
+            ImageResource image = resources.snapshotImage();
+            String name = disk.getdescription();
 
             addItemToPanel(panel, new Image(image), "25px"); //$NON-NLS-1$
             addTextBoxToPanel(panel, new TextBoxLabel(), name, ""); 
//$NON-NLS-1$
@@ -113,16 +120,48 @@
         }
 
         TreeItem treeItem = new TreeItem(vPanel);
-        treeItem.setUserObject(disks.get(0).getImageId());
+        treeItem.setUserObject(disks.get(0).getId() + "snapshot"); 
//$NON-NLS-1$
         return treeItem;
     }
 
-    private TreeItem getDiskNode(DiskImage disk) {
-        return getDiskOrSnapshotNode(new 
ArrayList<DiskImage>(Arrays.asList(disk)), true);
-    }
+    private TreeItem getDiskNode(ArrayList<Disk> disks) {
+        if (disks.isEmpty()) {
+            return null;
+        }
 
-    private TreeItem getSnapshotsNode(ArrayList<DiskImage> disks) {
-        return getDiskOrSnapshotNode(disks, false);
-    }
+        VerticalPanel vPanel = new VerticalPanel();
+        vPanel.setWidth("100%"); //$NON-NLS-1$
 
+        for (Disk disk : disks) {
+            HorizontalPanel panel = new HorizontalPanel();
+
+            ImageResource image = resources.diskImage();
+            String name = disk.getDiskAlias();
+
+            addItemToPanel(panel, new Image(image), "25px"); //$NON-NLS-1$
+            addTextBoxToPanel(panel, new TextBoxLabel(), name, ""); 
//$NON-NLS-1$
+            addTextBoxToPanel(panel, new TextBoxLabel(), "", "80px"); 
//$NON-NLS-1$ //$NON-NLS-2$
+            addTextBoxToPanel(panel, new TextBoxLabel(), "", "160px"); 
//$NON-NLS-1$ //$NON-NLS-2$
+
+            Double actualSize =
+                    disk.getDiskStorageType() == DiskStorageType.IMAGE ? 
((DiskImage) disk).getActualDiskWithSnapshotsSize()
+                            : (long) (((LunDisk) 
disk).getLun().getDeviceSize() * Math.pow(1024, 3));
+            Long virtualSize = disk.getDiskStorageType() == 
DiskStorageType.IMAGE ? ((DiskImage) disk).getsize() :
+                    (long) (((LunDisk) disk).getLun().getDeviceSize() * 
Math.pow(1024, 3));
+
+            addValueLabelToPanel(panel, new 
DiskSizeLabel<Long>(DiskSizeUnit.BYTE), virtualSize, "110px"); //$NON-NLS-1$
+            addValueLabelToPanel(panel, new 
DiskSizeLabel<Double>(DiskSizeUnit.BYTE), actualSize, "110px"); //$NON-NLS-1$
+            addValueLabelToPanel(panel, new FullDateTimeLabel(), 
disk.getDiskStorageType() == DiskStorageType.IMAGE ?
+                    ((DiskImage) disk).getcreation_date() : null, "140px"); 
//$NON-NLS-1$
+
+            panel.setSpacing(1);
+            panel.setWidth("100%"); //$NON-NLS-1$
+
+            vPanel.add(panel);
+        }
+
+        TreeItem treeItem = new TreeItem(vPanel);
+        treeItem.setUserObject(disks.get(0).getId());
+        return treeItem;
+    }
 }


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

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

Reply via email to