Daniel Erez has uploaded a new change for review.

Change subject: webadmin: disks tabs - adding tool-tips icon columns
......................................................................

webadmin: disks tabs - adding tool-tips icon columns

* Status column (active/inactive/locked):
  Added the relevant tool-tips - moved icon creation to
  DiskStatusColumn (extending ImageResourceColumn),
  thus DiskStatusCell is no longer needed).

* Bootable/shareable/DirectLUN columns:
** Added to disks sub-tab.
** Added icons and tool-tips to the headers.

Change-Id: I88eae57989e31dda08b747009a035aa695c0bebf
Bug-Url: https://bugzilla.redhat.com/851856
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
D 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusCell.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusColumn.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ImageResourceColumn.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDiskView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskVmView.java
10 files changed, 107 insertions(+), 84 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/95/8795/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index 3f0c19c..62c0267 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -577,8 +577,8 @@
     @DefaultStringValue("Active")
     String activeDisk();
 
-    @DefaultStringValue("Unactive")
-    String unactiveDisk();
+    @DefaultStringValue("Inactive")
+    String inactiveDisk();
 
     @DefaultStringValue("Move")
     String moveDisk();
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
index 4e5a308..e21fedb 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
@@ -22,6 +22,9 @@
             "<span style='position: relative; padding-left: 3px; 
vertical-align: middle; display: table-cell;'>{2}</span></span>")
     SafeHtml tripleImage(SafeHtml image1, SafeHtml image2, SafeHtml image3);
 
+    @Template("<span style='height:22px; width: 22px; vertical-align: middle; 
text-align: center; display: table-cell;' title='{1}'>{0}</span>")
+    SafeHtml imageWithTitle(SafeHtml image, String title);
+
     @Template("<table cellspacing='0' cellpadding='0'><tr>" +
             "<td style='background: url({2});width:2px;'></td>" +
             "<td style='text-align:center;'>" +
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
index 29ab58f..ab73f91 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
@@ -525,9 +525,9 @@
             }
 
             if (width == null) {
-                addColumn(column, headerText);
+                addColumnWithHtmlHeader(column, headerText);
             } else {
-                addColumn(column, headerText, width);
+                addColumnWithHtmlHeader(column, headerText, width);
             }
         } else if (!present && table.getColumnIndex(column) != -1) {
             removeColumn(column);
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusCell.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusCell.java
deleted file mode 100644
index 0ba86de..0000000
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusCell.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.ovirt.engine.ui.common.widget.table.column;
-
-import org.ovirt.engine.core.common.businessentities.Disk;
-import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
-import org.ovirt.engine.ui.common.CommonApplicationResources;
-import org.ovirt.engine.ui.common.CommonApplicationTemplates;
-
-import com.google.gwt.cell.client.AbstractCell;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.safehtml.shared.SafeHtml;
-import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
-import com.google.gwt.safehtml.shared.SafeHtmlUtils;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-
-public class DiskStatusCell extends AbstractCell<Disk> {
-
-    private static final CommonApplicationResources commonResources = 
GWT.create(CommonApplicationResources.class);
-    private static final CommonApplicationTemplates commonTemplates = 
GWT.create(CommonApplicationTemplates.class);
-
-    @Override
-    public void render(Context context, Disk disk, SafeHtmlBuilder sb) {
-        // Nothing to render if no host is provided:
-        if (disk == null) {
-            return;
-        }
-
-        ImageResource plugStatus = (disk.getPlugged() != null && 
disk.getPlugged().booleanValue()) ?
-                commonResources.upImage() : commonResources.downImage();
-
-        ImageResource shraeable = (disk.isShareable()) ?
-                commonResources.shareableDiskIcon() : null;
-
-        ImageResource externalDisk = (disk.getDiskStorageType() == 
DiskStorageType.LUN) ?
-                commonResources.externalDiskIcon() : null;
-
-        SafeHtml plugStatusImageHtml =
-                
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(plugStatus).getHTML());
-
-        SafeHtml shraeableImageHtml = shraeable != null ?
-                
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(shraeable).getHTML())
-                : new SafeHtmlBuilder().toSafeHtml();
-
-        SafeHtml externalDiskImageHtml = externalDisk != null ?
-                
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(externalDisk).getHTML())
-                : new SafeHtmlBuilder().toSafeHtml();
-
-        sb.append(commonTemplates.tripleImage(plugStatusImageHtml, 
shraeableImageHtml, externalDiskImageHtml));
-    }
-}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusColumn.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusColumn.java
index ba9750a..358b713 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusColumn.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/DiskStatusColumn.java
@@ -1,18 +1,26 @@
 package org.ovirt.engine.ui.common.widget.table.column;
 
 import org.ovirt.engine.core.common.businessentities.Disk;
+import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
+import org.ovirt.engine.core.common.businessentities.ImageStatus;
 
-import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.resources.client.ImageResource;
 
-public class DiskStatusColumn extends Column<Disk, Disk> {
-
-    public DiskStatusColumn() {
-        super(new DiskStatusCell());
-    }
-
+public class DiskStatusColumn extends ImageResourceColumn<Disk> {
     @Override
-    public Disk getValue(Disk object) {
-        return object;
-    }
+    public ImageResource getValue(Disk disk) {
+        if (disk.getDiskStorageType().equals(DiskStorageType.IMAGE)) {
+            DiskImage diskImage = (DiskImage) disk;
 
+            if (diskImage.getimageStatus().equals(ImageStatus.LOCKED)) {
+                setEnumTitle(diskImage.getimageStatus());
+                return new DiskImageStatusColumn().getValue(diskImage);
+            }
+        }
+
+        boolean isDiskPlugged = disk.getPlugged() != null && 
disk.getPlugged().booleanValue();
+        setTitle(isDiskPlugged ? getCommonConstants().activeDisk() : 
getCommonConstants().inactiveDisk());
+        return isDiskPlugged ? getCommonResources().upImage() : 
getCommonResources().downImage();
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ImageResourceColumn.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ImageResourceColumn.java
index b0a76a4..a70f971 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ImageResourceColumn.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ImageResourceColumn.java
@@ -2,11 +2,14 @@
 
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
+import org.ovirt.engine.ui.common.CommonApplicationTemplates;
 import org.ovirt.engine.ui.uicompat.EnumTranslator;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
 
 /**
  * Column for rendering {@link ImageResource} instances using {@link 
StyledImageResourceCell}.
@@ -18,6 +21,7 @@
 
     private static final CommonApplicationResources RESOURCES = 
GWT.create(CommonApplicationResources.class);
     private static final CommonApplicationConstants CONSTANTS = 
GWT.create(CommonApplicationConstants.class);
+    private static final CommonApplicationTemplates TEMPLATES = 
GWT.create(CommonApplicationTemplates.class);
 
     public ImageResourceColumn() {
         super(new StyledImageResourceCell());
@@ -36,6 +40,23 @@
         setTitle(EnumTranslator.createAndTranslate(enumObj));
     }
 
+    public String getDefaultTitle() {
+        return CONSTANTS.empty();
+    }
+
+    public ImageResource getDefaultImage() {
+        return null;
+    }
+
+    public String getHeaderHtml() {
+        if (getDefaultImage() == null) {
+            return CONSTANTS.empty();
+        }
+
+        return TEMPLATES.imageWithTitle(SafeHtmlUtils.fromTrustedString(
+                AbstractImagePrototype.create(getDefaultImage()).getHTML()), 
getDefaultTitle()).asString();
+    }
+
     protected CommonApplicationResources getCommonResources() {
         return RESOURCES;
     }
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 32b04a5..1130ea6 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
@@ -46,25 +46,54 @@
     public static final ImageResourceColumn<Disk> bootableDiskColumn = new 
ImageResourceColumn<Disk>() {
         @Override
         public ImageResource getValue(Disk object) {
-            setTitle(object.isBoot() ? constants.bootableDisk() : null);
-            return object.isBoot() ? resources.bootableDiskIcon() : null;
+            setTitle(object.isBoot() ? getDefaultTitle() : null);
+            return object.isBoot() ? getDefaultImage() : null;
+        }
+
+        @Override
+        public String getDefaultTitle() {
+            return constants.bootableDisk();
+        }
+
+        @Override
+        public ImageResource getDefaultImage() {
+            return resources.bootableDiskIcon();
         }
     };
 
     public static final ImageResourceColumn<Disk> shareableDiskColumn = new 
ImageResourceColumn<Disk>() {
         @Override
         public ImageResource getValue(Disk object) {
-            setTitle(object.isShareable() ? constants.shareable() : null);
-            return object.isShareable() ? resources.shareableDiskIcon() : null;
+            setTitle(object.isShareable() ? getDefaultTitle() : null);
+            return object.isShareable() ? getDefaultImage() : null;
+        }
+
+        @Override
+        public String getDefaultTitle() {
+            return constants.shareable();
+        }
+
+        @Override
+        public ImageResource getDefaultImage() {
+            return resources.shareableDiskIcon();
         }
     };
 
     public static final ImageResourceColumn<Disk> lunDiskColumn = new 
ImageResourceColumn<Disk>() {
         @Override
         public ImageResource getValue(Disk object) {
-            setEnumTitle(object.getDiskStorageType());
             return object.getDiskStorageType() == DiskStorageType.LUN ?
                     resources.externalDiskIcon() : null;
+        }
+
+        @Override
+        public String getDefaultTitle() {
+            return constants.lunDisksLabel();
+        }
+
+        @Override
+        public ImageResource getDefaultImage() {
+            return resources.externalDiskIcon();
         }
     };
 
@@ -108,13 +137,13 @@
                     ((DiskImage) object).getvolume_type() : null;
         }
     };
-
-    public static final TextColumnWithTooltip<Disk> interfaceColumn = new 
EnumColumn<Disk, DiskInterface>() {
-        @Override
-        protected DiskInterface getRawValue(Disk object) {
-            return object.getDiskInterface();
-        }
-    };
+
+    public static final TextColumnWithTooltip<Disk> interfaceColumn = new 
EnumColumn<Disk, DiskInterface>() {
+        @Override
+        protected DiskInterface getRawValue(Disk object) {
+            return object.getDiskInterface();
+        }
+    };
 
     public static final TextColumnWithTooltip<Disk> dateCreatedColumn = new 
FullDateTimeColumn<Disk>() {
         @Override
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java
index 1ed07b2..8e986c0 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/BaseVmDiskListModelTable.java
@@ -73,12 +73,24 @@
         getModel().Search();
 
         getTable().ensureColumnPresent(
-                DisksViewColumns.diskStatusColumn, constants.empty(), all || 
images || luns, "70px"); //$NON-NLS-1$
+                DisksViewColumns.diskStatusColumn, constants.empty(), all || 
images || luns, "30px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
                 DisksViewColumns.aliasColumn, constants.aliasDisk(), all || 
images || luns);
 
         getTable().ensureColumnPresent(
+                DisksViewColumns.bootableDiskColumn,
+                DisksViewColumns.bootableDiskColumn.getHeaderHtml(), all || 
images || luns, "30px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
+                DisksViewColumns.shareableDiskColumn,
+                DisksViewColumns.shareableDiskColumn.getHeaderHtml(), all || 
images || luns, "30px"); //$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
+                DisksViewColumns.lunDiskColumn,
+                DisksViewColumns.lunDiskColumn.getHeaderHtml(), all, "30px"); 
//$NON-NLS-1$
+
+        getTable().ensureColumnPresent(
                 DisksViewColumns.sizeColumn, constants.provisionedSizeDisk(), 
all || images || luns, "100px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
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 3e4e965..c9b960b 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
@@ -87,16 +87,16 @@
                 "150px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
-                DisksViewColumns.bootableDiskColumn, "", all || images || 
luns, //$NON-NLS-1$
-                "30px"); //$NON-NLS-1$
+                DisksViewColumns.bootableDiskColumn,
+                DisksViewColumns.bootableDiskColumn.getHeaderHtml(), all || 
images || luns, "30px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
-                DisksViewColumns.shareableDiskColumn, "", all || images || 
luns, //$NON-NLS-1$
-                "30px"); //$NON-NLS-1$
+                DisksViewColumns.shareableDiskColumn,
+                DisksViewColumns.shareableDiskColumn.getHeaderHtml(), all || 
images || luns, "30px"); //$NON-NLS-1$
 
         getTable().ensureColumnPresent(
-                DisksViewColumns.lunDiskColumn, "", all, //$NON-NLS-1$
-                "30px"); //$NON-NLS-1$
+                DisksViewColumns.lunDiskColumn,
+                DisksViewColumns.lunDiskColumn.getHeaderHtml(), all, "30px"); 
//$NON-NLS-1$
 
         getTable().ensureColumnPresent(
                 DisksViewColumns.diskContainersIconColumn, "", all || images 
|| luns, //$NON-NLS-1$
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskVmView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskVmView.java
index 64bb470..7144754 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskVmView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskVmView.java
@@ -42,7 +42,7 @@
             @Override
             public ImageResource getValue(VM object) {
                 boolean isDiskPlugged = 
getDetailModel().isDiskPluggedToVm(object);
-                setTitle(isDiskPlugged ? constants.activeDisk() : 
constants.unactiveDisk());
+                setTitle(isDiskPlugged ? constants.activeDisk() : 
constants.inactiveDisk());
                 return isDiskPlugged ? getCommonResources().upImage() : 
getCommonResources().downImage();
             }
         };


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

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

Reply via email to