Moti Asayag has uploaded a new change for review. Change subject: webadmin: Introduce a column for additional host statuses ......................................................................
webadmin: Introduce a column for additional host statuses The new column will be used to present the additional host statuses, such as updates available and external events. The current patch adds the 'update available' icon, when an upgrade is available for hosts. Change-Id: I5797668b9875b5b4b90aa4dfb992b5cd15ccdb2c Signed-off-by: Moti Asayag <masa...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java 4 files changed, 88 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/40635/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index df8bb1b..ad6ba3e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -2125,4 +2125,7 @@ @DefaultStringValue("Creation Date") String permissionsCreationDate(); + + @DefaultStringValue("Update available") + String updateAvailable(); } 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 660c029..d40a751 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 @@ -4,7 +4,6 @@ import java.util.LinkedList; import java.util.List; -import com.google.gwt.user.client.ui.HasHorizontalAlignment; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VdsSpmStatus; @@ -39,6 +38,7 @@ import org.ovirt.engine.ui.webadmin.widget.action.WebAdminMenuBarButtonDefinition; import org.ovirt.engine.ui.webadmin.widget.table.column.AbstractPercentColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.CommentColumn; +import org.ovirt.engine.ui.webadmin.widget.table.column.HostAdditionalStatusColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.HostStatusColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.ReasonColumn; import org.ovirt.engine.ui.webadmin.widget.table.column.VmCountColumn; @@ -47,6 +47,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.gwt.user.client.ui.HasHorizontalAlignment; import com.google.inject.Inject; public class MainTabHostView extends AbstractMainTabWithDetailsTableView<VDS, HostListModel<Void>> implements MainTabHostPresenter.ViewDef { @@ -104,6 +105,7 @@ getTable().enableColumnResizing(); getTable().addColumn(new HostStatusColumn<VDS>(), constants.empty(), "30px"); //$NON-NLS-1$ + getTable().addColumn(new HostAdditionalStatusColumn<VDS>(), constants.empty(), "30px"); //$NON-NLS-1$ AbstractTextColumn<VDS> nameColumn = new AbstractTextColumn<VDS>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java new file mode 100644 index 0000000..14f88f3 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java @@ -0,0 +1,35 @@ +package org.ovirt.engine.ui.webadmin.widget.table.cell; + +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.ui.common.widget.table.cell.AbstractCell; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.gin.AssetProvider; + +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.user.client.ui.AbstractImagePrototype; + +public class HostAdditionalStatusCell extends AbstractCell<VDS> { + + private final static ApplicationResources resources = AssetProvider.getResources(); + + @Override + public void render(Context context, VDS host, SafeHtmlBuilder sb, String id) { + // Nothing to render if no host is provided or if no updates are available: + if (host == null || !host.isUpdateAvailable()) { + return; + } + + ImageResource statusImage = resources.updateAvailableImage(); + + // Generate the HTML for the image: + SafeHtml statusImageHtml = + SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML()); + sb.append(statusImageHtml); + + sb.appendHtmlConstant("<div id=\"" + id + "\" style=\"text-align: center;\">"); //$NON-NLS-1$ //$NON-NLS-2$ + sb.appendHtmlConstant("</div>"); //$NON-NLS-1$ + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java new file mode 100644 index 0000000..230766a --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java @@ -0,0 +1,47 @@ +package org.ovirt.engine.ui.webadmin.widget.table.column; + +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.utils.PairQueryable; +import org.ovirt.engine.ui.common.widget.table.column.AbstractColumn; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.gin.AssetProvider; +import org.ovirt.engine.ui.webadmin.widget.table.cell.HostAdditionalStatusCell; + +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; + +public class HostAdditionalStatusColumn<S> extends AbstractColumn<S, VDS> { + + private final static ApplicationConstants constants = AssetProvider.getConstants(); + + public HostAdditionalStatusColumn() { + super(new HostAdditionalStatusCell()); + } + + @Override + public VDS getValue(S object) { + if (object instanceof VDS){ + return (VDS) object; + } + + if (object instanceof PairQueryable){ + if (((PairQueryable<?, ?>) object).getSecond() instanceof VDS) { + return (VDS) ((PairQueryable<?, ?>) object).getSecond(); + } + } + + return null; + } + + @Override + public SafeHtml getTooltip(S object) { + VDS host = getValue(object); + + if (host != null && host.isUpdateAvailable()) { + String tooltip = constants.updateAvailable(); + return SafeHtmlUtils.fromSafeConstant(tooltip); + } + + return null; + } +} -- To view, visit https://gerrit.ovirt.org/40635 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5797668b9875b5b4b90aa4dfb992b5cd15ccdb2c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches