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 15fc72ada..629eb1f4d 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,7 +19,7 @@ public class HtmlButtonRenderer extends ButtonRenderer { private void applystyles(Button button) { button.setStylePrimaryName("v-button"); - button.addStyleName("tiny v-button-tiny"); + button.setStyleName("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 index 8899c49b3..8109cec43 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 @@ -26,6 +26,9 @@ public class HtmlLabelRenderer extends WidgetRenderer { if (value != null) { label.setHTML("&#x" + Integer.toHexString(Integer.parseInt(value)) + ";"); } + else{ + label.setHTML(""); + } applyStyle(label, style); label.setTitle(description); label.getElement().setId(id); @@ -33,7 +36,7 @@ public class HtmlLabelRenderer extends WidgetRenderer { private void applyStyle(VLabel label, String style) { label.setStylePrimaryName("v-label"); - label.addStyleName("small v-label-small"); + label.setStyleName("small v-label-small"); label.addStyleName("font-icon v-label-font-icon"); if (style != null) { label.addStyleName(style + " v-label-" + style); 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 ff215a0a4..66814f6dc 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 @@ -12,11 +12,12 @@ public class LinkRenderer extends ButtonRenderer { // this is to allow the button to disappear, if the text is null button.setVisible(text != null); button.getElement().setId(new StringBuilder("link").append(".").append(text).toString()); + button.setTitle(text); } private void applystyle(Button button) { button.setStylePrimaryName("v-button"); - button.addStyleName("borderless v-button-borderless"); + 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"); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleGrid.java index 5ecfc5e94..eb2a713c8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleGrid.java @@ -8,17 +8,12 @@ */ package org.eclipse.hawkbit.ui.rollout; -import java.util.ArrayList; -import java.util.List; - import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; -import org.eclipse.hawkbit.ui.utils.TableColumn; 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.Table; -import com.vaadin.ui.Grid.Column; import com.vaadin.ui.themes.ValoTheme; /** @@ -36,40 +31,28 @@ public abstract class AbstractSimpleGrid extends Grid { setSizeFull(); setImmediate(true); setId(getTableId()); - setHeight("200px"); - setWidth("200px"); - -// addStyleName("sp-table rollout-table"); addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES); addStyleName(ValoTheme.TABLE_SMALL); - + addNewContainerDS(); - -// addValueChangeListener(event -> onValueChange()); -// setPageLength(SPUIDefinitions.PAGE_SIZE); setSelectionMode(SelectionMode.NONE); -// setColumnCollapsingAllowed(true); - addColumnRenderes(); setColumnReorderingAllowed(true); } - - - - public void addNewContainerDS() { + private void addNewContainerDS() { final Container container = createContainer(); setContainerDataSource((Indexed) container); addContainerProperties(); + setColumnExpandRatio(); setColumnProperties(); setColumnHeaderNames(); - setColumnExpandRatio(); - - //Allow column hiding + addColumnRenderes(); + // Allow column hiding for (Column c : getColumns()) { - c.setHidable(true); + c.setHidable(true); } setHiddenColumns(); - + int size = 0; if (container != null) { size = container.size(); @@ -77,22 +60,22 @@ public abstract class AbstractSimpleGrid extends Grid { if (size == 0) { setData(SPUIDefinitions.NO_DATA); } + } - - + protected abstract Container createContainer(); - + protected abstract void addContainerProperties(); - protected abstract void setColumnExpandRatio() ; + protected abstract void setColumnExpandRatio(); - protected abstract void setColumnHeaderNames() ; + protected abstract void setColumnHeaderNames(); protected abstract String getTableId(); - protected abstract void setColumnProperties() ; - - protected abstract void addColumnRenderes() ; - - protected abstract void setHiddenColumns(); + protected abstract void setColumnProperties(); + + protected abstract void addColumnRenderes(); + + protected abstract void setHiddenColumns(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableLayout.java index 85eef5c65..9f28122b4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/AbstractSimpleTableLayout.java @@ -28,14 +28,12 @@ public abstract class AbstractSimpleTableLayout extends VerticalLayout { private AbstractSimpleTableHeader tableHeader; - private AbstractSimpleTable table; private AbstractSimpleGrid grid; - protected void init(final AbstractSimpleTableHeader tableHeader, final AbstractSimpleTable table,final AbstractSimpleGrid grid) { + protected void init(final AbstractSimpleTableHeader tableHeader,final AbstractSimpleGrid grid) { this.tableHeader = tableHeader; - this.table = table; this.grid = grid; buildLayout(); } @@ -54,7 +52,7 @@ public abstract class AbstractSimpleTableLayout extends VerticalLayout { tableHeaderLayout.addComponent(tableHeader); tableHeaderLayout.setComponentAlignment(tableHeader, Alignment.TOP_CENTER); - grid.setSizeFull(); +// grid.setSizeFull(); tableHeaderLayout.addComponent(grid); tableHeaderLayout.setComponentAlignment(grid, Alignment.TOP_CENTER); tableHeaderLayout.setExpandRatio(grid, 1.0f); 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 0cc15bcde..e18531858 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 @@ -149,31 +149,35 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { @Override protected void setColumnExpandRatio() { getColumn(SPUILabelDefinitions.VAR_NAME).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_NAME).setMinimumWidth(40); getColumn(SPUILabelDefinitions.VAR_NAME).setMaximumWidth(150); - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setMinimumWidth(95); + getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setMaximumWidth(100); getColumn(SPUILabelDefinitions.VAR_STATUS).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_STATUS).setMinimumWidth(75); + getColumn(SPUILabelDefinitions.VAR_STATUS).setMaximumWidth(75); getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setExpandRatio(2); - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setMinimumWidth(400); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_INSTALLED_PERCENTAGE).setExpandRatio(0); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_INSTALLED_PERCENTAGE).setMinimumWidth(80); + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_INSTALLED_PERCENTAGE).setExpandRatio(1); + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_INSTALLED_PERCENTAGE).setMaximumWidth(100); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_ERROR_THRESHOLD).setExpandRatio(0); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_ERROR_THRESHOLD).setMinimumWidth(100); + + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_ERROR_THRESHOLD).setExpandRatio(1); + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_ERROR_THRESHOLD).setMaximumWidth(100); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_THRESHOLD).setExpandRatio(0); - getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_THRESHOLD).setMinimumWidth(140); + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_THRESHOLD).setExpandRatio(1); + getColumn(SPUILabelDefinitions.ROLLOUT_GROUP_THRESHOLD).setMaximumWidth(100); getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_CREATED_USER).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_MODIFIED_DATE).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_MODIFIED_BY).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_DESC).setExpandRatio(0); + getColumn(SPUILabelDefinitions.VAR_ID).setExpandRatio(0); + setFrozenColumnCount(7); } @Override @@ -217,7 +221,6 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { columnList.add(SPUILabelDefinitions.VAR_MODIFIED_BY); columnList.add(SPUILabelDefinitions.VAR_DESC); setColumnOrder(columnList.toArray()); - alignColumns(); } @@ -289,23 +292,23 @@ public class RolloutGroupListGrid extends AbstractSimpleGrid { String result = null; switch (value) { case FINISHED: - result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), value.name().toLowerCase(), "statusIconRed", SPUIComponetIdProvider.ROLLOUT_GROUP_STATUS_LABEL_ID); break; default: diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListGrid.java index 939f73607..1ae1b8788 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListGrid.java @@ -10,8 +10,10 @@ import javax.annotation.PreDestroy; import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus; +import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; import org.eclipse.hawkbit.ui.rollout.event.RolloutEvent; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; +import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; @@ -29,7 +31,6 @@ import com.vaadin.data.util.converter.Converter; import com.vaadin.server.FontAwesome; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; -import com.vaadin.ui.renderers.HtmlRenderer; @SpringComponent @ViewScope @@ -98,32 +99,29 @@ public class RolloutGroupTargetsListGrid extends AbstractSimpleGrid { @Override protected void setColumnExpandRatio() { - setSizeFull(); - getColumn(SPUILabelDefinitions.VAR_NAME).setExpandRatio(1); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMaximumWidth(200); + getColumn(SPUILabelDefinitions.VAR_NAME).setExpandRatio(2); + getColumn(SPUILabelDefinitions.VAR_NAME).setMinimumWidth(200); getColumn(SPUILabelDefinitions.VAR_STATUS).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_STATUS).setMinimumWidth(100); + getColumn(SPUILabelDefinitions.VAR_STATUS).setMinimumWidth(150); - getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMaximumWidth(200); + getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setMaximumWidth(250); - getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setMaximumWidth(200); + getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_CREATED_BY).setMaximumWidth(250); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMaximumWidth(250); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE).setMaximumWidth(200); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMaximumWidth(250); - - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).setMaximumWidth(200); - - - getColumn(SPUILabelDefinitions.VAR_DESC).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_DESC).setMaximumWidth(200); + getColumn(SPUILabelDefinitions.VAR_DESC).setExpandRatio(1); + getColumn(SPUILabelDefinitions.VAR_DESC).setMaximumWidth(300); getColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).setExpandRatio(0); + setFrozenColumnCount(getColumns().size()); } @@ -180,11 +178,11 @@ public class RolloutGroupTargetsListGrid extends AbstractSimpleGrid { @Override protected void setHiddenColumns() { - getColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).setHidden(true); + getColumn(SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).setHidden(true); } private void addStatusCoulmn() { - getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlRenderer(), new Converter() { + getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new Converter() { private static final long serialVersionUID = 1L; @Override @@ -198,31 +196,45 @@ public class RolloutGroupTargetsListGrid extends AbstractSimpleGrid { 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(status); + // 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 = "
" + FontAwesome.CHECK_CIRCLE.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), status.name().toLowerCase(), + "statusIconGreen", null); break; case SCHEDULED: - result = "
" + FontAwesome.BULLSEYE.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.BULLSEYE.getCodepoint()), status.name().toLowerCase(), + "statusIconBlue", null); break; case RUNNING: case RETRIEVED: case WARNING: case DOWNLOAD: - result = "
" + FontAwesome.ADJUST.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.ADJUST.getCodepoint()), status.name().toLowerCase(), + "statusIconYellow", null); break; case CANCELING: - result = "
" + FontAwesome.TIMES_CIRCLE.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), status.name().toLowerCase(), + "statusIconPending", null); break; case CANCELED: - result = "
" + FontAwesome.TIMES_CIRCLE.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.TIMES_CIRCLE.getCodepoint()), status.name().toLowerCase(), + "statusIconGreen", null); break; case ERROR: - result = "
" + FontAwesome.EXCLAMATION_CIRCLE.getHtml() + "
"; + result = HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), + status.name().toLowerCase(), "statusIconRed", null); break; default: break; @@ -243,19 +255,19 @@ public class RolloutGroupTargetsListGrid extends AbstractSimpleGrid { }); } - private String getStatus(Status status) { + private String getStatus() { final RolloutGroup rolloutGroup = rolloutUIState.getRolloutGroup().isPresent() ? rolloutUIState.getRolloutGroup().get() : null; if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.READY) { - return "
" + FontAwesome.DOT_CIRCLE_O.getHtml() + "
"; + return HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), RolloutGroupStatus.READY.toString().toLowerCase(), + "statusIconLightBlue", null); } else if (rolloutGroup != null && rolloutGroup.getStatus() == RolloutGroupStatus.FINISHED) { - return "
" + FontAwesome.MINUS_CIRCLE.getHtml() + "
"; - // TODO set descriptionf or status icons - // final String dsNameVersion = (String) item.getItemProperty( - // SPUILabelDefinitions.ASSIGNED_DISTRIBUTION_NAME_VER).getValue(); - // statusLabel.setDescription(i18n - // .get("message.dist.already.assigned", new Object[] { - // dsNameVersion })); + String ds = rolloutUIState.getRolloutDistributionSet().isPresent()? rolloutUIState.getRolloutDistributionSet() .get():""; + ds = ds.replace(":", "-"); + return HawkbitCommonUtil.getStatusLabelDetailsInString( + Integer.toString(FontAwesome.MINUS_CIRCLE.getCodepoint()), + i18n.get("message.dist.already.assigned", new Object[] { ds }), "statusIconBlue", null); } return null; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListView.java index 8df21f4e4..67f2cbe19 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupTargetsListView.java @@ -29,29 +29,28 @@ public class RolloutGroupTargetsListView extends AbstractSimpleTableLayout { private RolloutGroupTargetsListHeader rolloutGroupTargetsListHeader; @Autowired - private RolloutGroupTargetsListTable rolloutGroupTargetsListTable; + private RolloutGroupTargetsCountLabelMessage rolloutGroupTargetsCountLabelMessage; - @Autowired - private RolloutGroupTargetsCountLabelMessage rolloutGroupTargetsCountLabelMessage; @Autowired private RolloutGroupTargetsListGrid rolloutListGrid; + /** * Initialization of Rollout group component. */ @PostConstruct protected void init() { - super.init(rolloutGroupTargetsListHeader, rolloutGroupTargetsListTable,rolloutListGrid); + super.init(rolloutGroupTargetsListHeader, rolloutListGrid); } @Override protected boolean hasCountMessage() { - + return true; } - + @Override protected Label getCountMessageLabel() { - + return rolloutGroupTargetsCountLabelMessage; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListView.java index bcf97584c..17583d9e3 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutGroupsListView.java @@ -29,16 +29,12 @@ public class RolloutGroupsListView extends AbstractSimpleTableLayout { @Autowired private RolloutGroupsListHeader rolloutGroupListHeader; - @Autowired - private RolloutGroupListTable rolloutGroupListTable; - @Autowired private RolloutGroupListGrid rolloutListGrid; - - + @PostConstruct protected void init() { - super.init(rolloutGroupListHeader, rolloutGroupListTable,rolloutListGrid); + super.init(rolloutGroupListHeader, rolloutListGrid); } @Override 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 def527d5c..b50387d55 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 @@ -38,7 +38,6 @@ 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; @@ -47,11 +46,9 @@ 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; -import com.vaadin.ui.renderers.HtmlRenderer; @SpringComponent @ViewScope @@ -110,7 +107,7 @@ public class RolloutListGrid extends AbstractSimpleGrid { @SuppressWarnings("unchecked") @EventBusListenerMethod(scope = EventScope.SESSION) public void onEvent(final RolloutChangeEvent rolloutChangeEvent) { - if (rolloutUIState.isShowRolloutGroups()) { + if (rolloutUIState.isShowRollOuts()) { final Rollout rollout = rolloutManagement.findRolloutWithDetailedStatus(rolloutChangeEvent.getRolloutId()); final TotalTargetCountStatus totalTargetCountStatus = rollout.getTotalTargetCountStatus(); final LazyQueryContainer rolloutContainer = (LazyQueryContainer) getContainerDataSource(); @@ -159,7 +156,6 @@ public class RolloutListGrid extends AbstractSimpleGrid { false); rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_TOTAL_TARGETS, String.class, "0", false, false); - rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS, TotalTargetCountStatus.class, null, false, false); @@ -182,12 +178,12 @@ public class RolloutListGrid extends AbstractSimpleGrid { columnList.add(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS); columnList.add(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS); columnList.add(SPUILabelDefinitions.VAR_TOTAL_TARGETS); + columnList.add(SPUILabelDefinitions.ACTION); columnList.add(SPUILabelDefinitions.VAR_CREATED_DATE); columnList.add(SPUILabelDefinitions.VAR_CREATED_USER); columnList.add(SPUILabelDefinitions.VAR_MODIFIED_DATE); columnList.add(SPUILabelDefinitions.VAR_MODIFIED_BY); columnList.add(SPUILabelDefinitions.VAR_DESC); - columnList.add(SPUILabelDefinitions.ACTION); setColumnOrder(columnList.toArray()); alignColumns(); @@ -218,6 +214,7 @@ public class RolloutListGrid extends AbstractSimpleGrid { columnsToBeHidden.add(SPUILabelDefinitions.VAR_MODIFIED_BY); columnsToBeHidden.add(SPUILabelDefinitions.VAR_DESC); columnsToBeHidden.add(SPUILabelDefinitions.VAR_ID); + for (Object propertyId : columnsToBeHidden) { getColumn(propertyId).setHidden(true); } @@ -243,14 +240,15 @@ public class RolloutListGrid extends AbstractSimpleGrid { @Override protected void setColumnExpandRatio() { getColumn(SPUILabelDefinitions.VAR_NAME).setExpandRatio(1); - getColumn(SPUILabelDefinitions.VAR_NAME).setMaximumWidth(300); + getColumn(SPUILabelDefinitions.VAR_NAME).setMinimumWidth(40); + getColumn(SPUILabelDefinitions.VAR_NAME).setMaximumWidth(150); getColumn(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).setExpandRatio(1); - getColumn(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).setMaximumWidth(300); + getColumn(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).setMinimumWidth(40); + getColumn(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).setMaximumWidth(150); getColumn(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setMinimumWidth(95); getColumn(SPUILabelDefinitions.VAR_CREATED_DATE).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_CREATED_USER).setExpandRatio(0); @@ -258,14 +256,12 @@ public class RolloutListGrid extends AbstractSimpleGrid { getColumn(SPUILabelDefinitions.VAR_MODIFIED_BY).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_DESC).setExpandRatio(0); getColumn(SPUILabelDefinitions.VAR_STATUS).setExpandRatio(0); - getColumn(SPUILabelDefinitions.VAR_STATUS).setMinimumWidth(75); - + getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setExpandRatio(2); - getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setMinimumWidth(600); getColumn(SPUILabelDefinitions.ACTION).setExpandRatio(0); getColumn(SPUILabelDefinitions.ACTION).setMinimumWidth(90); - + setFrozenColumnCount(getColumns().size()); } @Override @@ -281,6 +277,9 @@ public class RolloutListGrid extends AbstractSimpleGrid { final String rolloutName = (String) getContainerDataSource().getItem(event.getItemId()) .getItemProperty(SPUILabelDefinitions.VAR_NAME).getValue(); rolloutUIState.setRolloutName(rolloutName); + String ds = (String) getContainerDataSource().getItem(event.getItemId()) + .getItemProperty(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).getValue(); + rolloutUIState.setRolloutDistributionSet(ds); eventBus.publish(this, RolloutEvent.SHOW_ROLLOUT_GROUPS); } @@ -380,40 +379,40 @@ public class RolloutListGrid extends AbstractSimpleGrid { String result = null; switch (value) { case FINISHED: - result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.CHECK_CIRCLE.getCodepoint()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, value.name().toLowerCase(), "yellowSpinner", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case READY: - result = HawkbitCommonUtil.getFormattedString(Integer.toString(FontAwesome.DOT_CIRCLE_O.getCodepoint()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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()), + result = HawkbitCommonUtil.getStatusLabelDetailsInString(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", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, value.name().toLowerCase(), "greySpinner", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case STARTING: - result = HawkbitCommonUtil.getFormattedString(null, value.name().toLowerCase(), "blueSpinner", + result = HawkbitCommonUtil.getStatusLabelDetailsInString(null, value.name().toLowerCase(), "blueSpinner", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case ERROR_CREATING: - result = HawkbitCommonUtil.getFormattedString( + result = HawkbitCommonUtil.getStatusLabelDetailsInString( Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), value.name().toLowerCase(), "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; case ERROR_STARTING: - result = HawkbitCommonUtil.getFormattedString( + result = HawkbitCommonUtil.getStatusLabelDetailsInString( Integer.toString(FontAwesome.EXCLAMATION_CIRCLE.getCodepoint()), value.name().toLowerCase(), "statusIconRed", SPUIComponetIdProvider.ROLLOUT_STATUS_LABEL_ID); break; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListView.java index 748cf289c..196133683 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/RolloutListView.java @@ -30,28 +30,23 @@ public class RolloutListView extends AbstractSimpleTableLayout { @Autowired private RolloutListHeader rolloutListHeader; - @Autowired - private RolloutListTable rolloutListTable; - @Autowired private RolloutListGrid rolloutListGrid; @PostConstruct void init() { - super.init(rolloutListHeader, rolloutListTable,rolloutListGrid); + super.init(rolloutListHeader, rolloutListGrid); } - @Override protected boolean hasCountMessage() { - + return false; } - @Override protected Label getCountMessageLabel() { - + return null; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/state/RolloutUIState.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/state/RolloutUIState.java index 8dc5b1e17..0647e01bb 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/state/RolloutUIState.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/state/RolloutUIState.java @@ -44,6 +44,8 @@ public class RolloutUIState implements Serializable { private long rolloutGroupTargetsTotalCount; + private String rolloutDistributionSet; + /** * @return the searchText */ @@ -178,4 +180,20 @@ public class RolloutUIState implements Serializable { public void setRolloutGroupTargetsTotalCount(final long rolloutGroupTargetsTotalCount) { this.rolloutGroupTargetsTotalCount = rolloutGroupTargetsTotalCount; } + + /** + * @return rolloutDistributionSet + */ + public Optional getRolloutDistributionSet() { + return rolloutDistributionSet == null ? Optional.empty() : Optional.of(rolloutDistributionSet); + } + + /** + * + * @param rolloutDistributionSet + * the distribution set of the rollout + */ + public void setRolloutDistributionSet(String rolloutDistributionSet) { + this.rolloutDistributionSet = rolloutDistributionSet; + } } 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 dd7ef4a28..cf1e55c00 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 @@ -17,9 +17,9 @@ import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.TimeZone; -import java.util.Map.Entry; import org.apache.commons.lang3.StringUtils; import org.eclipse.hawkbit.im.authentication.UserPrincipal; @@ -31,10 +31,10 @@ import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetInfo.PollStatus; -import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus.Status; import org.eclipse.hawkbit.repository.model.TargetTagAssigmentResult; import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; +import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus.Status; import org.eclipse.hawkbit.ui.management.dstable.DistributionTable; import org.eclipse.hawkbit.ui.management.targettable.TargetTable; import org.slf4j.Logger; @@ -1371,8 +1371,21 @@ public final class HawkbitCommonUtil { return finalVal; } - - public static String getFormattedString(String value, String description, String style, String id) { + /** + * Returns a formatted string as needed by label custom render .This string + * holds the properties of a status label. + * + * @param value + * label value + * @param description + * label description + * @param style + * label style + * @param id + * label id + * @return + */ + public static String getStatusLabelDetailsInString(String value, String description, String style, String id) { StringBuilder val = new StringBuilder(); if (!Strings.isNullOrEmpty(value)) { val.append("value:").append(value).append(","); diff --git a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/rollout.scss b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/rollout.scss index ba951df24..373e6d281 100644 --- a/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/rollout.scss +++ b/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/customstyles/rollout.scss @@ -69,5 +69,9 @@ height: 34px !important; } + .v-grid-cell.frozen{ + box-shadow: none!important; + } + } \ No newline at end of file