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