diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java index 0b080a6d9..7cd276258 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/grid/AbstractGrid.java @@ -14,6 +14,7 @@ import com.vaadin.data.Container; import com.vaadin.data.Container.Indexed; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.ui.Grid; +import com.vaadin.ui.Label; import com.vaadin.ui.themes.ValoTheme; /** @@ -31,15 +32,8 @@ public abstract class AbstractGrid extends Grid { setSizeFull(); setImmediate(true); setId(getGridId()); - //TODO these styles are rwquired?? - addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES); - addStyleName(ValoTheme.TABLE_SMALL); - - setHeight("100%"); - setHeightMode(HeightMode.CSS); setSelectionMode(SelectionMode.NONE); setColumnReorderingAllowed(true); - addNewContainerDS(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java index bb83e5e57..1971f58b8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java @@ -19,9 +19,14 @@ public class HtmlButtonRenderer extends ButtonRenderer { private void applystyles(Button button) { button.setStyleName(VButton.CLASSNAME); - 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"); + button.addStyleName(getStyle("tiny")); + button.addStyleName(getStyle("borderless")); + button.addStyleName(getStyle("icon-only")); + button.addStyleName(getStyle("button-no-border")); + } + + + private String getStyle(final String style) { + return new StringBuilder(style).append(" ").append(VButton.CLASSNAME).append("-").append(style).toString(); } } 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 index 5ff1b1814..84cc001ae 100644 --- 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 @@ -24,8 +24,7 @@ public class HtmlLabelRenderer extends WidgetRenderer { if (value != null) { label.setHTML("&#x" + Integer.toHexString(Integer.parseInt(value)) + ";"); - } - else{ + } else { label.setHTML(""); } applyStyle(label, style); @@ -33,14 +32,18 @@ public class HtmlLabelRenderer extends WidgetRenderer { } private void applyStyle(VLabel label, String style) { - label.setStylePrimaryName("v-label"); - label.setStyleName("small v-label-small"); - label.addStyleName("font-icon v-label-font-icon"); + label.setStyleName(VLabel.CLASSNAME); + label.addStyleName(getStyle("small")); + label.addStyleName(getStyle("font-icon")); if (style != null) { - label.addStyleName(style + " v-label-" + style); + label.addStyleName(getStyle(style)); } } + private String getStyle(final String style) { + return new StringBuilder(style).append(" ").append(VLabel.CLASSNAME).append("-").append(style).toString(); + } + private Map formatInput(String input) { Map details = new HashMap<>(); String[] tempData = input.split(","); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java index 016fbf8b5..1ccaeee82 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/LinkRenderer.java @@ -2,6 +2,7 @@ package org.eclipse.hawkbit.ui.customrenderers.client.renderers; import com.google.gwt.user.client.ui.Button; import com.vaadin.client.renderers.ButtonRenderer; +import com.vaadin.client.ui.VButton; import com.vaadin.client.widget.grid.RendererCellReference; public class LinkRenderer extends ButtonRenderer { @@ -15,10 +16,14 @@ public class LinkRenderer extends ButtonRenderer { } private void applystyle(Button button) { - button.setStylePrimaryName("v-button"); - button.setStyleName("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"); + button.setStyleName(VButton.CLASSNAME); + button.addStyleName(getStyle("borderless")); + button.addStyleName(getStyle("small")); + button.addStyleName(getStyle("on-focus-no-border")); + button.addStyleName(getStyle("link")); + } + + private String getStyle(final String style) { + return new StringBuilder(style).append(" ").append(VButton.CLASSNAME).append("-").append(style).toString(); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java index df9d8a60d..eccb17c71 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/actionhistory/ActionHistoryTable.java @@ -524,7 +524,7 @@ public class ActionHistoryTable extends TreeTable implements Handler { } else if (Action.Status.SCHEDULED == status) { label.setStyleName(statusIconPending); label.setDescription(i18n.get("label.scheduled")); - label.setValue(FontAwesome.BULLSEYE.getHtml()); + label.setValue(FontAwesome.HOURGLASS_1.getHtml()); } else { label.setDescription(""); label.setValue(""); @@ -575,7 +575,7 @@ public class ActionHistoryTable extends TreeTable implements Handler { label.setContentMode(ContentMode.HTML); if (SPUIDefinitions.SCHEDULED.equals(activeValue)) { label.setDescription("Scheduled"); - label.setValue(FontAwesome.BULLSEYE.getHtml()); + label.setValue(FontAwesome.HOURGLASS_1.getHtml()); } else if (SPUIDefinitions.ACTIVE.equals(activeValue)) { label.setDescription("Active"); label.setStyleName("statusIconActive"); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java index 89bac0b69..625658bfe 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java @@ -26,6 +26,7 @@ import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; +import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.eclipse.hawkbit.ui.utils.UINotification; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; @@ -54,8 +55,17 @@ import com.vaadin.ui.renderers.HtmlRenderer; @SpringComponent @ViewScope public class RolloutListGrid extends AbstractGrid { + private static final long serialVersionUID = 4060904914954370524L; + private static final String UPDATE_OPTION = "Update"; + + private static final String RESUME_OPTION = "Resume"; + + private static final String PAUSE_OPTION = "Pause"; + + private static final String START_OPTION = "Start"; + @Autowired private I18N i18n; @@ -248,16 +258,22 @@ public class RolloutListGrid extends AbstractGrid { return cell -> getDescription(cell); } + @Override + protected void addColumnRenderes() { + getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer(new HtmlRenderer(), + new TotalTargetCountStatusConverter()); + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new RolloutStatusConverter()); + getColumn(SPUILabelDefinitions.ACTION).setRenderer(new HtmlButtonRenderer(event -> onClickOfActionBtn(event))); + getColumn(SPUILabelDefinitions.VAR_NAME).setRenderer(new LinkRenderer(event -> onClickOfRolloutName(event))); + } + private void alignColumns() { setCellStyleGenerator(new CellStyleGenerator() { private static final long serialVersionUID = 5573570647129792429L; @Override public String getStyle(final CellReference cellReference) { - String[] coulmnNames = { SPUILabelDefinitions.VAR_STATUS, - /* - * SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS, - */ SPUILabelDefinitions.ACTION }; + String[] coulmnNames = { SPUILabelDefinitions.VAR_STATUS, SPUILabelDefinitions.ACTION }; if (Arrays.asList(coulmnNames).contains(cellReference.getPropertyId())) { return "centeralign"; } @@ -266,14 +282,6 @@ public class RolloutListGrid extends AbstractGrid { }); } - @Override - protected void addColumnRenderes() { - addDetailStatusColumn(); - addStatusCoulmn(); - getColumn(SPUILabelDefinitions.ACTION).setRenderer(new HtmlButtonRenderer(event -> onClickOfActionBtn(event))); - getColumn(SPUILabelDefinitions.VAR_NAME).setRenderer(new LinkRenderer(event -> onClickOfRolloutName(event))); - } - private void onClickOfRolloutName(RendererClickEvent event) { rolloutUIState.setRolloutId((long) event.getItemId()); final String rolloutName = (String) getContainerDataSource().getItem(event.getItemId()) @@ -298,126 +306,66 @@ public class RolloutListGrid extends AbstractGrid { final ContextMenu context = new ContextMenu(); context.addItemClickListener(event -> menuItemClicked(event)); if (rolloutStatus == RolloutStatus.READY) { - final ContextMenuItem startItem = context.addItem("Start"); + final ContextMenuItem startItem = context.addItem(START_OPTION); startItem.setData(new ContextMenuData(rolloutId, ACTION.START)); } else if (rolloutStatus == RolloutStatus.RUNNING) { - final ContextMenuItem pauseItem = context.addItem("Pause"); + final ContextMenuItem pauseItem = context.addItem(PAUSE_OPTION); pauseItem.setData(new ContextMenuData(rolloutId, ACTION.PAUSE)); } else if (rolloutStatus == RolloutStatus.PAUSED) { - final ContextMenuItem resumeItem = context.addItem("Resume"); + final ContextMenuItem resumeItem = context.addItem(RESUME_OPTION); resumeItem.setData(new ContextMenuData(rolloutId, ACTION.RESUME)); } else if (rolloutStatus == RolloutStatus.STARTING || rolloutStatus == RolloutStatus.CREATING) { return context; } if (permissionChecker.hasRolloutUpdatePermission()) { - final ContextMenuItem cancelItem = context.addItem("Update"); + final ContextMenuItem cancelItem = context.addItem(UPDATE_OPTION); cancelItem.setData(new ContextMenuData(rolloutId, ACTION.UPDATE)); } return context; } - private void addDetailStatusColumn() { - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer(new HtmlRenderer(), - new Converter() { - private static final long serialVersionUID = 2660476405836705932L; - - @Override - public TotalTargetCountStatus convertToModel(String value, - Class targetType, Locale locale) - throws com.vaadin.data.util.converter.Converter.ConversionException { - return null; - } - - @Override - public String convertToPresentation(TotalTargetCountStatus value, - Class targetType, Locale locale) - throws com.vaadin.data.util.converter.Converter.ConversionException { - return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); - } - - @Override - public Class getModelType() { - return TotalTargetCountStatus.class; - } - - @Override - public Class getPresentationType() { - return String.class; - } - }); - } - - private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), - new Converter() { - private static final long serialVersionUID = 1L; - - @Override - public RolloutStatus convertToModel(final String value, - final Class targetType, final Locale locale) { - return null; - } - - @Override - public String convertToPresentation(final RolloutStatus value, - final Class targetType, final Locale locale) { - return convertRolloutStatusToString(value); - } - - @Override - public Class getModelType() { - return RolloutStatus.class; - } - - @Override - public Class getPresentationType() { - return String.class; - } - }); - } - private String convertRolloutStatusToString(final RolloutStatus value) { String result = null; switch (value) { case FINISHED: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), "statusIconGreen", + Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), SPUIStyleDefinitions.STATUS_ICON_GREEN, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case PAUSED: result = HawkbitCommonUtil.getStatusLabelDetailsInString(Integer.toString(FontAwesome.PAUSE.getCodepoint()), - "statusIconBlue", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + SPUIStyleDefinitions.STATUS_ICON_BLUE, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case RUNNING: - result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, "yellowSpinner", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, SPUIStyleDefinitions.STATUS_SPINNER_YELLOW, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case READY: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), "statusIconLightBlue", - SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), + SPUIStyleDefinitions.STATUS_ICON_LIGHT_BLUE, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case STOPPED: result = HawkbitCommonUtil.getStatusLabelDetailsInString(Integer.toString(FontAwesome.STOP.getCodepoint()), - "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + SPUIStyleDefinitions.STATUS_ICON_RED, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case CREATING: - result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, "greySpinner", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, SPUIStyleDefinitions.STATUS_SPINNER_GREY, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case STARTING: - result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, "blueSpinner", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, SPUIStyleDefinitions.STATUS_SPINNER_BLUE, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case ERROR_CREATING: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), "statusIconRed", - SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), + SPUIStyleDefinitions.STATUS_ICON_RED, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case ERROR_STARTING: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), "statusIconRed", - SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), + SPUIStyleDefinitions.STATUS_ICON_RED, SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; default: break; @@ -486,8 +434,7 @@ public class RolloutListGrid extends AbstractGrid { return null; } } - - + enum ACTION { PAUSE, RESUME, START, UPDATE } @@ -544,6 +491,70 @@ public class RolloutListGrid extends AbstractGrid { public void setAction(final ACTION action) { this.action = action; } + } + + /** + * + * Converter to convert {@link RolloutStatus} to string. + * + */ + class RolloutStatusConverter implements Converter { + + private static final long serialVersionUID = -1217685750825632678L; + + @Override + public RolloutStatus convertToModel(final String value, final Class targetType, + final Locale locale) { + return null; + } + + @Override + public String convertToPresentation(final RolloutStatus value, final Class targetType, + final Locale locale) { + return convertRolloutStatusToString(value); + } + + @Override + public Class getModelType() { + return RolloutStatus.class; + } + + @Override + public Class getPresentationType() { + return String.class; + } + } + + /** + * Converter to convert {@link TotalTargetCountStatus} to formatted string + * with status and count details. + * + */ + class TotalTargetCountStatusConverter implements Converter { + + private static final long serialVersionUID = -5794528427855153924L; + + @Override + public TotalTargetCountStatus convertToModel(String value, Class targetType, + Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { + return null; + } + + @Override + public String convertToPresentation(TotalTargetCountStatus value, Class targetType, + Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { + return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); + } + + @Override + public Class getModelType() { + return TotalTargetCountStatus.class; + } + + @Override + public Class getPresentationType() { + return String.class; + } } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java index 16c65cc32..9700fb76e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java @@ -25,6 +25,7 @@ import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; +import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer; @@ -213,26 +214,12 @@ public class RolloutGroupListGrid extends AbstractGrid { alignColumns(); } - private void alignColumns() { - setCellStyleGenerator(new CellStyleGenerator() { - private static final long serialVersionUID = 5573570647129792429L; - - @Override - public String getStyle(final CellReference cellReference) { - String[] coulmnNames = { SPUILabelDefinitions.VAR_STATUS, - SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS }; - if (Arrays.asList(coulmnNames).contains(cellReference.getPropertyId())) { - return "centeralign"; - } - return null; - } - }); - } - @Override protected void addColumnRenderes() { - addDetailStatusColumn(); - addStatusCoulmn(); + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), + new RolloutGroupStatusConverter()); + getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer(new HtmlRenderer(), + new TotalTargetCountStatusConverter()); if (permissionChecker.hasRolloutTargetsReadPermission()) { getColumn(SPUILabelDefinitions.VAR_NAME) .setRenderer(new LinkRenderer(event -> onClickOfRolloutGroupName(event))); @@ -263,62 +250,33 @@ public class RolloutGroupListGrid extends AbstractGrid { eventBus.publish(this, RolloutEvent.SHOW_ROLLOUT_GROUP_TARGETS); } - private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), - new Converter() { - private static final long serialVersionUID = 1L; - - @Override - public RolloutGroupStatus convertToModel(final String value, - final Class targetType, final Locale locale) { - return null; - } - - @Override - public String convertToPresentation(final RolloutGroupStatus value, - final Class targetType, final Locale locale) { - return convertRolloutGroupStatusToString(value); - } - - @Override - public Class getModelType() { - return RolloutGroupStatus.class; - } - - @Override - public Class getPresentationType() { - return String.class; - } - }); - } - private String convertRolloutGroupStatusToString(final RolloutGroupStatus value) { String result = null; switch (value) { case FINISHED: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), "statusIconGreen", + Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), SPUIStyleDefinitions.STATUS_ICON_GREEN, SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; case SCHEDULED: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.BULLSEYE.getCodepoint()), "statusIconBlue", + Integer.toString(FontAwesome.HOURGLASS_1.getCodepoint()), SPUIStyleDefinitions.STATUS_ICON_PENDING, SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; case RUNNING: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.ADJUST.getCodepoint()), "statusIconYellow", + Integer.toString(FontAwesome.ADJUST.getCodepoint()), SPUIStyleDefinitions.STATUS_ICON_LIGHT_YELLOW, SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; case READY: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), "statusIconLightBlue", - SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), + SPUIStyleDefinitions.STATUS_ICON_LIGHT_BLUE, SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; case ERROR: result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), "statusIconRed", - SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), + SPUIStyleDefinitions.STATUS_ICON_RED, SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; default: break; @@ -327,37 +285,6 @@ public class RolloutGroupListGrid extends AbstractGrid { } - private void addDetailStatusColumn() { - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setRenderer(new HtmlRenderer(), - new Converter() { - private static final long serialVersionUID = 2660476405836705932L; - - @Override - public TotalTargetCountStatus convertToModel(String value, - Class targetType, Locale locale) - throws com.vaadin.data.util.converter.Converter.ConversionException { - return null; - } - - @Override - public String convertToPresentation(TotalTargetCountStatus value, - Class targetType, Locale locale) - throws com.vaadin.data.util.converter.Converter.ConversionException { - return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); - } - - @Override - public Class getModelType() { - return TotalTargetCountStatus.class; - } - - @Override - public Class getPresentationType() { - return String.class; - } - }); - } - private String getDescription(CellReference cell) { if (SPUILabelDefinitions.VAR_STATUS.equals(cell.getPropertyId())) { return cell.getProperty().getValue().toString().toLowerCase(); @@ -373,4 +300,85 @@ public class RolloutGroupListGrid extends AbstractGrid { } } + private void alignColumns() { + setCellStyleGenerator(new CellStyleGenerator() { + private static final long serialVersionUID = 5573570647129792429L; + + @Override + public String getStyle(final CellReference cellReference) { + String[] coulmnNames = { SPUILabelDefinitions.VAR_STATUS, + SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS }; + if (Arrays.asList(coulmnNames).contains(cellReference.getPropertyId())) { + return "centeralign"; + } + return null; + } + }); + } + + /** + * + * Converts {@link TotalTargetCountStatus} into formatted string with status + * and count details. + * + */ + class TotalTargetCountStatusConverter implements Converter { + + private static final long serialVersionUID = -9205943894818450807L; + + @Override + public TotalTargetCountStatus convertToModel(String value, Class targetType, + Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { + return null; + } + + @Override + public String convertToPresentation(TotalTargetCountStatus value, Class targetType, + Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { + return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); + } + + @Override + public Class getModelType() { + return TotalTargetCountStatus.class; + } + + @Override + public Class getPresentationType() { + return String.class; + } + } + + /** + * + * Converts {@link RolloutGroupStatus} to string. + * + */ + class RolloutGroupStatusConverter implements Converter { + + private static final long serialVersionUID = 5448062736373292820L; + + @Override + public RolloutGroupStatus convertToModel(final String value, + final Class targetType, final Locale locale) { + return null; + } + + @Override + public String convertToPresentation(final RolloutGroupStatus value, final Class targetType, + final Locale locale) { + return convertRolloutGroupStatusToString(value); + } + + @Override + public Class getModelType() { + return RolloutGroupStatus.class; + } + + @Override + public Class getPresentationType() { + return String.class; + } + + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgrouptargets/RolloutGroupTargetsListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgrouptargets/RolloutGroupTargetsListGrid.java index 3008dee1b..e3cf24739 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgrouptargets/RolloutGroupTargetsListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgrouptargets/RolloutGroupTargetsListGrid.java @@ -94,29 +94,27 @@ public class RolloutGroupTargetsListGrid extends AbstractGrid { null, false, true); rolloutGroupTargetGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, "", false, true); - rolloutGroupTargetGridContainer.addContainerProperty(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER, - String.class, "", false, true); } @Override protected void setColumnExpandRatio() { getColumn(SPUILabelDefinitions.VAR_NAME).setMinimumWidth(20); - getColumn(SPUILabelDefinitions.VAR_NAME).setMaximumWidth(250); + getColumn(SPUILabelDefinitions.VAR_NAME).setMaximumWidth(280); getColumn(SPUILabelDefinitions.VAR_STATUS).setMinimumWidth(50); - getColumn(SPUILabelDefinitions.VAR_STATUS).setMaximumWidth(100); + getColumn(SPUILabelDefinitions.VAR_STATUS).setMaximumWidth(80); - getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMaximumWidth(150); - getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMinimumWidth(50); + getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMaximumWidth(180); + getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMinimumWidth(30); - getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setMaximumWidth(150); + getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setMaximumWidth(180); getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setMinimumWidth(50); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMaximumWidth(150); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMinimumWidth(20); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMaximumWidth(180); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMinimumWidth(30); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMaximumWidth(150); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMinimumWidth(20); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMaximumWidth(180); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMinimumWidth(50); setFrozenColumnCount(getColumns().size()); @@ -131,8 +129,6 @@ public class RolloutGroupTargetsListGrid extends AbstractGrid { getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setHeaderCaption(i18n.get("header.modifiedDate")); getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setHeaderCaption(i18n.get("header.modifiedBy")); getColumn(SPUILabelDefinitions.VAR_DESC).setHeaderCaption(i18n.get("header.description")); - getColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).setHeaderCaption(i18n.get("header.assigned.ds")); - } @Override @@ -154,6 +150,23 @@ public class RolloutGroupTargetsListGrid extends AbstractGrid { alignColumns(); } + @Override + protected void addColumnRenderes() { + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new StatusConverter()); + } + + @Override + protected void setHiddenColumns() { + /** + * No hidden columns. + */ + } + + @Override + protected CellDescriptionGenerator getDescriptionGenerator() { + return cell -> getDescription(cell); + }; + private void alignColumns() { setCellStyleGenerator(new CellStyleGenerator() { private static final long serialVersionUID = 5573570647129792429L; @@ -168,88 +181,81 @@ public class RolloutGroupTargetsListGrid extends AbstractGrid { }); } - @Override - protected void addColumnRenderes() { - addStatusCoulmn(); + /** + * + * Converts {@link Status} into string with status icon details. + * + */ + private class StatusConverter implements Converter { + private static final long serialVersionUID = -7467206089699548808L; + + @Override + public Status convertToModel(final String value, final Class targetType, + final Locale locale) { + return null; + } + + @Override + public String convertToPresentation(final Status status, final Class targetType, + final Locale locale) { + if (status == null) { + // Actions are not created for targets when + // rollout's status + // is READY and when duplicate assignment is done. + // In these cases display a appropriate status with + // description + return getStatus(); + } else { + return processActionStatus(status); + } + } + + @Override + public Class getModelType() { + return Status.class; + } + + @Override + public Class getPresentationType() { + return String.class; + } + } - @Override - protected void setHiddenColumns() { - getColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).setHidden(true); - } - - private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), - new Converter() { - private static final long serialVersionUID = 1L; - - @Override - public Status convertToModel(final String value, final Class targetType, - final Locale locale) { - return null; - } - - @Override - public String convertToPresentation(final Status status, final Class targetType, - final Locale locale) { - String result = null; - if (status == null) { - // Actions are not created for targets when - // rollout's status - // is READY and when duplicate assignment is done. - // In these cases display a appropriate status with - // description - return getStatus(); - } else { - switch (status) { - case FINISHED: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), "statusIconGreen", - null); - break; - case SCHEDULED: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.BULLSEYE.getCodepoint()), "statusIconBlue", null); - break; - case RUNNING: - case RETRIEVED: - case WARNING: - case DOWNLOAD: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.ADJUST.getCodepoint()), "statusIconYellow", null); - break; - case CANCELING: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), "statusIconPending", - null); - break; - case CANCELED: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), "statusIconGreen", - null); - break; - case ERROR: - result = HawkbitCommonUtil.getStatusLabelDetailsInString( - Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), - "statusIconRed", null); - break; - default: - break; - } - return result; - } - } - - @Override - public Class getModelType() { - return Status.class; - } - - @Override - public Class getPresentationType() { - return String.class; - } - }); + private String processActionStatus(final Status status) { + String result = null; + switch (status) { + case FINISHED: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), "statusIconGreen", null); + break; + case SCHEDULED: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.HOURGLASS_1.getCodepoint()), "statusIconPending", null); + break; + case RUNNING: + case RETRIEVED: + case WARNING: + case DOWNLOAD: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.ADJUST.getCodepoint()), "statusIconYellow", null); + break; + case CANCELING: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), "statusIconPending", null); + break; + case CANCELED: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), "statusIconGreen", null); + break; + case ERROR: + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), "statusIconRed", null); + break; + default: + break; + } + return result; } private String getStatus() { @@ -267,30 +273,29 @@ public class RolloutGroupTargetsListGrid extends AbstractGrid { } } - @Override - protected CellDescriptionGenerator getDescriptionGenerator() { - return cell -> getDescription(cell); - }; - private String getDescription(CellReference cell) { if (SPUILabelDefinitions.VAR_STATUS.equals(cell.getPropertyId())) { if (null != cell.getProperty().getValue()) { return cell.getProperty().getValue().toString().toLowerCase(); } else { - final RolloutGroup rolloutGroup = rolloutUIState.getRolloutGroup().isPresent() - ? rolloutUIState.getRolloutGroup().get() : null; - if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.READY) { - return RolloutGroupStatus.READY.toString().toLowerCase(); - } else if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.FINISHED) { - String ds = rolloutUIState.getRolloutDistributionSet().isPresent() - ? rolloutUIState.getRolloutDistributionSet().get() : ""; - return i18n.get("message.dist.already.assigned", new Object[] { ds }); - } else { - return "unknown"; - } + return getDescriptionWhenNoAction(); } } return null; } + + private String getDescriptionWhenNoAction() { + final RolloutGroup rolloutGroup = rolloutUIState.getRolloutGroup().isPresent() + ? rolloutUIState.getRolloutGroup().get() : null; + if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.READY) { + return RolloutGroupStatus.READY.toString().toLowerCase(); + } else if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.FINISHED) { + String ds = rolloutUIState.getRolloutDistributionSet().isPresent() + ? rolloutUIState.getRolloutDistributionSet().get() : ""; + return i18n.get("message.dist.already.assigned", new Object[] { ds }); + } else { + return "unknown"; + } + } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIStyleDefinitions.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIStyleDefinitions.java index 0c12df4bd..4ea0a1a77 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIStyleDefinitions.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIStyleDefinitions.java @@ -248,6 +248,17 @@ public final class SPUIStyleDefinitions { * Target filter search progress indicator style. */ public static final String TARGET_FILTER_SEARCH_PROGRESS_INDICATOR_STYLE = "target-filter-spinner"; + + + public static final String STATUS_ICON_RED = "statusIconRed"; + public static final String STATUS_ICON_GREEN = "statusIconGreen"; + public static final String STATUS_ICON_BLUE = "statusIconBlue"; + public static final String STATUS_SPINNER_YELLOW = "yellowSpinner"; + public static final String STATUS_ICON_LIGHT_BLUE = "statusIconLightBlue"; + public static final String STATUS_SPINNER_GREY = "greySpinner"; + public static final String STATUS_SPINNER_BLUE = "blueSpinner"; + public static final String STATUS_ICON_LIGHT_YELLOW = "statusIconYellow"; + public static final String STATUS_ICON_PENDING = "statusIconPending"; /** * Constructor. diff --git a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/statusprogressbar.scss b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/statusprogressbar.scss index 9cc628022..423ef9084 100644 --- a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/statusprogressbar.scss +++ b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/statusprogressbar.scss @@ -50,16 +50,4 @@ } - &.alump-dbar-tooltip { - background-color: rgba(27, 54, 73, 0.9); - border-radius: 3px; - color: white; - z-index: 100; - padding: 3px; - font-size: 10px; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - } - } \ No newline at end of file