Greg Sheremeta has uploaded a new change for review.

Change subject: userportal, webadmin: implemented ActionButton tooltips
......................................................................

userportal, webadmin: implemented ActionButton tooltips

Implemented PatternFly tooltips for ActionButtons. By default,
ActionButtons have no tooltips. Like other tooltips, they use
the template method pattern to specify tooltips.
 * Use getTooltip() to provide a tooltip when the button is
   hovered over
 * use getMenuItemTooltip() to provide a tooltip for when the
   button is configured in a context menu

Change-Id: I856a8f31317269923cb5a519d49e3bdc25addbfc
Bug-Url: https://bugzilla.redhat.com/1140158
Signed-off-by: Greg Sheremeta <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionButton.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionPanel.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractButtonDefinition.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButton.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButtonDefinition.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/DropdownActionButton.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiCommandButtonDefinition.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiMenuBarButtonDefinition.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tooltip/TooltipMixin.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicListItemView.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/widget/basic/MainTabBasicListItemActionButton.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostVmView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/ReportActionsHelper.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/action/WebAdminButtonDefinition.java
17 files changed, 146 insertions(+), 62 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/39067/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionButton.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionButton.java
index f1dcff0..d3ae708 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionButton.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionButton.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.common.widget.action;
 
-import org.ovirt.engine.ui.common.widget.tooltip.WidgetTooltip;
+import org.gwtbootstrap3.client.ui.constants.Placement;
+import org.ovirt.engine.ui.common.widget.tooltip.TooltipMixin;
 
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
@@ -21,8 +22,6 @@
 
     @UiField
     public ToggleButton button;
-
-    WidgetTooltip tooltip;
 
     @Override
     public void setEnabledHtml(SafeHtml html) {
@@ -51,12 +50,13 @@
     }
 
     @Override
-    public void setTooltipText(String tooltipText) {
-        if (tooltip == null) {
-            tooltip = new WidgetTooltip(this);
-        }
-        tooltip.setText(tooltipText);
-        tooltip.reconfigure();
+    public void setTooltip(SafeHtml tooltip) {
+        TooltipMixin.addTooltipToElement(tooltip, getElement());
+    }
+
+    @Override
+    public void setTooltip(SafeHtml tooltip, Placement placement) {
+        TooltipMixin.addTooltipToElement(tooltip, getElement(), placement);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionPanel.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionPanel.java
index 8d66b11..903026e 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionPanel.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractActionPanel.java
@@ -6,6 +6,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.gwtbootstrap3.client.ui.constants.Placement;
 import org.ovirt.engine.ui.common.idhandler.HasElementId;
 import org.ovirt.engine.ui.common.idhandler.ProvidesElementId;
 import org.ovirt.engine.ui.common.system.HeaderOffsetChangeEvent;
@@ -38,7 +39,6 @@
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
@@ -427,9 +427,9 @@
      * @param newActionButton The {@code ActionButton} to copy the style from.
      */
     private void copyStyleToCascadeButton(ActionButton newActionButton) {
-        String styleString = ((Widget) newActionButton).getStyleName();
-        if (styleString != null) {
-            String[] stylesArray = styleString.split(" "); //$NON-NLS-1$
+        String styleString = ((Widget) newActionButton).getStyleName().trim();
+        if (styleString != null && !styleString.isEmpty()) {
+            String[] stylesArray = styleString.split("\\s+"); //$NON-NLS-1$
             for (String singleStyle : stylesArray) {
                 if (!singleStyle.startsWith(GWT_PREFIX)) {
                     cascadeButton.addStyleName(singleStyle);
@@ -597,8 +597,10 @@
         button.asWidget().setVisible(buttonDef.isAccessible(getSelectedItems())
                 && buttonDef.isVisible(getSelectedItems()) && 
!buttonDef.isCascaded());
         button.setEnabled(buttonDef.isEnabled(getSelectedItems()));
-        if (buttonDef.getButtonToolTip() != null) {
-            button.setTooltipText(buttonDef.getButtonToolTip());
+        if (buttonDef.getTooltip() != null) {
+            // this Panel is special. show the tooltips below the buttons 
because they're too
+            // hard to read with the default TOP placement.
+            button.setTooltip(buttonDef.getTooltip(), Placement.BOTTOM);
         }
         originallyVisible.put(button.asWidget(), 
buttonDef.isAccessible(getSelectedItems())
                 && buttonDef.isVisible(getSelectedItems()));
@@ -613,8 +615,8 @@
         item.setVisible(buttonDef.isAccessible(getSelectedItems()) && 
buttonDef.isVisible(getSelectedItems()));
         item.setEnabled(buttonDef.isEnabled(getSelectedItems()));
 
-        if (buttonDef.getMenuItemToolTip() != null) {
-            
TooltipMixin.addTooltipToElement(SafeHtmlUtils.fromString(buttonDef.getMenuItemToolTip()),
 item.getElement());
+        if (buttonDef.getMenuItemTooltip() != null) {
+            TooltipMixin.addTooltipToElement(buttonDef.getMenuItemTooltip(), 
item.getElement());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractButtonDefinition.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractButtonDefinition.java
index 93ba09f..0a8190d 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractButtonDefinition.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/AbstractButtonDefinition.java
@@ -31,23 +31,19 @@
     // Indicates whether this action button has a title action
     private final boolean subTitledAction;
 
-    private final String toolTip;
-
     private boolean isCascaded = false;
 
     public AbstractButtonDefinition(EventBus eventBus, String title,
-            CommandLocation commandLocation, boolean subTitledAction,
-            String toolTip) {
+            CommandLocation commandLocation, boolean subTitledAction) {
         this.eventBus = eventBus;
         this.title = SafeHtmlUtils.fromSafeConstant(title);
         this.commandLocation = commandLocation;
         this.subTitledAction = subTitledAction;
-        this.toolTip = toolTip;
     }
 
     public AbstractButtonDefinition(EventBus eventBus, String title,
             CommandLocation commandLocation) {
-        this(eventBus, title, commandLocation, false, null);
+        this(eventBus, title, commandLocation, false);
     }
 
     @Override
@@ -131,13 +127,13 @@
     }
 
     @Override
-    public String getButtonToolTip() {
+    public SafeHtml getTooltip() {
         return null;
     }
 
     @Override
-    public String getMenuItemToolTip() {
-        return toolTip;
+    public SafeHtml getMenuItemTooltip() {
+        return null;
     }
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButton.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButton.java
index 323536e..428c660 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButton.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButton.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.common.widget.action;
 
+import org.gwtbootstrap3.client.ui.constants.Placement;
+
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.user.client.ui.HasEnabled;
@@ -14,7 +16,13 @@
     /**
      * Sets the tooltip of this button.
      */
-    void setTooltipText(String title);
+    void setTooltip(SafeHtml setTooltipText);
+
+    /**
+     * Sets the tooltip of this button, setting the placement. Avoid using 
this --
+     * all tooltips should use the default placement where possible.
+     */
+    void setTooltip(SafeHtml setTooltipText, Placement placement);
 
     /**
      * Sets the HTML content presented when this button is enabled.
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButtonDefinition.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButtonDefinition.java
index ed72bdb..2aa76f0 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButtonDefinition.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/ActionButtonDefinition.java
@@ -81,13 +81,13 @@
     boolean isSubTitledAction();
 
     /**
-     * Returns the tooltip for this action button or {@code null} to use 
button tooltip text.
+     * Returns the tooltip for this action button.
      */
-    String getButtonToolTip();
+    public SafeHtml getTooltip();
 
     /**
-     * Returns the tool-tip for the context menu item representing this action 
button.
+     * Returns the tooltip for the context menu item representing this action 
button.
      */
-    String getMenuItemToolTip();
+    public SafeHtml getMenuItemTooltip();
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/DropdownActionButton.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/DropdownActionButton.java
index 1e598aa..51d44d0 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/DropdownActionButton.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/DropdownActionButton.java
@@ -16,7 +16,6 @@
 import com.google.gwt.event.logical.shared.CloseEvent;
 import com.google.gwt.event.logical.shared.CloseHandler;
 import com.google.gwt.resources.client.CssResource;
-import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.client.Command;
@@ -98,8 +97,8 @@
     void updateMenuItem(MenuItem item, ActionButtonDefinition<T> buttonDef, 
List selectedItems) {
         item.setVisible(buttonDef.isAccessible(selectedItems) && 
buttonDef.isVisible(selectedItems));
         item.setEnabled(buttonDef.isEnabled(selectedItems));
-        if (buttonDef.getButtonToolTip() != null) {
-            
TooltipMixin.addTooltipToElement(SafeHtmlUtils.fromString(buttonDef.getButtonToolTip()),
 item.getElement());
+        if (buttonDef.getTooltip() != null) {
+            TooltipMixin.addTooltipToElement(buttonDef.getTooltip(), 
item.getElement());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiCommandButtonDefinition.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiCommandButtonDefinition.java
index 7e2ba91..fd3f3c4 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiCommandButtonDefinition.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiCommandButtonDefinition.java
@@ -5,10 +5,10 @@
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.IEventListener;
+import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
 import com.google.gwt.event.logical.shared.InitializeEvent;
 import com.google.gwt.event.shared.EventBus;
-import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
 /**
  * Button definition that adapts to UiCommon {@linkplain UICommand commands}.
@@ -31,19 +31,18 @@
     private IEventListener<PropertyChangedEventArgs> propertyChangeListener;
 
     public UiCommandButtonDefinition(EventBus eventBus, String title,
-            CommandLocation commandLocation, boolean subTitledAction,
-            String toolTip) {
-        super(eventBus, title, commandLocation, subTitledAction, toolTip);
+            CommandLocation commandLocation, boolean subTitledAction) {
+        super(eventBus, title, commandLocation, subTitledAction);
         update();
     }
 
     public UiCommandButtonDefinition(EventBus eventBus, String title) {
-        this(eventBus, title, CommandLocation.ContextAndToolBar, false, null);
+        this(eventBus, title, CommandLocation.ContextAndToolBar, false);
     }
 
     public UiCommandButtonDefinition(EventBus eventBus, String title,
             CommandLocation commandLocation) {
-        this(eventBus, title, commandLocation, false, null);
+        this(eventBus, title, commandLocation, false);
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiMenuBarButtonDefinition.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiMenuBarButtonDefinition.java
index 07da8ec..674fbea 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiMenuBarButtonDefinition.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/action/UiMenuBarButtonDefinition.java
@@ -12,6 +12,7 @@
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.resources.client.ImageResource.ImageOptions;
+import com.google.gwt.safehtml.shared.SafeHtml;
 
 public abstract class UiMenuBarButtonDefinition<T> extends 
ImageUiCommandButtonDefinition<T> {
 
@@ -120,7 +121,7 @@
     }
 
     @Override
-    public String getMenuItemToolTip() {
+    public SafeHtml getMenuItemTooltip() {
         return null;
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tooltip/TooltipMixin.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tooltip/TooltipMixin.java
index b31497d..4dba9fa 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tooltip/TooltipMixin.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tooltip/TooltipMixin.java
@@ -3,6 +3,7 @@
 import java.util.Set;
 import java.util.logging.Logger;
 
+import org.gwtbootstrap3.client.ui.constants.Placement;
 import org.ovirt.engine.ui.common.utils.JqueryUtils;
 
 import com.google.gwt.dom.client.BrowserEvents;
@@ -89,10 +90,11 @@
         ElementTooltip.hideAll();
     }
 
-    public static ElementTooltip addTooltipToElement(SafeHtml tooltipContent, 
Element element) {
+    public static ElementTooltip addTooltipToElement(SafeHtml tooltipContent, 
Element element, Placement placement) {
         ElementTooltip tooltip = new ElementTooltip(element);
 
         tooltip.setContent(tooltipContent);
+        tooltip.setPlacement(placement);
         tooltip.reconfigure();
 
         String cellId = element.getId();
@@ -110,6 +112,10 @@
         return tooltip;
     }
 
+    public static ElementTooltip addTooltipToElement(SafeHtml tooltipContent, 
Element element) {
+        return addTooltipToElement(tooltipContent, element, 
TooltipConfig.PLACEMENT);
+    }
+
     public static boolean isTooltipConfigured(Element parent) {
         return ElementTooltip.isTooltipConfigured(parent.getId());
     }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
index f70c532..82a4303 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmDiskListModelTable.java
@@ -18,6 +18,8 @@
 
 import com.google.gwt.event.logical.shared.InitializeEvent;
 import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 
 public class VmDiskListModelTable extends 
BaseVmDiskListModelTable<VmDiskListModel> {
 
@@ -77,13 +79,15 @@
             }
 
             @Override
-            public String getButtonToolTip() {
+            public SafeHtml getTooltip() {
+                String tooltip = null;
                 if (!getModel().isVmDown() && getModel().isHotPlugAvailable()
                         && !getModel().getIsDiskHotPlugSupported()) {
-                    return constants.diskHotPlugNotSupported();
+                    tooltip = constants.diskHotPlugNotSupported();
                 } else {
-                    return this.getText();
+                    tooltip = this.getText();
                 }
+                return SafeHtmlUtils.fromString(tooltip);
             }
         };
         getTable().addActionButton(plugButtonDefinition);
@@ -96,14 +100,16 @@
             }
 
             @Override
-            public String getButtonToolTip() {
+            public SafeHtml getTooltip() {
+                String tooltip = null;
                 if (!getModel().isVmDown() && getModel().isHotPlugAvailable()
                         && !getModel().getIsDiskHotPlugSupported()) {
-                    return constants.diskHotPlugNotSupported();
+                    tooltip = constants.diskHotPlugNotSupported();
                 }
                 else {
-                    return this.getText();
+                    tooltip = this.getText();
                 }
+                return SafeHtmlUtils.fromString(tooltip);
             }
         };
         getTable().addActionButton(unPlugButtonDefinition);
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
index b19a94c..0c43a46 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
@@ -31,6 +31,8 @@
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.client.ui.LayoutPanel;
@@ -199,16 +201,18 @@
             }
 
             @Override
-            public String getButtonToolTip() {
+            public SafeHtml getTooltip() {
+                String tooltip = null;
                 if (!getModel().getIsCloneVmSupported() && 
getModel().getEntity() != null) {
                     CommandVersionsInfo commandVersionsInfo =
                             
AsyncDataProvider.getInstance().getCommandVersionsInfo(VdcActionType.AddVmFromSnapshot);
                     String minimalClusterVersion = commandVersionsInfo != null 
?
                             
commandVersionsInfo.getClusterVersion().toString(2) : ""; //$NON-NLS-1$
-                    return messages.cloneVmNotSupported(minimalClusterVersion);
+                    tooltip = 
messages.cloneVmNotSupported(minimalClusterVersion);
                 } else {
-                    return this.getText();
+                    tooltip = this.getText();
                 }
+                return SafeHtmlUtils.fromString(tooltip);
             }
         });
     }
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicListItemView.java
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicListItemView.java
index b99f76f..97855fb 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicListItemView.java
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicListItemView.java
@@ -31,6 +31,7 @@
 import com.google.gwt.event.shared.GwtEvent;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.text.shared.AbstractRenderer;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
@@ -159,14 +160,15 @@
 
     @Override
     public void updateRunButton(UICommand command, boolean isPool) {
-        runButton.setTooltipText(isPool ? constants.takeVm() : 
constants.runVm());
+        String tooltip = isPool ? constants.takeVm() : constants.runVm();
+        runButton.setTooltip(SafeHtmlUtils.fromSafeConstant(tooltip));
         updateButton(runButton, command);
     }
 
     @Override
     public HasClickHandlers addShutdownButton() {
         MainTabBasicListItemActionButton button = new 
MainTabBasicListItemActionButton(
-                constants.shutdownVm(), resources.stopIcon(), 
resources.stopDisabledIcon(),
+                SafeHtmlUtils.fromSafeConstant(constants.shutdownVm()), 
resources.stopIcon(), resources.stopDisabledIcon(),
                 style.shutdownButtonAdditionalStyle());
         this.shutdownButton = button;
         addButtonToPanel(button);
@@ -181,7 +183,7 @@
     @Override
     public HasClickHandlers addSuspendButton() {
         MainTabBasicListItemActionButton button = new 
MainTabBasicListItemActionButton(
-                constants.suspendVm(), resources.suspendIcon(), 
resources.suspendDisabledIcon(),
+                SafeHtmlUtils.fromSafeConstant(constants.suspendVm()), 
resources.suspendIcon(), resources.suspendDisabledIcon(),
                 style.suspendButtonAdditionalStyle());
         this.suspendButton = button;
         addButtonToPanel(button);
@@ -196,7 +198,7 @@
     @Override
     public HasClickHandlers addRebootButton() {
         MainTabBasicListItemActionButton button = new 
MainTabBasicListItemActionButton(
-                constants.rebootVm(),
+                SafeHtmlUtils.fromSafeConstant(constants.rebootVm()),
                 resources.rebootIcon(),
                 resources.rebootDisabledIcon(),
                 style.rebootButtonAdditionalStyle());
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/widget/basic/MainTabBasicListItemActionButton.java
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/widget/basic/MainTabBasicListItemActionButton.java
index 47d71e2..eef372e 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/widget/basic/MainTabBasicListItemActionButton.java
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/widget/basic/MainTabBasicListItemActionButton.java
@@ -6,6 +6,7 @@
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
@@ -29,10 +30,10 @@
     @UiField
     Panel stylableButtonHolder;
 
-    public MainTabBasicListItemActionButton(String tooltipText, ImageResource 
enabledImage, ImageResource disabledImage,
+    public MainTabBasicListItemActionButton(SafeHtml tooltip, ImageResource 
enabledImage, ImageResource disabledImage,
             String additionalStyle) {
         initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
-        setTooltipText(tooltipText);
+        setTooltip(tooltip);
         
setEnabledHtml(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(enabledImage).getHTML()));
         
setDisabledHtml(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(disabledImage).getHTML()));
         stylableButtonHolder.addStyleName(additionalStyle);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
index 6bb4b50..cec6a0b 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
@@ -44,6 +44,7 @@
 
 import com.google.gwt.cell.client.HasCell;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.inject.Inject;
 
@@ -287,12 +288,22 @@
             protected UICommand resolveCommand() {
                 return getMainModel().getRunCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.runVm());
+            }
         });
         getTable().addActionButton(new 
WebAdminImageButtonDefinition<VM>(constants.suspendVm(),
                 resources.suspendVmImage(), 
resources.suspendVmDisabledImage()) {
             @Override
             protected UICommand resolveCommand() {
                 return getMainModel().getPauseCommand();
+            }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.suspendVm());
             }
         });
         getTable().addActionButton(new 
WebAdminImageButtonDefinition<VM>(constants.shutDownVm(),
@@ -301,11 +312,21 @@
             protected UICommand resolveCommand() {
                 return getMainModel().getShutdownCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.shutDownVm());
+            }
         });
         getTable().addActionButton(new 
WebAdminButtonDefinition<VM>(constants.powerOffVm(), 
CommandLocation.OnlyFromContext) {
             @Override
             protected UICommand resolveCommand() {
                 return getMainModel().getStopCommand();
+            }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.powerOffVm());
             }
         });
         getTable().addActionButton(new 
WebAdminImageButtonDefinition<VM>(constants.rebootVm(),
@@ -314,6 +335,11 @@
             protected UICommand resolveCommand() {
                 return getMainModel().getRebootCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.rebootVm());
+            }
         });
         // TODO: separator
         getTable().addActionButton(new 
WebAdminImageButtonDefinition<VM>(constants.consoleVm(),
@@ -322,6 +348,11 @@
             protected UICommand resolveCommand() {
                 return getMainModel().getConsoleConnectCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.consoleVm());
+            }
         });
         // TODO: separator
         getTable().addActionButton(new 
WebAdminButtonDefinition<VM>(constants.consoleOptions(),
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostVmView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostVmView.java
index af04f18..1fd6d79 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostVmView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostVmView.java
@@ -26,6 +26,8 @@
 import org.ovirt.engine.ui.webadmin.widget.table.column.VmTypeColumn;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 
 public class SubTabHostVmView extends AbstractSubTabTableView<VDS, VM, 
HostListModel<Void>, HostVmListModel>
         implements SubTabHostVmPresenter.ViewDef {
@@ -151,6 +153,11 @@
             protected UICommand resolveCommand() {
                 return getDetailModel().getPauseCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.suspendVm());
+            }
         });
 
         getTable().addActionButton(new 
WebAdminImageButtonDefinition<VM>(constants.shutDownVm(),
@@ -159,12 +166,22 @@
             protected UICommand resolveCommand() {
                 return getDetailModel().getShutdownCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.shutDownVm());
+            }
         });
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<VM>(constants.powerOffVm(), 
CommandLocation.OnlyFromContext) {
             @Override
             protected UICommand resolveCommand() {
                 return getDetailModel().getStopCommand();
+            }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.powerOffVm());
             }
         });
 
@@ -174,6 +191,12 @@
             protected UICommand resolveCommand() {
                 return getDetailModel().getConsoleConnectCommand();
             }
+
+            @Override
+            public SafeHtml getTooltip() {
+                return SafeHtmlUtils.fromSafeConstant(constants.consoleVm());
+            }
+
         });
 
         // TODO: separator
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/ReportActionsHelper.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/ReportActionsHelper.java
index a3d5664..03444a0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/ReportActionsHelper.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/ReportActionsHelper.java
@@ -14,6 +14,9 @@
 import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
 import 
org.ovirt.engine.ui.webadmin.widget.action.WebAdminMenuBarButtonDefinition;
 
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
+
 public class ReportActionsHelper {
 
     private static final ReportActionsHelper INSTANCE = new 
ReportActionsHelper();
@@ -58,7 +61,7 @@
         List<ActionButtonDefinition<T>> subActions = new 
LinkedList<ActionButtonDefinition<T>>();
 
         for (final URI uri : category.getUriList()) {
-            subActions.add(new WebAdminButtonDefinition<T>(uri.getName(), 
null, true, uri.getDescription()) {
+            subActions.add(new WebAdminButtonDefinition<T>(uri.getName(), 
null, true) {
 
                 @Override
                 public boolean isVisible(List<T> selectedItems) {
@@ -67,10 +70,14 @@
 
                 @Override
                 protected UICommand resolveCommand() {
-
                     return 
modelProvider.getModel().addOpenReportCommand(uri.getId(), uri.isMultiple(), 
uri.getValue());
                 }
 
+                @Override
+                public SafeHtml getTooltip() {
+                    return SafeHtmlUtils.fromString(uri.getDescription());
+                }
+
             });
         }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/action/WebAdminButtonDefinition.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/action/WebAdminButtonDefinition.java
index 1d9630d..2d42a58 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/action/WebAdminButtonDefinition.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/action/WebAdminButtonDefinition.java
@@ -8,9 +8,8 @@
 
 public abstract class WebAdminButtonDefinition<T> extends 
UiCommandButtonDefinition<T> {
 
-    public WebAdminButtonDefinition(String title, CommandLocation 
commandLocation,
-            boolean subTitledAction, String toolTip) {
-        super(getEventBus(), title, commandLocation, subTitledAction, toolTip);
+    public WebAdminButtonDefinition(String title, CommandLocation 
commandLocation, boolean subTitledAction) {
+        super(getEventBus(), title, commandLocation, subTitledAction);
     }
 
     public WebAdminButtonDefinition(String title, CommandLocation 
commandLocation) {


-- 
To view, visit https://gerrit.ovirt.org/39067
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to