diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java index 838af6611..ddf229651 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java @@ -208,35 +208,17 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se /* add main layout to the window */ window = SPUIComponentProvider.getWindow(i18n.get("upload.caption.add.new.swmodule"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(), event -> closeThisWindow(), null); + SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), event -> closeThisWindow(), null); window.getButtonsLayout().removeStyleName("actionButtonsMargin"); nameTextField.focus(); } - /** - * add a TextChangeListener to the description TextField - */ private void addDescriptionTextChangeListener() { - descTextArea.addTextChangeListener(event -> { - if (event.getText().equals(oldDescriptionValue) && vendorTextField.getValue().equals(oldVendorValue)) { - window.setSaveButtonEnabled(hasDescriptionOrVendorChanged(event)); - } else { - window.setSaveButtonEnabled(hasDescriptionOrVendorChanged(event)); - } - }); + descTextArea.addTextChangeListener(event -> window.setSaveButtonEnabled(hasDescriptionChanged(event))); } - /** - * add a TextChangeListener to the vendor TextField - */ private void addVendorTextChangeListener() { - vendorTextField.addTextChangeListener(event -> { - if (event.getText().equals(oldVendorValue) && descTextArea.getValue().equals(oldDescriptionValue)) { - window.setSaveButtonEnabled(hasDescriptionOrVendorChanged(event)); - } else { - window.setSaveButtonEnabled(hasDescriptionOrVendorChanged(event)); - } - }); + vendorTextField.addTextChangeListener(event -> window.setSaveButtonEnabled(hasVendorChanged(event))); } /** @@ -248,23 +230,25 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se final String vendor = HawkbitCommonUtil.trimAndNullIfEmpty(vendorTextField.getValue()); final String description = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); final String type = typeComboBox.getValue() != null ? typeComboBox.getValue().toString() : null; - if (mandatoryCheck(name, version, type)) { - if (HawkbitCommonUtil.isDuplicate(name, version, type)) { - uiNotifcation.displayValidationError( - i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); - } else { - final SoftwareModule newBaseSoftwareModule = HawkbitCommonUtil.addNewBaseSoftware(entityFactory, name, - version, vendor, softwareManagement.findSoftwareModuleTypeByName(type), description); - if (newBaseSoftwareModule != null) { - /* display success message */ - uiNotifcation.displaySuccess(i18n.get("message.save.success", new Object[] { - newBaseSoftwareModule.getName() + ":" + newBaseSoftwareModule.getVersion() })); - eventBus.publish(this, - new SoftwareModuleEvent(BaseEntityEventType.NEW_ENTITY, newBaseSoftwareModule)); - } - // close the window - closeThisWindow(); + + if (!mandatoryCheck(name, version, type)) { + return; + } + + if (HawkbitCommonUtil.isDuplicate(name, version, type)) { + uiNotifcation.displayValidationError( + i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); + } else { + final SoftwareModule newBaseSoftwareModule = HawkbitCommonUtil.addNewBaseSoftware(entityFactory, name, + version, vendor, softwareManagement.findSoftwareModuleTypeByName(type), description); + if (newBaseSoftwareModule != null) { + /* display success message */ + uiNotifcation.displaySuccess(i18n.get("message.save.success", + new Object[] { newBaseSoftwareModule.getName() + ":" + newBaseSoftwareModule.getVersion() })); + eventBus.publish(this, new SoftwareModuleEvent(BaseEntityEventType.NEW_ENTITY, newBaseSoftwareModule)); } + // close the window + closeThisWindow(); } } @@ -343,29 +327,20 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se return isValid; } - /** - * saves or updates a softwareModule depending on the information if it is a - * new softwareModule or an existing one - */ - private void save() { + private void saveOrUpdate() { if (editSwModule) { updateSwModule(); } else { - /* add new or update software module */ addNewBaseSoftware(); } } - /** - * Checks if the description and vendor have changed and set the button - * enabled/disabled - * - * @param event - * TextChangeEvent - * @return Boolean - */ - private boolean hasDescriptionOrVendorChanged(final TextChangeEvent event) { + private boolean hasDescriptionChanged(final TextChangeEvent event) { return !(event.getText().equals(oldDescriptionValue) && vendorTextField.getValue().equals(oldVendorValue)); } + private boolean hasVendorChanged(final TextChangeEvent event) { + return !(event.getText().equals(oldVendorValue) && descTextArea.getValue().equals(oldDescriptionValue)); + } + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java index f02e91d2e..85844b917 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java @@ -43,7 +43,7 @@ import com.vaadin.ui.components.colorpicker.ColorSelector; import com.vaadin.ui.themes.ValoTheme; /** - * + * Layout for the create or update software module type. * */ @SpringComponent @@ -198,25 +198,24 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout @Override protected void save(final ClickEvent event) { - if (mandatoryValuesPresent()) { - final SoftwareModuleType existingSMTypeByKey = swTypeManagementService - .findSoftwareModuleTypeByKey(typeKey.getValue()); - final SoftwareModuleType existingSMTypeByName = swTypeManagementService - .findSoftwareModuleTypeByName(tagName.getValue()); - if (optiongroup.getValue().equals(createTypeStr)) { - if (!checkIsDuplicateByKey(existingSMTypeByKey) && !checkIsDuplicate(existingSMTypeByName)) { - createNewSWModuleType(); - } - } else { + if (!mandatoryValuesPresent()) { + return; + } - updateSWModuleType(existingSMTypeByName); + final SoftwareModuleType existingSMTypeByKey = swTypeManagementService + .findSoftwareModuleTypeByKey(typeKey.getValue()); + final SoftwareModuleType existingSMTypeByName = swTypeManagementService + .findSoftwareModuleTypeByName(tagName.getValue()); + if (optiongroup.getValue().equals(createTypeStr)) { + if (!checkIsDuplicateByKey(existingSMTypeByKey) && !checkIsDuplicate(existingSMTypeByName)) { + createNewSWModuleType(); } + } else { + + updateSWModuleType(existingSMTypeByName); } } - /** - * Create new tag. - */ private void createNewSWModuleType() { int assignNumber = 0; final String colorPicked = ColorPickerHelper.getColorPickedString(getColorPickerLayout().getSelPreview()); @@ -253,9 +252,6 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout } } - /** - * update tag. - */ private void updateSWModuleType(final SoftwareModuleType existingType) { final String typeNameValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagName.getValue()); @@ -307,29 +303,6 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout tagPreviewBtnClicked = !tagPreviewBtnClicked; } - /** - * Covert RGB code to {@Color}. - * - * @param value - * RGB vale - * @return Color - */ - protected Color rgbToColorConverter(final String value) { - if (value.startsWith("rgb")) { - final String[] colors = value.substring(value.indexOf('(') + 1, value.length() - 1).split(","); - final int red = Integer.parseInt(colors[0]); - final int green = Integer.parseInt(colors[1]); - final int blue = Integer.parseInt(colors[2]); - if (colors.length > 3) { - final int alpha = (int) (Double.parseDouble(colors[3]) * 255d); - return new Color(red, green, blue, alpha); - } else { - return new Color(red, green, blue); - } - } - return null; - } - @Override public void addColorChangeListener(final ColorChangeListener listener) { LOG.debug("inside addColorChangeListener"); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CommonDialogWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CommonDialogWindow.java index 5a7fdccf8..247ad0c8f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CommonDialogWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CommonDialogWindow.java @@ -8,14 +8,12 @@ */ package org.eclipse.hawkbit.ui.common; +import static com.google.common.base.Preconditions.checkNotNull; + import org.apache.commons.lang3.StringUtils; -import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleBorderWithIcon; import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import com.vaadin.data.Property.ValueChangeListener; import com.vaadin.server.FontAwesome; @@ -39,15 +37,13 @@ public class CommonDialogWindow extends Window { private static final long serialVersionUID = -1321949234316858703L; - private static final Logger LOG = LoggerFactory.getLogger(CommonDialogWindow.class); - private final VerticalLayout mainLayout = new VerticalLayout(); - private String caption; + private final String caption; - private Component content; + private final Component content; - private String helpLink; + private final String helpLink; private Button saveButton; @@ -57,25 +53,38 @@ public class CommonDialogWindow extends Window { protected ValueChangeListener buttonEnableListener; - @Autowired - private transient UiProperties uiProperties; + private final ClickListener saveButtonClickListener; - public CommonDialogWindow() { - - init(null, null); - } + private final ClickListener cancelButtonClickListener; + /** + * Constructor. + * + * @param caption + * the caption + * @param content + * the content + * @param helpLink + * the helpLinks + * @param saveButtonClickListener + * the saveButtonClickListener + * @param cancelButtonClickListener + * the cancelButtonClickListener + */ public CommonDialogWindow(final String caption, final Component content, final String helpLink, final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener) { - + checkNotNull(saveButtonClickListener); + checkNotNull(cancelButtonClickListener); this.caption = caption; this.content = content; this.helpLink = helpLink; + this.saveButtonClickListener = saveButtonClickListener; + this.cancelButtonClickListener = cancelButtonClickListener; - init(saveButtonClickListener, cancelButtonClickListener); + init(); } - public void init(final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener) { + private final void init() { if (content instanceof AbstractOrderedLayout) { ((AbstractOrderedLayout) content).setSpacing(true); @@ -85,8 +94,7 @@ public class CommonDialogWindow extends Window { if (null != content) { mainLayout.addComponent(content); } - final HorizontalLayout buttonLayout = createActionButtonsLayout(saveButtonClickListener, - cancelButtonClickListener); + final HorizontalLayout buttonLayout = createActionButtonsLayout(); mainLayout.addComponent(buttonLayout); mainLayout.setComponentAlignment(buttonLayout, Alignment.TOP_CENTER); @@ -98,38 +106,15 @@ public class CommonDialogWindow extends Window { addStyleName("fontsize"); } - private HorizontalLayout createActionButtonsLayout(final ClickListener saveButtonClickListener, - final ClickListener cancelButtonClickListener) { + private HorizontalLayout createActionButtonsLayout() { buttonsLayout = new HorizontalLayout(); buttonsLayout.setSizeFull(); buttonsLayout.setSpacing(true); - saveButton = SPUIComponentProvider.getButton(SPUIComponentIdProvider.SAVE_BUTTON, "Save", "", "", true, - FontAwesome.SAVE, SPUIButtonStyleBorderWithIcon.class); - saveButton.setSizeUndefined(); - saveButton.addStyleName("default-color"); - if (null != saveButtonClickListener) { - saveButton.addClickListener(saveButtonClickListener); - } else { - throw new IllegalArgumentException("no ClickListener for save button specified"); - } - buttonsLayout.addComponent(saveButton); - buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT); - buttonsLayout.setExpandRatio(saveButton, 1.0F); + createSaveButton(); - cancelButton = SPUIComponentProvider.getButton(SPUIComponentIdProvider.CANCEL_BUTTON, "Cancel", "", "", true, - FontAwesome.TIMES, SPUIButtonStyleBorderWithIcon.class); - cancelButton.setSizeUndefined(); - cancelButton.addStyleName("default-color"); - if (null != cancelButtonClickListener) { - cancelButton.addClickListener(cancelButtonClickListener); - } else { - throw new IllegalArgumentException("no ClickListener for cancel button specified"); - } - buttonsLayout.addComponent(cancelButton); - buttonsLayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_LEFT); - buttonsLayout.setExpandRatio(cancelButton, 1.0F); + createCancelButton(); buttonsLayout.addStyleName("actionButtonsMargin"); addHelpLink(); @@ -137,13 +122,37 @@ public class CommonDialogWindow extends Window { return buttonsLayout; } + private void createCancelButton() { + cancelButton = SPUIComponentProvider.getButton(SPUIComponentIdProvider.CANCEL_BUTTON, "Cancel", "", "", true, + FontAwesome.TIMES, SPUIButtonStyleBorderWithIcon.class); + cancelButton.setSizeUndefined(); + cancelButton.addStyleName("default-color"); + cancelButton.addClickListener(cancelButtonClickListener); + + buttonsLayout.addComponent(cancelButton); + buttonsLayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_LEFT); + buttonsLayout.setExpandRatio(cancelButton, 1.0F); + } + + private void createSaveButton() { + saveButton = SPUIComponentProvider.getButton(SPUIComponentIdProvider.SAVE_BUTTON, "Save", "", "", true, + FontAwesome.SAVE, SPUIButtonStyleBorderWithIcon.class); + saveButton.setSizeUndefined(); + saveButton.addStyleName("default-color"); + saveButton.addClickListener(saveButtonClickListener); + buttonsLayout.addComponent(saveButton); + buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT); + buttonsLayout.setExpandRatio(saveButton, 1.0F); + } + private void addHelpLink() { - if (StringUtils.isNotEmpty(helpLink)) { - final Link helpLinkComponent = SPUIComponentProvider.getHelpLink(helpLink); - buttonsLayout.addComponent(helpLinkComponent); - buttonsLayout.setComponentAlignment(helpLinkComponent, Alignment.MIDDLE_RIGHT); + if (StringUtils.isEmpty(helpLink)) { + return; } + final Link helpLinkComponent = SPUIComponentProvider.getHelpLink(helpLink); + buttonsLayout.addComponent(helpLinkComponent); + buttonsLayout.setComponentAlignment(helpLinkComponent, Alignment.MIDDLE_RIGHT); } public void setSaveButtonEnabled(final boolean enabled) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleBorderWithIcon.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleBorderWithIcon.java index be72dd700..17aece6a7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleBorderWithIcon.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIButtonStyleBorderWithIcon.java @@ -12,13 +12,13 @@ import com.vaadin.server.Resource; import com.vaadin.ui.Button; import com.vaadin.ui.themes.ValoTheme; +/** + * Button with icon decorator. + * + */ public class SPUIButtonStyleBorderWithIcon implements SPUIButtonDecorator { - Button button; - - /** - * Style for button: Primary. - */ + private Button button; @Override public Button decorate(final Button button, final String style, final boolean setStyle, final Resource icon) { @@ -36,19 +36,22 @@ public class SPUIButtonStyleBorderWithIcon implements SPUIButtonDecorator { private void setButtonStyle(final String style, final boolean setStyle) { - if (null != style) { - if (setStyle) { - button.setStyleName(style); - } else { - button.addStyleName(style); - } + if (style == null) { + return; + } + + if (setStyle) { + button.setStyleName(style); + } else { + button.addStyleName(style); } } private void setButtonIcon(final Resource icon) { - if (null != icon) { - button.setIcon(icon); + if (icon == null) { + return; } + button.setIcon(icon); } }