Greg Sheremeta has uploaded a new change for review. Change subject: userportal, webadmin: convert all grid Headers to PatternFly tooltips ......................................................................
userportal, webadmin: convert all grid Headers to PatternFly tooltips Converted all grid Headers from title-based tooltips to new PatternFly tooltips. All grids now fully use the new tooltips, in both headers and rows. Added infrastructure that simplifies adding a tooltip to any Header. * Created a new SafeHtmlHeader object that encapsulates the Header text and tooltip. Most Headers are simple HTML and can use this directly. Simply pass the Header HTML and tooltip HTML to the constructor. * Created a base class AbstractHeader that uses the template-method pattern. If you cannot use SafeHtmlHeader, implement AbstractHeader and override getTooltip() to provide the tooltip. Change-Id: I33f5fbd37bdbdf7a60dee0b14bcd8dbc11ac5b24 Bug-Url: https://bugzilla.redhat.com/1067318 Signed-off-by: Greg Sheremeta <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelCellTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ListModelObjectCellTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCellWithElementId.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractImageResourceColumn.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java R frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractCheckboxHeader.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractHeader.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizableHeader.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizeableCheckboxHeader.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SafeHtmlHeader.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SelectAllCheckBoxHeader.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/TooltipHeader.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/TemplateInterfaceListModelTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/PoolInterfaceListModelTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDataCenterView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabPoolView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabTemplateView.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/MainTabVnicProfileView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkProfileView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java 33 files changed, 408 insertions(+), 241 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/38175/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelCellTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelCellTable.java index 103cc12..f0de7f1 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelCellTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelCellTable.java @@ -350,6 +350,7 @@ return editorAdapter; } + // TODO this is a duplicate -- remove public void addEntityModelColumn(Column<EntityModel, ?> column, String headerString) { super.addColumn(column, headerString); } @@ -377,11 +378,11 @@ */ @Override public void addColumn(Column column, String headerString, String width) { - addColumnAndSetWidth(column, headerString, width); + super.addColumnAndSetWidth(column, headerString, width); } public void addColumn(Column column, SafeHtml headerHtml, String width) { - addColumnAndSetWidth(column, headerHtml, width); + super.addColumnWithHtmlHeader(column, headerHtml, width); } public void addColumn(Column column, Header<?> header, String width) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ListModelObjectCellTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ListModelObjectCellTable.java index ead4fd3..c1f0e55 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ListModelObjectCellTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ListModelObjectCellTable.java @@ -167,7 +167,7 @@ } public void addColumn(Column column, SafeHtml headerHtml, String width) { - addColumnAndSetWidth(column, headerHtml, width); + addColumnWithHtmlHeader(column, headerHtml, width); } public void addColumnAt(Column<T, ?> column, String headerText, String width, int position) { 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 a8c947d..951e0bd 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 @@ -12,6 +12,7 @@ import org.ovirt.engine.ui.common.widget.action.AbstractActionPanel; import org.ovirt.engine.ui.common.widget.label.NoItemsLabel; import org.ovirt.engine.ui.common.widget.table.column.AbstractColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.uicompat.IEventListener; @@ -36,6 +37,7 @@ import com.google.gwt.event.dom.client.ScrollHandler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.cellview.client.CellTable.Resources; @@ -591,42 +593,34 @@ tableHeader.setColumnWidth(column, width); } - /** - * Adds a new column, without specifying column width. - */ public void addColumn(Column<T, ?> column, String headerText) { table.addColumn(column, headerText); tableHeader.addColumn(column, headerText); } - /** - * Adds a new column, setting the column width. - */ public void addColumn(Column<T, ?> column, String headerText, String width) { addColumn(column, headerText); setColumnWidth(column, width); } - /** - * Adds a new column with HTML header text, without specifying column width. - * <p> - * {@code headerHtml} must honor the SafeHtml contract as specified in - * {@link com.google.gwt.safehtml.shared.SafeHtmlUtils#fromSafeConstant(String) SafeHtmlUtils.fromSafeConstant}. - */ - public void addColumnWithHtmlHeader(Column<T, ?> column, String headerHtml) { + public void addColumnWithHtmlHeader(Column<T, ?> column, SafeHtml headerHtml) { table.addColumnWithHtmlHeader(column, headerHtml); tableHeader.addColumnWithHtmlHeader(column, headerHtml); } - /** - * Adds a new column with HTML header text, setting the column width. - * <p> - * {@code headerHtml} must honor the SafeHtml contract as specified in - * {@link com.google.gwt.safehtml.shared.SafeHtmlUtils#fromSafeConstant(String) SafeHtmlUtils.fromSafeConstant}. - */ - public void addColumnWithHtmlHeader(Column<T, ?> column, String headerHtml, String width) { + public void addColumnWithHtmlHeader(Column<T, ?> column, SafeHtml headerHtml, String width) { table.addColumnWithHtmlHeader(column, headerHtml, width); tableHeader.addColumnWithHtmlHeader(column, headerHtml, width); + } + + public void addColumn(Column<T, ?> column, SafeHtmlHeader header) { + table.addColumn(column, header); + tableHeader.addColumn(column, header); + } + + public void addColumn(Column<T, ?> column, SafeHtmlHeader header, String width) { + addColumn(column, header); + setColumnWidth(column, width); } /** @@ -656,6 +650,26 @@ } /** + * Ensures that the given column is added (or removed), unless it's already present (or absent). + * <p> + * This method also sets the column width in case the column needs to be added. + */ + public void ensureColumnPresent(Column<T, ?> column, SafeHtml headerHtml, boolean present, String width) { + table.ensureColumnPresent(column, headerHtml, present, width); + tableHeader.ensureColumnPresent(column, headerHtml, present, width); + } + + /** + * Ensures that the given column is added (or removed), unless it's already present (or absent). + * <p> + * This method also sets the column width in case the column needs to be added. + */ + public void ensureColumnPresent(Column<T, ?> column, SafeHtmlHeader header, boolean present, String width) { + table.ensureColumnPresent(column, header, present, width); + tableHeader.ensureColumnPresent(column, header, present, width); + } + + /** * Allows table columns to be resized by dragging their right-hand border using mouse. * <p> * This method should be called before calling any {@code addColumn} methods. diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCellWithElementId.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCellWithElementId.java index 1460fcf..6f2b456 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCellWithElementId.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractCellWithElementId.java @@ -6,6 +6,7 @@ import com.google.gwt.user.client.DOM; /** + * TODO delete this -- AbstractTooltipCell already does this * A cell that sets an ID when it renders. Convenience implementation of CellWithElementId. * * @param <C> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractImageResourceColumn.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractImageResourceColumn.java index 9a024ff..721f726 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractImageResourceColumn.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/AbstractImageResourceColumn.java @@ -6,6 +6,7 @@ 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.SafeHtmlUtils; import com.google.gwt.user.client.ui.AbstractImagePrototype; @@ -38,14 +39,13 @@ return null; } - public String getHeaderHtml() { + public SafeHtml getHeaderHtml() { if (getDefaultImage() == null) { - return CONSTANTS.empty(); + return SafeHtmlUtils.fromSafeConstant(CONSTANTS.empty()); } - // TODO tt (in follow-up header patch) users of AbstractImageResourceColumn will have to set the Header Tooltip return TEMPLATES.headerImage(SafeHtmlUtils.fromTrustedString( - AbstractImagePrototype.create(getDefaultImage()).getHTML())).asString(); + AbstractImagePrototype.create(getDefaultImage()).getHTML())); } protected CommonApplicationResources getCommonResources() { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java index 86cb3c6..39b4d9e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EnabledDisabledCheckboxCell.java @@ -23,13 +23,17 @@ /** * A Cell that renders a checkbox. Supports tooltips. Supports rendering Element ids via the oVirt Element-ID framework. */ -class EnabledDisabledCheckboxCell extends CheckboxCell implements EventHandlingCell, CellWithElementId<Boolean>, TooltipCell<Boolean> { +public class EnabledDisabledCheckboxCell extends CheckboxCell implements EventHandlingCell, CellWithElementId<Boolean>, TooltipCell<Boolean> { private String elementIdPrefix = DOM.createUniqueId(); // default private String columnId; public EnabledDisabledCheckboxCell() { super(true, false); + } + + public EnabledDisabledCheckboxCell(boolean dependsOnSelection, boolean handlesSelection) { + super(dependsOnSelection, handlesSelection); } @Override @@ -46,6 +50,8 @@ public Set<String> getConsumedEvents() { Set<String> set = new HashSet<String>(); TooltipMixin.addTooltipsEvents(set); + set.add(BrowserEvents.CHANGE); + set.add(BrowserEvents.KEYDOWN); return set; } @@ -56,8 +62,6 @@ */ public void onBrowserEvent(Context context, Element parent, Boolean value, SafeHtml tooltipContent, NativeEvent event, ValueUpdater<Boolean> valueUpdater) { - - // TODO tt what about checkbox events? // if the Column did not provide a tooltip, give the Cell a chance to render one using the cell value C if (tooltipContent == null) { @@ -75,6 +79,9 @@ if (BrowserEvents.MOUSEDOWN.equals(event.getType())) { TooltipMixin.hideAllTooltips(); } + + // let CheckboxCell handle its events + super.onBrowserEvent(context, parent, value, event, valueUpdater); } /** diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/CheckboxHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractCheckboxHeader.java similarity index 72% rename from frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/CheckboxHeader.java rename to frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractCheckboxHeader.java index 3673642..ca7b40a 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/CheckboxHeader.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractCheckboxHeader.java @@ -1,14 +1,14 @@ package org.ovirt.engine.ui.common.widget.table.header; +import org.ovirt.engine.ui.common.widget.table.column.EnabledDisabledCheckboxCell; + import com.google.gwt.cell.client.Cell.Context; -import com.google.gwt.cell.client.CheckboxCell; import com.google.gwt.cell.client.ValueUpdater; 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.cellview.client.Header; -public abstract class CheckboxHeader extends Header<Boolean> { +public abstract class AbstractCheckboxHeader extends AbstractHeader<Boolean> { private static final SafeHtml INPUT_CHECKED_DISABLED = SafeHtmlUtils.fromSafeConstant( "<input type=\"checkbox\" disabled=\"\" tabindex=\"-1\" tabindex=\"-1\" checked/>"); //$NON-NLS-1$ @@ -16,18 +16,11 @@ private static final SafeHtml INPUT_UNCHECKED_DISABLED = SafeHtmlUtils.fromSafeConstant( "<input type=\"checkbox\" disabled=\"\" tabindex=\"-1\"/>"); //$NON-NLS-1$ - private final SafeHtml title; - - public SafeHtml getTitle() { - return title; - } - - public CheckboxHeader(final SafeHtml title) { - super(new CheckboxCell(true, false) { + public AbstractCheckboxHeader() { + super(new EnabledDisabledCheckboxCell(true, false) { @Override - public void render(Context context, Boolean value, SafeHtmlBuilder sb) { - super.render(context, value, sb); - sb.append(title); + public void render(Context context, Boolean value, SafeHtmlBuilder sb, String id) { + super.render(context, value, sb, id); } }); @@ -37,8 +30,6 @@ selectionChanged(value); } }); - - this.title = title; } @Override @@ -46,10 +37,8 @@ if (!isEnabled()) { if (getValue()) { sb.append(INPUT_CHECKED_DISABLED); - sb.append(title); } else { sb.append(INPUT_UNCHECKED_DISABLED); - sb.append(title); } } else { super.render(context, sb); @@ -60,4 +49,7 @@ abstract public boolean isEnabled(); + @Override + public abstract SafeHtml getTooltip(); + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractHeader.java new file mode 100644 index 0000000..30fb805 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/AbstractHeader.java @@ -0,0 +1,48 @@ +package org.ovirt.engine.ui.common.widget.table.header; + +import org.ovirt.engine.ui.common.widget.table.cell.TooltipCell; +import org.ovirt.engine.ui.common.widget.table.column.ColumnWithElementId; + +import com.google.gwt.cell.client.ValueUpdater; +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.user.cellview.client.Header; + +/** + * A {@link Header}. Supports tooltips. Supports element-id framework. + * <em>All oVirt table headers should extend this.</em> + * + * @param <H> Cell data type. + */ +public abstract class AbstractHeader<H> extends Header<H> implements ColumnWithElementId, TooltipHeader { + + ValueUpdater<H> updater = null; + + public AbstractHeader(TooltipCell<H> cell) { + super(cell); + } + + public TooltipCell<H> getCell() { + return (TooltipCell<H>) super.getCell(); + } + + /** + * This is copied from GWT's Header, but we also inject the tooltip content into the cell. + * TODO-GWT: make sure that this method is in sync with Header::onBroswerEvent. + */ + public void onBrowserEvent(Context context, Element elem, NativeEvent event) { + getCell().onBrowserEvent(context, elem, getValue(), getTooltip(), event, updater); + } + + @Override + public void configureElementId(String elementIdPrefix, String columnId) { + getCell().setElementIdPrefix(elementIdPrefix); + getCell().setColumnId(columnId); + } + + public void setUpdater(ValueUpdater<H> updater) { + this.updater = updater; + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizableHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizableHeader.java index ad74240..34ef1f0 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizableHeader.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizableHeader.java @@ -7,7 +7,6 @@ import org.ovirt.engine.ui.common.widget.table.resize.ColumnResizeHandler; import org.ovirt.engine.ui.common.widget.table.resize.HasResizableColumns; -import com.google.gwt.cell.client.Cell; import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.core.shared.GWT; import com.google.gwt.dom.client.BrowserEvents; @@ -20,17 +19,15 @@ import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.user.cellview.client.Column; -import com.google.gwt.user.cellview.client.Header; /** - * A {@link Header} that allows the user to resize the associated column by dragging its right-hand border using mouse. - * <p> - * This header has its value rendered through safe HTML markup. + * A Header that allows the user to resize the associated column by dragging its right-hand + * border using mouse. Renders SafeHtml. Supports tooltips. * * @param <T> * Table row data type. */ -public class ResizableHeader<T> extends Header<SafeHtml> { +public class ResizableHeader<T> extends SafeHtmlHeader { /** * The template interface that defines the wrapper around the content. This is so we can @@ -87,10 +84,6 @@ public static final int RESIZE_BAR_WIDTH = 7; /** - * The content text. - */ - private final SafeHtml text; - /** * The resize-able column. */ private final Column<T, ?> column; @@ -107,12 +100,13 @@ /** * Constructor. - * @param text The contents of the header. + * @param safeHtmlHeader The header. * @param column The column associated with the header. + * @param applyStyle Whether to apply default styling. * @param table The table containing the header/column. */ - public ResizableHeader(SafeHtml text, Column<T, ?> column, HasResizableColumns<T> table, boolean applyStyle) { - this(text, column, table, + public ResizableHeader(SafeHtmlHeader safeHtmlHeader, Column<T, ?> column, HasResizableColumns<T> table, boolean applyStyle) { + this(safeHtmlHeader, column, table, new SafeHtmlCell() { @Override public Set<String> getConsumedEvents() { @@ -126,30 +120,19 @@ /** * Constructor. - * @param text The contents of the header. + * @param safeHtmlHeader The header. * @param column The column associated with the header. * @param table The table containing the header/column. - * @param cell The cell that defines the header cell. - */ - public ResizableHeader(SafeHtml text, Column<T, ?> column, HasResizableColumns<T> table, - Cell<SafeHtml> cell) { - this(text, column, table, cell, true); - } - - /** - * Constructor. - * @param text The contents of the header. - * @param column The column associated with the header. - * @param table The table containing the header/column. - * @param cell The cell that defines the header cell. + * @param cell cell that renders the header * @param applyStyle Whether to apply default styling. */ - public ResizableHeader(SafeHtml text, Column<T, ?> column, HasResizableColumns<T> table, - Cell<SafeHtml> cell, boolean applyStyle) { + public ResizableHeader(SafeHtmlHeader safeHtmlHeader, Column<T, ?> column, HasResizableColumns<T> table, + SafeHtmlCell cell, boolean applyStyle) { super(cell); style = RESOURCES.resizableHeaderCss(); style.ensureInjected(); - this.text = text; + setValue(safeHtmlHeader.getValue()); + setTooltip(safeHtmlHeader.getTooltip()); this.column = column; this.table = table; this.applyStyle = applyStyle; @@ -157,7 +140,7 @@ @Override public SafeHtml getValue() { - return applyStyle ? TEMPLATE.templatedContent(style.cellTableHeaderContent(), text) : text; + return applyStyle ? TEMPLATE.templatedContent(style.cellTableHeaderContent(), super.getValue()) : super.getValue(); } @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizeableCheckboxHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizeableCheckboxHeader.java index 83d93bc..275ed8a 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizeableCheckboxHeader.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/ResizeableCheckboxHeader.java @@ -11,15 +11,17 @@ import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.cellview.client.Column; public class ResizeableCheckboxHeader<T> extends ResizableHeader<T> { - private final CheckboxHeader checkboxHeaderDelegate; + private final AbstractCheckboxHeader checkboxHeaderDelegate; - public ResizeableCheckboxHeader(CheckboxHeader checkboxHeader, + public ResizeableCheckboxHeader(AbstractCheckboxHeader checkboxHeader, Column<T, ?> column, HasResizableColumns<T> table) { - super(checkboxHeader.getTitle(), column, table, + super(new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant(""), checkboxHeader.getTooltip()), //$NON-NLS-1$ + column, table, new SafeHtmlCell() { @Override public Set<String> getConsumedEvents() { @@ -30,7 +32,7 @@ set.addAll(super.getConsumedEvents()); return set; } - }); + }, true); this.checkboxHeaderDelegate = checkboxHeader; } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SafeHtmlHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SafeHtmlHeader.java new file mode 100644 index 0000000..d6c7708 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SafeHtmlHeader.java @@ -0,0 +1,64 @@ +package org.ovirt.engine.ui.common.widget.table.header; + +import org.ovirt.engine.ui.common.widget.table.cell.SafeHtmlCell; +import org.ovirt.engine.ui.common.widget.table.column.ColumnWithElementId; + +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; + +/** + * A Header that renders SafeHtml. Supports tooltips. Supports element-id framework. + * + * @param <H> Cell data type. + */ +public class SafeHtmlHeader extends AbstractHeader<SafeHtml> implements ColumnWithElementId, TooltipHeader { + + private SafeHtml headerText; + private SafeHtml tooltipText; + + public static final SafeHtmlHeader BLANK_HEADER = new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant("")); //$NON-NLS-1$ + + public SafeHtmlHeader(SafeHtmlCell cell) { + super(cell); + } + + public SafeHtmlHeader(SafeHtml headerText) { + super(new SafeHtmlCell()); + this.headerText = headerText; + } + + public SafeHtmlHeader(SafeHtml headerText, SafeHtml tooltipText) { + super(new SafeHtmlCell()); + this.headerText = headerText; + this.tooltipText = tooltipText; + } + + public static SafeHtmlHeader fromSafeConstant(String headerText) { + return new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant(headerText)); + } + + public SafeHtmlCell getCell() { + return (SafeHtmlCell) super.getCell(); + } + + @Override + public SafeHtml getTooltip() { + return tooltipText; + } + + @Override + public SafeHtml getValue() { + return headerText; + } + + protected void setValue(SafeHtml headerText) { + this.headerText = headerText; + } + + protected void setTooltip(SafeHtml tooltipText) { + this.tooltipText = tooltipText; + } + + + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SelectAllCheckBoxHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SelectAllCheckBoxHeader.java index 34e7206..c175923 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SelectAllCheckBoxHeader.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/SelectAllCheckBoxHeader.java @@ -9,6 +9,13 @@ import com.google.gwt.user.cellview.client.Header; import com.google.gwt.view.client.SelectionModel; +/** + * SelectAllCheckboxHeader. Does not support tooltips. + * + * TODO rename to AbstractSelectAllCheckBoxHeader + * + * @param <T> + */ public abstract class SelectAllCheckBoxHeader<T> extends Header<Boolean> { public SelectAllCheckBoxHeader() { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/TooltipHeader.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/TooltipHeader.java new file mode 100644 index 0000000..f1b2cca --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/header/TooltipHeader.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.ui.common.widget.table.header; + +import com.google.gwt.safehtml.shared.SafeHtml; + +public interface TooltipHeader { + + /** + * <p> + * Implement this to return tooltip content for a header. Since it's a table header, + * you'll likely use a constant. + * </p> + * <p> + * The tooltip cell will then use this value when rendering the header. + * </p> + * + * @param object + * @return tooltip content + */ + public SafeHtml getTooltip(); +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java index a6dea6d..b4753f9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java @@ -8,11 +8,11 @@ import org.ovirt.engine.ui.common.CommonApplicationTemplates; import org.ovirt.engine.ui.common.system.ClientStorage; -import org.ovirt.engine.ui.common.widget.table.cell.SafeHtmlCell; import org.ovirt.engine.ui.common.widget.table.column.EmptyColumn; -import org.ovirt.engine.ui.common.widget.table.header.CheckboxHeader; +import org.ovirt.engine.ui.common.widget.table.header.AbstractCheckboxHeader; import org.ovirt.engine.ui.common.widget.table.header.ResizableHeader; import org.ovirt.engine.ui.common.widget.table.header.ResizeableCheckboxHeader; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.models.GridController; import com.google.gwt.core.shared.GWT; @@ -56,7 +56,7 @@ private boolean columnResizingEnabled = false; private boolean columnResizePersistenceEnabled = false; - private boolean applyResizableHeaderStyle = true; + private boolean applyHeaderStyle = true; // used to store column width preferences private ClientStorage clientStorage; @@ -98,16 +98,29 @@ super(keyProvider); } - /** - * {@inheritDoc} - * <p> - * When calling this method, consider using a header that supports displaying tooltip in case the header content - * doesn't fit the header element. - */ @Override public void addColumn(Column<T, ?> column, Header<?> header) { - super.addColumn(column, wrapHeader(header, column)); + // build resizable headers, if necessary + if (columnResizingEnabled && header instanceof AbstractCheckboxHeader) { + header = createResizableCheckboxHeader(header, column); + } + else if (columnResizingEnabled) { + header = createResizableHeader(column, header); + } + else if (applyHeaderStyle && header instanceof SafeHtmlHeader) { + SafeHtmlHeader safeHtmlHeader = (SafeHtmlHeader) header; + // not using Resizeable header, but still want it to look that way. + // nonResizeableColumnHeader does that. + // TODO nonResizeableColumnHeader copy-pastes CSS. fix. + SafeHtml newValue = templates.nonResizeableColumnHeader(safeHtmlHeader.getValue()); + header = new SafeHtmlHeader(newValue, safeHtmlHeader.getTooltip()); + } + + // actually add the column + super.addColumn(column, header); + + // add emptyNoWidthColumn if necessary if (columnResizingEnabled) { if (emptyNoWidthColumn != null) { removeColumn(emptyNoWidthColumn); @@ -115,84 +128,42 @@ // Add empty, no-width column as the last column emptyNoWidthColumn = new EmptyColumn<T>(); - addColumn(emptyNoWidthColumn); + super.addColumn(emptyNoWidthColumn); } } - /** - * Adds a new column, without specifying column width. - */ - @Override + public void addColumnAndSetWidth(Column<T, ?> column, Header<?> header, String width) { + addColumn(column, header); + setColumnWidth(column, width); + } + public void addColumn(Column<T, ?> column, String headerText) { - addColumn(column, createHeader(column, headerText, false)); + Header<?> header = new SafeHtmlHeader(SafeHtmlUtils.fromString(headerText)); + addColumn(column, header); } - /** - * Adds a new column with SafeHtml header text, without specifying column width. - */ - @Override - public void addColumn(Column<T, ?> column, SafeHtml headerHtml) { - addColumn(column, createHeader(column, headerHtml)); - } - - /** - * Adds a new column, setting the column width. - */ public void addColumnAndSetWidth(Column<T, ?> column, String headerText, String width) { addColumn(column, headerText); setColumnWidth(column, width); } - /** - * Adds a new column with SafeHtml header text, setting the column width. - */ - public void addColumnAndSetWidth(Column<T, ?> column, SafeHtml headerHtml, String width) { - addColumn(column, headerHtml); + public void addColumnWithHtmlHeader(Column<T, ?> column, SafeHtml headerHtml) { + Header<?> header = new SafeHtmlHeader(headerHtml); + addColumn(column, header); + } + + public void addColumnWithHtmlHeader(Column<T, ?> column, SafeHtml headerHtml, String width) { + Header<?> header = new SafeHtmlHeader(headerHtml); + addColumn(column, header); setColumnWidth(column, width); } - /** - * Adds a new column with HTML header text, without specifying column width. - * <p> - * {@code headerHtml} must honor the SafeHtml contract as specified in - * {@link com.google.gwt.safehtml.shared.SafeHtmlUtils#fromSafeConstant(String) SafeHtmlUtils.fromSafeConstant}. - */ - public void addColumnWithHtmlHeader(Column<T, ?> column, String headerHtml) { - addColumn(column, createHeader(column, headerHtml, true)); - } - - /** - * Adds a new column with HTML header text, setting the column width. - * <p> - * {@code headerHtml} must honor the SafeHtml contract as specified in - * {@link com.google.gwt.safehtml.shared.SafeHtmlUtils#fromSafeConstant(String) SafeHtmlUtils.fromSafeConstant}. - */ - public void addColumnWithHtmlHeader(Column<T, ?> column, String headerHtml, String width) { - addColumnWithHtmlHeader(column, headerHtml); - setColumnWidth(column, width); - } - - Header<?> createHeader(Column<T, ?> column, String headerTextOrHtml, boolean allowHtml) { - SafeHtml headerHtml = allowHtml ? SafeHtmlUtils.fromSafeConstant(headerTextOrHtml) - : SafeHtmlUtils.fromString(headerTextOrHtml); - return createHeader(column, headerHtml); - } - - Header<?> createHeader(Column<T, ?> column, SafeHtml headerHtml) { - return columnResizingEnabled ? new ResizableHeader<T>(headerHtml, column, this, applyResizableHeaderStyle) - : createSafeHtmlHeader(headerHtml); - } - - Header<?> createSafeHtmlHeader(final SafeHtml text) { - return new Header<SafeHtml>(new SafeHtmlCell()) { - @Override - public SafeHtml getValue() { - if (text != null && applyResizableHeaderStyle) { - return templates.nonResizeableColumnHeader(text); - } - return text; - } - }; + protected Header<?> createResizableHeader(Column<T, ?> column, Header<?> header) { + if (header instanceof SafeHtmlHeader) { + SafeHtmlHeader safeHtmlHeader = (SafeHtmlHeader) header; + return new ResizableHeader<T>(safeHtmlHeader, column, this, applyHeaderStyle); + } + return header; } /** @@ -200,9 +171,11 @@ * <p> * This method is called whenever a column is added to the table. */ - Header<?> wrapHeader(Header<?> header, Column<T, ?> column) { - return (columnResizingEnabled && header instanceof CheckboxHeader) - ? new ResizeableCheckboxHeader<T>((CheckboxHeader) header, column, this) : header; + protected Header<?> createResizableCheckboxHeader(Header<?> header, Column<T, ?> column) { + if (header instanceof AbstractCheckboxHeader) { + return new ResizeableCheckboxHeader<T>((AbstractCheckboxHeader) header, column, this); + } + return header; } /** @@ -214,22 +187,36 @@ /** * Ensures that the given column is added (or removed), unless it's already present (or absent). + */ + public void ensureColumnPresent(Column<T, ?> column, String headerText, boolean present, String width) { + ensureColumnPresent(column, new SafeHtmlHeader(SafeHtmlUtils.fromString(headerText)), present, null); + } + + /** + * Ensures that the given column is added (or removed), unless it's already present (or absent). + */ + public void ensureColumnPresent(Column<T, ?> column, SafeHtml headerHtml, boolean present, String width) { + ensureColumnPresent(column, new SafeHtmlHeader(headerHtml), present, null); + } + + /** + * Ensures that the given column is added (or removed), unless it's already present (or absent). * <p> * This method also sets the column width in case the column needs to be added. * @param column The column to ensure is there. - * @param headerText The header text associated with the column. + * @param header The header * @param present If true make sure the column is there, if false make sure it is not. * @param width The width of the column. */ - public void ensureColumnPresent(Column<T, ?> column, String headerText, boolean present, String width) { + public void ensureColumnPresent(Column<T, ?> column, SafeHtmlHeader header, boolean present, String width) { Integer index = getColumnIndex(column); boolean columnPresent = index != -1; if (!columnPresent) { // Add the column if (width == null) { - addColumnWithHtmlHeader(column, headerText); + addColumn(column, header); } else { - addColumnWithHtmlHeader(column, headerText, width); + addColumnAndSetWidth(column, header, width); } index = getColumnIndex(column); } @@ -365,7 +352,7 @@ } protected void dontApplyResizableHeaderStyle() { - applyResizableHeaderStyle = false; + applyHeaderStyle = false; } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index de0a778..7ea440c 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -974,7 +974,7 @@ generateIds(); - priorityEditor.addEntityModelColumn(new AbstractTextColumn<EntityModel>() { + priorityEditor.addColumn(new AbstractTextColumn<EntityModel>() { @Override public String getValue(EntityModel model) { return model.getTitle(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/TemplateInterfaceListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/TemplateInterfaceListModelTable.java index c797a78b..752b903 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/TemplateInterfaceListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/template/TemplateInterfaceListModelTable.java @@ -60,7 +60,7 @@ } }; - getTable().addColumnWithHtmlHeader(pluggedColumn, constants.plugged(), "90px"); //$NON-NLS-1$ + getTable().addColumn(pluggedColumn, constants.plugged(), "90px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> networkNameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override @@ -102,7 +102,7 @@ } }; - getTable().addColumnWithHtmlHeader(linkStateColumn, constants.linkStateNetworkInterface(), "90px"); //$NON-NLS-1$ + getTable().addColumn(linkStateColumn, constants.linkStateNetworkInterface(), "90px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> typeColumn = new AbstractEnumColumn<VmNetworkInterface, VmInterfaceType>() { @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/PoolInterfaceListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/PoolInterfaceListModelTable.java index e228c88..5bfd0ce 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/PoolInterfaceListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/PoolInterfaceListModelTable.java @@ -64,7 +64,7 @@ } }; - getTable().addColumnWithHtmlHeader(pluggedColumn, constants.plugged(), "60px"); //$NON-NLS-1$ + getTable().addColumn(pluggedColumn, constants.plugged(), "60px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> networkNameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override @@ -107,7 +107,7 @@ } }; - getTable().addColumnWithHtmlHeader(linkStateColumn, constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$ + getTable().addColumn(linkStateColumn, constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> typeColumn = new AbstractEnumColumn<VmNetworkInterface, VmInterfaceType>() { @Override @@ -150,8 +150,7 @@ return null; } }; - getTable().addColumnWithHtmlHeader(speedColumn, - templates.sub(constants.speedInterface(), constants.mbps()).asString()); + getTable().addColumnWithHtmlHeader(speedColumn, templates.sub(constants.speedInterface(), constants.mbps())); AbstractTextColumn<VmNetworkInterface> rxColumn = new AbstractRxTxRateColumn<VmNetworkInterface>() { @Override @@ -173,8 +172,7 @@ return null; } }; - getTable().addColumnWithHtmlHeader(rxColumn, - templates.sub(constants.rxRate(), constants.mbps()).asString()); + getTable().addColumnWithHtmlHeader(rxColumn, templates.sub(constants.rxRate(), constants.mbps())); AbstractTextColumn<VmNetworkInterface> txColumn = new AbstractRxTxRateColumn<VmNetworkInterface>() { @Override @@ -196,8 +194,7 @@ return null; } }; - getTable().addColumnWithHtmlHeader(txColumn, - templates.sub(constants.txRate(), constants.mbps()).asString()); + getTable().addColumnWithHtmlHeader(txColumn, templates.sub(constants.txRate(), constants.mbps())); AbstractTextColumn<VmNetworkInterface> dropsColumn = new AbstractSumUpColumn<VmNetworkInterface>() { @Override @@ -212,8 +209,7 @@ return null; } }; - getTable().addColumnWithHtmlHeader(dropsColumn, - templates.sub(constants.dropsInterface(), constants.pkts()).asString(), null); + getTable().addColumnWithHtmlHeader(dropsColumn, templates.sub(constants.dropsInterface(), constants.pkts())); } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java index 1e12416..b990d04 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java @@ -110,7 +110,7 @@ } }; pluggedColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(pluggedColumn, constants.plugged(), "60px"); //$NON-NLS-1$ + getTable().addColumn(pluggedColumn, constants.plugged(), "60px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> networkNameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override @@ -168,7 +168,7 @@ } }; linkStateColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(linkStateColumn, constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$ + getTable().addColumn(linkStateColumn, constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> typeColumn = new AbstractEnumColumn<VmNetworkInterface, VmInterfaceType>() { @Override @@ -214,7 +214,7 @@ } }; speedColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(speedColumn, + getTable().addColumn(speedColumn, templates.sub(constants.speedInterface(), constants.mbps()).asString(), "150px"); //$NON-NLS-1$ getTable().addActionButton(new UiCommandButtonDefinition<VmNetworkInterface>(getEventBus(), diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java index e0bcf33..a805a23 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java @@ -23,7 +23,7 @@ import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.table.column.AbstractCheckboxColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; -import org.ovirt.engine.ui.common.widget.table.header.CheckboxHeader; +import org.ovirt.engine.ui.common.widget.table.header.AbstractCheckboxHeader; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.TabName; import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkClusterModel; @@ -296,7 +296,7 @@ } void initEntityModelCellTable(final ApplicationConstants constants, final ApplicationTemplates templates) { - CheckboxHeader assignAllHeader = new CheckboxHeader(templates.textForCheckBoxHeader(constants.attachAll())) { + AbstractCheckboxHeader assignAllHeader = new AbstractCheckboxHeader() { @Override protected void selectionChanged(Boolean value) { for (NetworkClusterModel networkClusterModel : getClustersTableItems()) { @@ -326,8 +326,13 @@ } return false; } + + @Override + public SafeHtml getTooltip() { + return templates.textForCheckBoxHeader(constants.attachAll()); + } }; - CheckboxHeader requiredAllHeader = new CheckboxHeader(templates.textForCheckBoxHeader(constants.requiredAll())) { + AbstractCheckboxHeader requiredAllHeader = new AbstractCheckboxHeader() { @Override protected void selectionChanged(Boolean value) { for (NetworkClusterModel networkClusterModel : getClustersTableItems()) { @@ -350,6 +355,11 @@ public boolean isEnabled() { return isRequiredChangeable(); } + + @Override + public SafeHtml getTooltip() { + return templates.textForCheckBoxHeader(constants.requiredAll()); + } }; clustersTable.addColumn(new AbstractTextColumn<NetworkClusterModel>() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java index 0a4a667..70c9efa 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java @@ -3,6 +3,24 @@ import java.util.ArrayList; import java.util.Collections; +import org.ovirt.engine.core.common.queries.ConfigurationValues; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; +import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable.SelectionMode; +import org.ovirt.engine.ui.common.widget.table.column.AbstractCheckboxColumn; +import org.ovirt.engine.ui.common.widget.table.column.AbstractSafeHtmlColumn; +import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.AbstractCheckboxHeader; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkManageModel; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.ApplicationTemplates; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.widget.table.column.NetworkRoleColumnHelper; + import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.cell.client.FieldUpdater; import com.google.gwt.core.client.GWT; @@ -14,23 +32,6 @@ import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.inject.Inject; -import org.ovirt.engine.core.common.queries.ConfigurationValues; -import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; -import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; -import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; -import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable.SelectionMode; -import org.ovirt.engine.ui.common.widget.table.column.AbstractCheckboxColumn; -import org.ovirt.engine.ui.common.widget.table.column.AbstractSafeHtmlColumn; -import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; -import org.ovirt.engine.ui.common.widget.table.header.CheckboxHeader; -import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; -import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkManageModel; -import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkModel; -import org.ovirt.engine.ui.webadmin.ApplicationConstants; -import org.ovirt.engine.ui.webadmin.ApplicationResources; -import org.ovirt.engine.ui.webadmin.ApplicationTemplates; -import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; -import org.ovirt.engine.ui.webadmin.widget.table.column.NetworkRoleColumnHelper; public class ClusterManageNetworkPopupView extends AbstractModelBoundPopupView<ClusterNetworkManageModel> implements ClusterManageNetworkPopupPresenterWidget.ViewDef { @@ -80,11 +81,11 @@ networks.addColumn( new AttachedIndicatorCheckboxColumn(new AttachedIndicatorFieldUpdater()), - new AttachedIndicatorCheckboxHeader(templates.textForCheckBoxHeader(constants.assignAll())), "90px"); //$NON-NLS-1$ + new AttachedIndicatorCheckboxHeader(), "90px"); //$NON-NLS-1$ networks.addColumn( new RequiredIndicatorCheckboxColumn(new RequiredIndicatorFieldUpdater()), - new RequiredAllCheckboxHeader(templates.textForCheckBoxHeader(constants.requiredAll())), "110px"); //$NON-NLS-1$ + new RequiredAllCheckboxHeader(), "110px"); //$NON-NLS-1$ networks.addColumn( new VmNetworkImageSafeHtmlWithSafeHtmlTooltipColumn(constants), @@ -213,10 +214,7 @@ } } - private final class RequiredAllCheckboxHeader extends CheckboxHeader { - private RequiredAllCheckboxHeader(SafeHtml title) { - super(title); - } + private final class RequiredAllCheckboxHeader extends AbstractCheckboxHeader { @Override protected void selectionChanged(Boolean value) { @@ -249,6 +247,11 @@ } } return false; + } + + @Override + public SafeHtml getTooltip() { + return templates.textForCheckBoxHeader(constants.requiredAll()); } } @@ -287,10 +290,7 @@ } } - private final class AttachedIndicatorCheckboxHeader extends CheckboxHeader { - private AttachedIndicatorCheckboxHeader(SafeHtml title) { - super(title); - } + private final class AttachedIndicatorCheckboxHeader extends AbstractCheckboxHeader { @Override protected void selectionChanged(Boolean value) { @@ -324,6 +324,11 @@ } return false; } + + @Override + public SafeHtml getTooltip() { + return templates.textForCheckBoxHeader(constants.assignAll()); + } } private static final class MigrationNetworkIndicatorCheckboxColumn extends AbstractCheckboxColumn<ClusterNetworkModel> { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java index 5d23218..0dc640b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java @@ -16,7 +16,7 @@ import org.ovirt.engine.ui.common.widget.table.column.AbstractEditTextColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractListModelListBoxColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; -import org.ovirt.engine.ui.common.widget.table.header.CheckboxHeader; +import org.ovirt.engine.ui.common.widget.table.header.AbstractCheckboxHeader; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.ImportNetworksModel; import org.ovirt.engine.ui.uicommonweb.models.providers.ExternalNetwork; @@ -170,8 +170,8 @@ }; importedNetworks.addColumn(dcColumn, constants.dcNetworkHeader()); - CheckboxHeader publicAllHeader = - new CheckboxHeader(templates.textForCheckBoxHeader(constants.publicNetwork())) { + AbstractCheckboxHeader publicAllHeader = + new AbstractCheckboxHeader() { @Override protected void selectionChanged(Boolean value) { for (ExternalNetwork model : getAllImportedNetworks()) { @@ -202,6 +202,11 @@ .getHTML()), constants.networkPublicUseLabel())); } + + @Override + public SafeHtml getTooltip() { + return templates.textForCheckBoxHeader(constants.publicNetwork()); + } }; importedNetworks.addColumn(new AbstractCheckboxColumn<ExternalNetwork>(new FieldUpdater<ExternalNetwork, Boolean>() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java index 3a5cb280..ea60642 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java @@ -9,6 +9,7 @@ import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.ReportInit; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; @@ -28,6 +29,7 @@ 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; public class MainTabClusterView extends AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements @@ -64,7 +66,9 @@ getTable().addColumn(nameColumn, constants.nameCluster(), "150px"); //$NON-NLS-1$ CommentColumn<VDSGroup> commentColumn = new CommentColumn<VDSGroup>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ if (ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly) { AbstractTextColumn<VDSGroup> dataCenterColumn = new AbstractTextColumn<VDSGroup>() { @@ -127,9 +131,9 @@ @Override public String getValue(VDSGroup object) { if (object.getGroupHostsAndVms() == null) { - return ""; + return ""; //$NON-NLS-1$ } - return object.getGroupHostsAndVms().getHosts() + ""; + return object.getGroupHostsAndVms().getHosts() + ""; //$NON-NLS-1$ } @Override @@ -144,9 +148,9 @@ @Override public String getValue(VDSGroup object) { if (object.getGroupHostsAndVms() == null) { - return ""; + return ""; //$NON-NLS-1$ } - return object.getGroupHostsAndVms().getVms() + ""; + return object.getGroupHostsAndVms().getVms() + ""; //$NON-NLS-1$ } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDataCenterView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDataCenterView.java index acf4bee..8c98090 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDataCenterView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabDataCenterView.java @@ -12,6 +12,7 @@ import org.ovirt.engine.ui.common.widget.table.column.AbstractBooleanColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.ReportInit; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterListModel; @@ -31,6 +32,7 @@ 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; public class MainTabDataCenterView extends AbstractMainTabWithDetailsTableView<StoragePool, DataCenterListModel> implements MainTabDataCenterPresenter.ViewDef { @@ -68,7 +70,9 @@ getTable().addColumn(nameColumn, constants.nameDc(), "150px"); //$NON-NLS-1$ CommentColumn<StoragePool> commentColumn = new CommentColumn<StoragePool>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<StoragePool> storageTypeColumn = new AbstractBooleanColumn<StoragePool>( constants.storageTypeLocal(), constants.storageTypeShared()) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java index 165442b..28257f3 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java @@ -15,6 +15,7 @@ import org.ovirt.engine.ui.common.widget.table.SimpleActionTable; import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.ReportInit; @@ -38,6 +39,7 @@ 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; public class MainTabHostView extends AbstractMainTabWithDetailsTableView<VDS, HostListModel> implements MainTabHostPresenter.ViewDef { @@ -112,7 +114,9 @@ getTable().addColumn(nameColumn, constants.nameHost(), "150px"); //$NON-NLS-1$ CommentColumn<VDS> commentColumn = new CommentColumn<VDS>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<VDS> hostColumn = new AbstractTextColumn<VDS>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java index cbba878..d787b07 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java @@ -11,6 +11,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.inject.Inject; + import org.ovirt.engine.core.common.businessentities.network.NetworkView; import org.ovirt.engine.core.searchbackend.NetworkConditionFieldAutoCompleter; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; @@ -18,6 +19,7 @@ import org.ovirt.engine.ui.common.widget.table.column.AbstractLinkColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractSafeHtmlColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -73,7 +75,9 @@ getTable().addColumn(nameColumn, constants.nameNetwork(), "200px"); //$NON-NLS-1$ CommentColumn<NetworkView> commentColumn = new CommentColumn<>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<NetworkView> dcColumn = new AbstractTextColumn<NetworkView>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabPoolView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabPoolView.java index a15440d..fa898f9 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabPoolView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabPoolView.java @@ -7,6 +7,7 @@ import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.pools.PoolListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -17,6 +18,7 @@ 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; public class MainTabPoolView extends AbstractMainTabWithDetailsTableView<VmPool, PoolListModel> implements MainTabPoolPresenter.ViewDef { @@ -51,7 +53,9 @@ getTable().addColumn(nameColumn, constants.namePool(), "150px"); //$NON-NLS-1$ CommentColumn<VmPool> commentColumn = new CommentColumn<VmPool>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<VmPool> assignedColumn = new AbstractTextColumn<VmPool>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java index 9910974..ba3ac02 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java @@ -14,6 +14,7 @@ import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractStorageSizeColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.ReportInit; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.storage.StorageListModel; @@ -32,6 +33,7 @@ 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; public class MainTabStorageView extends AbstractMainTabWithDetailsTableView<StorageDomain, StorageListModel> implements MainTabStoragePresenter.ViewDef { @@ -69,7 +71,9 @@ getTable().addColumn(nameColumn, constants.domainNameStorage(), "150px"); //$NON-NLS-1$ CommentColumn<StorageDomain> commentColumn = new CommentColumn<StorageDomain>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<StorageDomain> domainTypeColumn = new AbstractEnumColumn<StorageDomain, StorageDomainType>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabTemplateView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabTemplateView.java index 5803f78..c5026b4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabTemplateView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabTemplateView.java @@ -10,6 +10,7 @@ import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -21,6 +22,7 @@ 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; public class MainTabTemplateView extends AbstractMainTabWithDetailsTableView<VmTemplate, TemplateListModel> implements MainTabTemplatePresenter.ViewDef { @@ -75,7 +77,9 @@ getTable().addColumn(versionNameColumn, constants.versionTemplate(), "150px"); //$NON-NLS-1$ CommentColumn<VmTemplate> commentColumn = new CommentColumn<VmTemplate>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<VmTemplate> creationDateColumn = new AbstractGeneralDateTimeColumn<VmTemplate>() { @Override 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 91c2e2f..954a5e9 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 @@ -16,6 +16,7 @@ import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractSafeHtmlColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; +import org.ovirt.engine.ui.common.widget.table.header.SafeHtmlHeader; import org.ovirt.engine.ui.uicommonweb.ReportInit; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; @@ -95,7 +96,9 @@ getTable().addColumn(nameColumn, constants.nameVm(), "120px"); //$NON-NLS-1$ CommentColumn<VM> commentColumn = new CommentColumn<VM>(); - getTable().addColumnWithHtmlHeader(commentColumn, commentColumn.getHeaderHtml(), "30px"); //$NON-NLS-1$ + getTable().addColumn(commentColumn, + new SafeHtmlHeader(commentColumn.getHeaderHtml(), SafeHtmlUtils.fromSafeConstant(constants.commentLabel())), + "30px"); //$NON-NLS-1$ AbstractTextColumn<VM> hostColumn = new AbstractTextColumn<VM>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVnicProfileView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVnicProfileView.java index 4b9f2f3..1a274e9 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVnicProfileView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVnicProfileView.java @@ -124,7 +124,7 @@ } }; portMirroringColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(portMirroringColumn, constants.portMirroringVnicProfile(), "85px"); //$NON-NLS-1$ + getTable().addColumn(portMirroringColumn, constants.portMirroringVnicProfile(), "85px"); //$NON-NLS-1$ AbstractTextColumn<VnicProfileView> descriptionColumn = new AbstractTextColumn<VnicProfileView>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java index 9225f4c..9e03c0e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java @@ -94,18 +94,12 @@ // Statistics Panel table.addColumn(new EmptyColumn(), constants.macInterface(), "120px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.speedInterface(), constants.mbps()) - .asString(), "100px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.rxRate(), constants.mbps()) - .asString(), "100px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.txRate(), constants.mbps()) - .asString(), "100px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.rxTotal(), constants.bytes()) - .asString(), "150px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.txTotal(), constants.bytes()) - .asString(), "150px"); //$NON-NLS-1$ - table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.dropsInterface(), constants.pkts()) - .asString(), "100px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.speedInterface(), constants.mbps()), "100px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.rxRate(), constants.mbps()), "100px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.txRate(), constants.mbps()), "100px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.rxTotal(), constants.bytes()), "150px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.txTotal(), constants.bytes()), "150px"); //$NON-NLS-1$ + table.addColumnWithHtmlHeader(new EmptyColumn(), templates.sub(constants.dropsInterface(), constants.pkts()), "100px"); //$NON-NLS-1$ table.addActionButton(new WebAdminButtonDefinition<HostInterfaceLineModel>(constants.addEditInterface()) { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkProfileView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkProfileView.java index 7d29aa2..319f99e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkProfileView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkProfileView.java @@ -126,7 +126,7 @@ } }; portMirroringColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(portMirroringColumn, constants.portMirroringVnicProfile(), "85px"); //$NON-NLS-1$ + getTable().addColumn(portMirroringColumn, constants.portMirroringVnicProfile(), "85px"); //$NON-NLS-1$ AbstractTextColumn<VnicProfileView> descriptionColumn = new AbstractTextColumn<VnicProfileView>() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java index a457722..93933ee 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java @@ -55,7 +55,7 @@ } }; portMirroringColumn.makeSortable(); - getTable().addColumnWithHtmlHeader(portMirroringColumn, constants.portMirroring(), "85px"); //$NON-NLS-1$ + getTable().addColumn(portMirroringColumn, constants.portMirroring(), "85px"); //$NON-NLS-1$ } }); ViewIdHandler.idHandler.generateAndSetIds(this); -- To view, visit https://gerrit.ovirt.org/38175 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I33f5fbd37bdbdf7a60dee0b14bcd8dbc11ac5b24 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
