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
