From 8bef00496cbd45f5b143dea3b62c86d3af469485 Mon Sep 17 00:00:00 2001 From: asharani-murugesh Date: Mon, 22 Feb 2016 11:30:01 +0100 Subject: [PATCH] Rollout -added new custom label renderer Signed-off-by: asharani-murugesh --- hawkbit-ui/pom.xml | 4 +- .../eclipse/hawkbit/ui/AppWidgetSet.gwt.xml | 7 +- .../CustomRendererWidgetSet.gwt.xml} | 2 - .../client/HtmlButtonRendererConnector.java | 8 +- .../client/HtmlLabelRendererConnector.java | 16 +++ .../client/LinkRendererConnector.java | 8 +- ...tringDistributionBarRendererConnector.java | 8 +- .../client/renderers/HtmlButtonRenderer.java | 14 ++- .../client/renderers/HtmlLabelRenderer.java | 53 ++++++++++ .../client/renderers/LinkRenderer.java | 16 ++- .../StringDistributionBarRenderer.java | 24 +++-- .../renderers/HtmlButtonRenderer.java | 2 +- .../renderers/HtmlLabelRenderer.java | 14 +++ .../renderers/LinkRenderer.java | 2 +- .../StringDistributionBarRenderer.java | 2 +- .../ui/rollout/RolloutGroupListGrid.java | 68 +++++++----- .../hawkbit/ui/rollout/RolloutListGrid.java | 100 ++++++++++-------- .../hawkbit/ui/utils/HawkbitCommonUtil.java | 17 +++ .../ui/utils/SPUIComponetIdProvider.java | 5 + .../themes/hawkbit/customstyles/common.scss | 6 ++ 20 files changed, 265 insertions(+), 111 deletions(-) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar/DistributionBarRendererWidgetSet.gwt.xml => customrenderers/CustomRendererWidgetSet.gwt.xml} (99%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/HtmlButtonRendererConnector.java (60%) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlLabelRendererConnector.java rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/LinkRendererConnector.java (58%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/StringDistributionBarRendererConnector.java (67%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/renderers/HtmlButtonRenderer.java (62%) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlLabelRenderer.java rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/renderers/LinkRenderer.java (50%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/client/renderers/StringDistributionBarRenderer.java (83%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/renderers/HtmlButtonRenderer.java (85%) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlLabelRenderer.java rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/renderers/LinkRenderer.java (84%) rename hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/{distributionbar => customrenderers}/renderers/StringDistributionBarRenderer.java (85%) diff --git a/hawkbit-ui/pom.xml b/hawkbit-ui/pom.xml index 47ff990e5..be55a24f3 100644 --- a/hawkbit-ui/pom.xml +++ b/hawkbit-ui/pom.xml @@ -90,9 +90,9 @@ - DistributionBarRenderer + CustomRenderers 1 - org.eclipse.hawkbit.ui.distributionbar.DistributionBarRendererWidgetSet + org.eclipse.hawkbit.ui.customrenderers.CustomRendererWidgetSet diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AppWidgetSet.gwt.xml b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AppWidgetSet.gwt.xml index 3d55d1c75..31a67cacb 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AppWidgetSet.gwt.xml +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/AppWidgetSet.gwt.xml @@ -25,11 +25,12 @@ + name="org.vaadin.hene.flexibleoptiongroup.widgetset.FlexibleOptionGroupWidgetset" /> + - - + diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/DistributionBarRendererWidgetSet.gwt.xml b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/CustomRendererWidgetSet.gwt.xml similarity index 99% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/DistributionBarRendererWidgetSet.gwt.xml rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/CustomRendererWidgetSet.gwt.xml index 989054165..0697836a7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/DistributionBarRendererWidgetSet.gwt.xml +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/CustomRendererWidgetSet.gwt.xml @@ -1,5 +1,4 @@ - @@ -12,6 +11,5 @@ - diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/HtmlButtonRendererConnector.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlButtonRendererConnector.java similarity index 60% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/HtmlButtonRendererConnector.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlButtonRendererConnector.java index 78f2378e3..c02939a9c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/HtmlButtonRendererConnector.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlButtonRendererConnector.java @@ -1,14 +1,14 @@ -package org.eclipse.hawkbit.ui.distributionbar.client; +package org.eclipse.hawkbit.ui.customrenderers.client; import com.vaadin.client.connectors.ButtonRendererConnector; import com.vaadin.shared.ui.Connect; -@Connect(org.eclipse.hawkbit.ui.distributionbar.renderers.HtmlButtonRenderer.class) +@Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlButtonRenderer.class) public class HtmlButtonRendererConnector extends ButtonRendererConnector { private static final long serialVersionUID = 7987417436367399331L; @Override - public org.eclipse.hawkbit.ui.distributionbar.client.renderers.HtmlButtonRenderer getRenderer() { - return (org.eclipse.hawkbit.ui.distributionbar.client.renderers.HtmlButtonRenderer) super.getRenderer(); + public org.eclipse.hawkbit.ui.customrenderers.client.renderers.HtmlButtonRenderer getRenderer() { + return (org.eclipse.hawkbit.ui.customrenderers.client.renderers.HtmlButtonRenderer) super.getRenderer(); } } \ No newline at end of file diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlLabelRendererConnector.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlLabelRendererConnector.java new file mode 100644 index 000000000..b36712e8f --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/HtmlLabelRendererConnector.java @@ -0,0 +1,16 @@ +package org.eclipse.hawkbit.ui.customrenderers.client; + +import com.vaadin.client.connectors.AbstractRendererConnector; +import com.vaadin.shared.ui.Connect; + +@Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer.class) +public class HtmlLabelRendererConnector extends AbstractRendererConnector { + + private static final long serialVersionUID = 7697966991925490786L; + + @Override + public org.eclipse.hawkbit.ui.customrenderers.client.renderers.HtmlLabelRenderer getRenderer() { + return (org.eclipse.hawkbit.ui.customrenderers.client.renderers.HtmlLabelRenderer) super.getRenderer(); + } + +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/LinkRendererConnector.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/LinkRendererConnector.java similarity index 58% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/LinkRendererConnector.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/LinkRendererConnector.java index 3c23ff0bb..dcd308d8d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/LinkRendererConnector.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/LinkRendererConnector.java @@ -1,14 +1,14 @@ -package org.eclipse.hawkbit.ui.distributionbar.client; +package org.eclipse.hawkbit.ui.customrenderers.client; import com.vaadin.client.connectors.ButtonRendererConnector; import com.vaadin.shared.ui.Connect; -@Connect(org.eclipse.hawkbit.ui.distributionbar.renderers.LinkRenderer.class) +@Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.LinkRenderer.class) public class LinkRendererConnector extends ButtonRendererConnector { private static final long serialVersionUID = 7987417436367399331L; @Override - public org.eclipse.hawkbit.ui.distributionbar.client.renderers.LinkRenderer getRenderer() { - return (org.eclipse.hawkbit.ui.distributionbar.client.renderers.LinkRenderer) super.getRenderer(); + public org.eclipse.hawkbit.ui.customrenderers.client.renderers.LinkRenderer getRenderer() { + return (org.eclipse.hawkbit.ui.customrenderers.client.renderers.LinkRenderer) super.getRenderer(); } } \ No newline at end of file diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/StringDistributionBarRendererConnector.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/StringDistributionBarRendererConnector.java similarity index 67% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/StringDistributionBarRendererConnector.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/StringDistributionBarRendererConnector.java index 046a5be70..bd1485312 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/StringDistributionBarRendererConnector.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/StringDistributionBarRendererConnector.java @@ -1,16 +1,16 @@ -package org.eclipse.hawkbit.ui.distributionbar.client; +package org.eclipse.hawkbit.ui.customrenderers.client; import com.vaadin.client.connectors.AbstractRendererConnector; import com.vaadin.shared.ui.Connect; -@Connect(org.eclipse.hawkbit.ui.distributionbar.renderers.StringDistributionBarRenderer.class) +@Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.StringDistributionBarRenderer.class) public class StringDistributionBarRendererConnector extends AbstractRendererConnector { private static final long serialVersionUID = 7697966991925490786L; @Override - public org.eclipse.hawkbit.ui.distributionbar.client.renderers.StringDistributionBarRenderer getRenderer() { - org.eclipse.hawkbit.ui.distributionbar.client.renderers.StringDistributionBarRenderer renderer = (org.eclipse.hawkbit.ui.distributionbar.client.renderers.StringDistributionBarRenderer) super.getRenderer(); + public org.eclipse.hawkbit.ui.customrenderers.client.renderers.StringDistributionBarRenderer getRenderer() { + org.eclipse.hawkbit.ui.customrenderers.client.renderers.StringDistributionBarRenderer renderer = (org.eclipse.hawkbit.ui.customrenderers.client.renderers.StringDistributionBarRenderer) super.getRenderer(); renderer.setUiWidgetClassName(StringDistributionBarRendererConnector.this.getConnection().getUIConnector().getWidget().getParent().getStyleName()); return renderer; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/HtmlButtonRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java similarity index 62% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/HtmlButtonRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java index a742e3b1d..15fc72ada 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/HtmlButtonRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.client.renderers; +package org.eclipse.hawkbit.ui.customrenderers.client.renderers; import com.google.gwt.user.client.ui.Button; import com.vaadin.client.renderers.ButtonRenderer; @@ -10,12 +10,18 @@ public class HtmlButtonRenderer extends ButtonRenderer { if (text != null) { button.setHTML(text); } - button.setStylePrimaryName("v-button"); - button.addStyleName( - "tiny v-button-tiny borderless v-button-borderless icon-only v-button-icon-only button-no-border v-button-button-no-border"); + applystyles(button); // this is to allow the button to disappear, if the text is null button.setVisible(text != null); button.getElement().setId("rollout.action.button.id"); button.getElement().setTitle("action"); } + + private void applystyles(Button button) { + button.setStylePrimaryName("v-button"); + button.addStyleName("tiny v-button-tiny"); + button.addStyleName("borderless v-button-borderless"); + button.addStyleName("icon-only v-button-icon-only"); + button.addStyleName("button-no-border v-button-button-no-border"); + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlLabelRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlLabelRenderer.java new file mode 100644 index 000000000..8899c49b3 --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlLabelRenderer.java @@ -0,0 +1,53 @@ +package org.eclipse.hawkbit.ui.customrenderers.client.renderers; + +import java.util.HashMap; +import java.util.Map; + +import com.google.gwt.core.client.GWT; +import com.vaadin.client.renderers.WidgetRenderer; +import com.vaadin.client.ui.VLabel; +import com.vaadin.client.widget.grid.RendererCellReference; + +public class HtmlLabelRenderer extends WidgetRenderer { + + @Override + public VLabel createWidget() { + return GWT.create(VLabel.class); + } + + @Override + public void render(RendererCellReference cell, String input, VLabel label) { + Map map = formatInput(input); + String value = map.containsKey("value") ? map.get("value") : null; + String description = map.containsKey("description") ? map.get("description") : null; + String style = map.containsKey("style") ? map.get("style") : null; + String id = map.containsKey("id") ? map.get("id") : null; + + if (value != null) { + label.setHTML("&#x" + Integer.toHexString(Integer.parseInt(value)) + ";"); + } + applyStyle(label, style); + label.setTitle(description); + label.getElement().setId(id); + } + + private void applyStyle(VLabel label, String style) { + label.setStylePrimaryName("v-label"); + label.addStyleName("small v-label-small"); + label.addStyleName("font-icon v-label-font-icon"); + if (style != null) { + label.addStyleName(style + " v-label-" + style); + } + } + + private Map formatInput(String input) { + Map details = new HashMap<>(); + String[] tempData = input.split(","); + for (String statusWithCount : tempData) { + String[] statusWithCountList = statusWithCount.split(":"); + details.put(statusWithCountList[0], statusWithCountList[1]); + } + return details; + } + +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/LinkRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java similarity index 50% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/LinkRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java index f20b20ec9..ff215a0a4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/LinkRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.client.renderers; +package org.eclipse.hawkbit.ui.customrenderers.client.renderers; import com.google.gwt.user.client.ui.Button; import com.vaadin.client.renderers.ButtonRenderer; @@ -8,11 +8,17 @@ public class LinkRenderer extends ButtonRenderer { @Override public void render(RendererCellReference cell, String text, Button button) { button.setText(text); - button.setStylePrimaryName("v-button"); - button.addStyleName( - "borderless v-button-borderless small v-button-small on-focus-no-border v-button-on-focus-no-border link v-button-link"); + applystyle(button); // this is to allow the button to disappear, if the text is null button.setVisible(text != null); - button.getElement().setId("rollout.action.button.id"); + button.getElement().setId(new StringBuilder("link").append(".").append(text).toString()); + } + + private void applystyle(Button button) { + button.setStylePrimaryName("v-button"); + button.addStyleName("borderless v-button-borderless"); + button.addStyleName("small v-button-small"); + button.addStyleName("on-focus-no-border v-button-on-focus-no-border"); + button.addStyleName("link v-button-link"); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/StringDistributionBarRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/StringDistributionBarRenderer.java similarity index 83% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/StringDistributionBarRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/StringDistributionBarRenderer.java index d066e0175..7082ab99c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/client/renderers/StringDistributionBarRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/StringDistributionBarRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.client.renderers; +package org.eclipse.hawkbit.ui.customrenderers.client.renderers; import java.util.Collection; import java.util.HashMap; @@ -40,21 +40,25 @@ public class StringDistributionBarRenderer extends WidgetRenderer entryVal : map.entrySet()) { - Long count = entryVal.getValue(); - if (count > 0) { - setBarPartSize(widget, entryVal.getKey().toLowerCase(), count.intValue(), index); - index++; - } - } + setThePartDetails(widget, map); } } widget.updateParts(); } } + private void setThePartDetails(GwtDistributionBar widget, Map map) { + widget.setNumberOfParts(getNumberOfParts(map.values())); + int index = 0; + for (Entry entryVal : map.entrySet()) { + Long count = entryVal.getValue(); + if (count > 0) { + setBarPartSize(widget, entryVal.getKey().toLowerCase(), count.intValue(), index); + index++; + } + } + } + private Map formatData(String input) { Map details = new HashMap<>(); String[] tempData = input.split(","); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/HtmlButtonRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java similarity index 85% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/HtmlButtonRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java index 0ac480fb2..205eab5db 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/HtmlButtonRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.renderers; +package org.eclipse.hawkbit.ui.customrenderers.renderers; import com.vaadin.ui.renderers.ButtonRenderer; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlLabelRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlLabelRenderer.java new file mode 100644 index 000000000..bc519ce8a --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlLabelRenderer.java @@ -0,0 +1,14 @@ +package org.eclipse.hawkbit.ui.customrenderers.renderers; + +import com.vaadin.ui.Grid.AbstractRenderer; + +public class HtmlLabelRenderer extends AbstractRenderer { + + private static final long serialVersionUID = -7675588068526774915L; + /** + * Creates a new text renderer + */ + public HtmlLabelRenderer() { + super(String.class, null); + } +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/LinkRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/LinkRenderer.java similarity index 84% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/LinkRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/LinkRenderer.java index f007b6bf8..ad9a5f371 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/LinkRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/LinkRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.renderers; +package org.eclipse.hawkbit.ui.customrenderers.renderers; import com.vaadin.ui.renderers.ButtonRenderer; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/StringDistributionBarRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/StringDistributionBarRenderer.java similarity index 85% rename from hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/StringDistributionBarRenderer.java rename to hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/StringDistributionBarRenderer.java index 4a8e3ff73..3f6f301d2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributionbar/renderers/StringDistributionBarRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/StringDistributionBarRenderer.java @@ -1,4 +1,4 @@ -package org.eclipse.hawkbit.ui.distributionbar.renderers; +package org.eclipse.hawkbit.ui.customrenderers.renderers; import com.vaadin.ui.Grid.AbstractRenderer; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupListGrid.java index a467eae50..0cc15bcde 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupListGrid.java @@ -14,7 +14,10 @@ import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; -import org.eclipse.hawkbit.ui.distributionbar.renderers.LinkRenderer; +import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus; +import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; +import org.eclipse.hawkbit.ui.customrenderers.renderers.LinkRenderer; +import org.eclipse.hawkbit.ui.customrenderers.renderers.StringDistributionBarRenderer; import org.eclipse.hawkbit.ui.rollout.event.RolloutEvent; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; @@ -37,7 +40,6 @@ import com.vaadin.server.FontAwesome; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent; -import com.vaadin.ui.UI; import com.vaadin.ui.renderers.HtmlRenderer; @SpringComponent @@ -251,8 +253,9 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { eventBus.publish(this, RolloutEvent.SHOW_ROLLOUT_GROUP_TARGETS); } + private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlRenderer(), + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new Converter() { private static final long serialVersionUID = 1L; @@ -265,29 +268,7 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { @Override public String convertToPresentation(final RolloutGroupStatus value, final Class targetType, final Locale locale) { - String result = null; - switch (value) { - case FINISHED: - result = "
" + FontAwesome.CHECK_CIRCLE.getHtml() + "
"; - break; - case SCHEDULED: - result = "
" + FontAwesome.BULLSEYE.getHtml() + "
"; - break; - case RUNNING: - result = "
" + FontAwesome.ADJUST.getHtml() + "
"; - break; - case READY: - result = "
" - + FontAwesome.DOT_CIRCLE_O.getHtml() + "
"; - break; - case ERROR: - result = "
" + FontAwesome.EXCLAMATION_CIRCLE.getHtml() - + "
"; - break; - default: - break; - } - return result; + return convertRolloutGroupStatusToString(value); } @Override @@ -301,10 +282,43 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { } }); } + + + + private String convertRolloutGroupStatusToString(final RolloutGroupStatus value) { + String result = null; + switch (value) { + case FINISHED: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), + value.name().toLowerCase(), "statusIconGreen", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + break; + case SCHEDULED: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.BULLSEYE.getCodepoint()), + value.name().toLowerCase(), "statusIconBlue", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + break; + case RUNNING: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.ADJUST.getCodepoint()), + value.name().toLowerCase(), "statusIconYellow", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + break; + case READY: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), + value.name().toLowerCase(), "statusIconLightBlue", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + break; + case ERROR: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), + value.name().toLowerCase(), "statusIconRed", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + break; + default: + break; + } + return result; + + } + private void addDetailStatusColumn() { getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer( - new org.eclipse.hawkbit.ui.distributionbar.renderers.StringDistributionBarRenderer(), + new StringDistributionBarRenderer(), new Converter() { private static final long serialVersionUID = 2660476405836705932L; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListGrid.java index 7f59067e0..def527d5c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListGrid.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.Map; -import java.util.Map.Entry; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @@ -16,9 +14,9 @@ import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; -import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus.Status; -import org.eclipse.hawkbit.ui.distributionbar.renderers.HtmlButtonRenderer; -import org.eclipse.hawkbit.ui.distributionbar.renderers.LinkRenderer; +import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlButtonRenderer; +import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; +import org.eclipse.hawkbit.ui.customrenderers.renderers.LinkRenderer; import org.eclipse.hawkbit.ui.rollout.RolloutListTable.ACTION; import org.eclipse.hawkbit.ui.rollout.RolloutListTable.ContextMenuData; import org.eclipse.hawkbit.ui.rollout.event.RolloutEvent; @@ -40,6 +38,7 @@ import org.vaadin.spring.events.EventBus; import org.vaadin.spring.events.EventScope; import org.vaadin.spring.events.annotation.EventBusListenerMethod; +import com.google.common.base.Strings; import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.data.util.PropertyValueGenerator; @@ -48,6 +47,7 @@ import com.vaadin.server.AbstractClientConnector; import com.vaadin.server.FontAwesome; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; +import com.vaadin.ui.Label; import com.vaadin.ui.UI; import com.vaadin.ui.Window; import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent; @@ -84,6 +84,8 @@ public class RolloutListGrid extends AbstractSimpleGrid { protected void init() { super.init(); eventBus.subscribe(this); + setColumnReorderingAllowed(true); + isColumnReorderingAllowed(); } @PreDestroy @@ -315,7 +317,7 @@ public class RolloutListGrid extends AbstractSimpleGrid { private void addDetailStatusColumn() { getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer( - new org.eclipse.hawkbit.ui.distributionbar.renderers.StringDistributionBarRenderer(), + new org.eclipse.hawkbit.ui.customrenderers.renderers.StringDistributionBarRenderer(), new Converter() { private static final long serialVersionUID = 2660476405836705932L; @@ -346,7 +348,7 @@ public class RolloutListGrid extends AbstractSimpleGrid { } private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlRenderer(), + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new Converter() { private static final long serialVersionUID = 1L; @@ -359,42 +361,7 @@ public class RolloutListGrid extends AbstractSimpleGrid { @Override public String convertToPresentation(final RolloutStatus value, final Class targetType, final Locale locale) { - String result = null; - switch (value) { - case FINISHED: - result = "
" + FontAwesome.CHECK_CIRCLE.getHtml() + "
"; - break; - case PAUSED: - result = "
" + FontAwesome.PAUSE.getHtml() + "
"; - break; - case RUNNING: - result = "
"; - break; - case READY: - result = "
" - + FontAwesome.DOT_CIRCLE_O.getHtml() + "
"; - break; - case STOPPED: - result = "
" + FontAwesome.STOP.getHtml() + "
"; - break; - case CREATING: - result = "
"; - break; - case STARTING: - result = "
"; - break; - case ERROR_CREATING: - result = "
" + FontAwesome.EXCLAMATION_CIRCLE.getHtml() - + "
"; - break; - case ERROR_STARTING: - result = "
" + FontAwesome.EXCLAMATION_CIRCLE.getHtml() - + "
"; - break; - default: - break; - } - return result; + return convertRolloutStatusToString(value); } @Override @@ -409,6 +376,53 @@ public class RolloutListGrid extends AbstractSimpleGrid { }); } + private String convertRolloutStatusToString(final RolloutStatus value) { + String result = null; + switch (value) { + case FINISHED: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), + value.name().toLowerCase(), "statusIconGreen", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case PAUSED: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.PAUSE.getCodepoint()), + value.name().toLowerCase(), "statusIconBlue", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case RUNNING: + result = HawkbitCommonUtil.getFormattedString(null, value.name().toLowerCase(), "yellowSpinner", + SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case READY: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), + value.name().toLowerCase(), "statusIconLightBlue", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case STOPPED: + result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.STOP.getCodepoint()), + value.name().toLowerCase(), "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case CREATING: + result = HawkbitCommonUtil.getFormattedString(null, value.name().toLowerCase(), "greySpinner", + SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case STARTING: + result = HawkbitCommonUtil.getFormattedString(null, value.name().toLowerCase(), "blueSpinner", + SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case ERROR_CREATING: + result = HawkbitCommonUtil.getFormattedString( + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), value.name().toLowerCase(), + "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + case ERROR_STARTING: + result = HawkbitCommonUtil.getFormattedString( + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), value.name().toLowerCase(), + "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + break; + default: + break; + } + return result; + } + private void menuItemClicked(final ContextMenuItemClickEvent event) { final ContextMenuItem item = (ContextMenuItem) event.getSource(); final ContextMenuData contextMenuData = (ContextMenuData) item.getData(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java index 4627f1804..dd7ef4a28 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java @@ -48,6 +48,7 @@ import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer; import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition; import org.vaadin.alump.distributionbar.DistributionBar; +import com.google.common.base.Strings; import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.server.Sizeable.Unit; @@ -1369,5 +1370,21 @@ public final class HawkbitCommonUtil { } return finalVal; } + + public static String getFormattedString(String value, String description, String style, String id) { + StringBuilder val = new StringBuilder(); + if (!Strings.isNullOrEmpty(value)) { + val.append("value:").append(value).append(","); + } + if (!Strings.isNullOrEmpty(description)) { + val.append("description:").append(description).append(","); + } + if (!Strings.isNullOrEmpty(style)) { + val.append("style:").append(style).append(","); + } + val.append("id:").append(id); + return val.toString(); + } + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponetIdProvider.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponetIdProvider.java index 56e76c123..84346149c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponetIdProvider.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponetIdProvider.java @@ -827,6 +827,11 @@ public final class SPUIComponetIdProvider { * Rollout status label id. */ public static final String ROLLOUT_STATUS_LABEL_ID = "rollout.status.id"; + + /** + * Rollout group status label id. + */ + public static final String ROLLOUT_GROUP_STATUS_LABEL_ID = "rollout.group.status.id"; /** * Rollout % or count option group id. diff --git a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/common.scss b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/common.scss index 1a5fedba4..87ea5b0b9 100644 --- a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/common.scss +++ b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/common.scss @@ -276,4 +276,10 @@ .links { padding-left: 22px; } + + .font-icon{ + font-family:FontAwesome; + font-style:normal; + font-weight:normal; + } }