From 75905472c8b8422b49cc6feb14ddf63910897ac3 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Mon, 15 Aug 2016 15:38:08 +0200 Subject: [PATCH 01/17] Fix for the dialog window must not close after save if duplicate exists. Signed-off-by: Gaurav --- .../SoftwareModuleAddUpdateWindow.java | 2 ++ .../hawkbit/ui/common/CommonDialogWindow.java | 34 ++++++++++++++++--- .../AbstractCreateUpdateTagLayout.java | 2 ++ .../ui/layouts/CreateUpdateTypeLayout.java | 5 +++ .../DistributionAddUpdateWindowLayout.java | 2 ++ .../TargetAddUpdateWindowLayout.java | 2 ++ 6 files changed, 42 insertions(+), 5 deletions(-) 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 c8eb74313..c8a454337 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 @@ -202,9 +202,11 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se if (HawkbitCommonUtil.isDuplicate(name, version, type)) { uiNotifcation.displayValidationError( i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); + window.setIsDuplicate(Boolean.TRUE); } else { final SoftwareModule newBaseSoftwareModule = HawkbitCommonUtil.addNewBaseSoftware(entityFactory, name, version, vendor, softwareManagement.findSoftwareModuleTypeByName(type), description); + window.setIsDuplicate(Boolean.FALSE); if (newBaseSoftwareModule != null) { /* display success message */ uiNotifcation.displaySuccess(i18n.get("message.save.success", 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 25c4bfc94..fce582222 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 @@ -101,6 +101,8 @@ public class CommonDialogWindow extends Window implements Serializable { private final List> allComponents; private final I18N i18n; + + private boolean isDuplicate; /** * Constructor. @@ -137,11 +139,15 @@ public class CommonDialogWindow extends Window implements Serializable { @Override public void close() { - super.close(); - orginalValues.clear(); - removeListeners(); - allComponents.clear(); - this.saveButton.setEnabled(false); + if(!isDuplicate){ + super.close(); + orginalValues.clear(); + removeListeners(); + allComponents.clear(); + this.saveButton.setEnabled(false); + }else{ + isDuplicate = Boolean.FALSE; + } } private void removeListeners() { @@ -523,4 +529,22 @@ public class CommonDialogWindow extends Window implements Serializable { public void setCancelButtonEnabled(final boolean enabled) { cancelButton.setEnabled(enabled); } + + /** + * Boolean.TRUE/Boolean.FALSE based on the entity saved in the window already exists. + * @return isDuplicate + */ + public boolean getIsDuplicate() { + return isDuplicate; + } + + /** + * Sets Boolean.TRUE/Boolean.FALSE based on the entity saved in the window already exists. + * @param isDuplicate + */ + public void setIsDuplicate(final boolean isDuplicate) { + this.isDuplicate = isDuplicate; + } + + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 8269d4e89..151af5edd 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -563,8 +563,10 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent protected Boolean checkIsDuplicate(final Tag existingTag) { if (existingTag != null) { displayValidationError(i18n.get("message.tag.duplicate.check", new Object[] { existingTag.getName() })); + window.setIsDuplicate(Boolean.TRUE); return Boolean.TRUE; } + window.setIsDuplicate(Boolean.FALSE); return Boolean.FALSE; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java index f25a4b485..d6334cb81 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java @@ -260,8 +260,10 @@ public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayo if (existingType != null) { uiNotification.displayValidationError( i18n.get("message.tag.duplicate.check", new Object[] { existingType.getName() })); + window.setIsDuplicate(Boolean.TRUE); return Boolean.TRUE; } + window.setIsDuplicate(Boolean.FALSE); return Boolean.FALSE; } @@ -271,13 +273,16 @@ public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayo if (existingType instanceof DistributionSetType) { uiNotification.displayValidationError(i18n.get("message.type.key.duplicate.check", new Object[] { ((DistributionSetType) existingType).getKey() })); + window.setIsDuplicate(Boolean.TRUE); return Boolean.TRUE; } else if (existingType instanceof SoftwareModuleType) { uiNotification.displayValidationError(i18n.get("message.type.key.swmodule.duplicate.check", new Object[] { ((SoftwareModuleType) existingType).getKey() })); + window.setIsDuplicate(Boolean.TRUE); return Boolean.TRUE; } } + window.setIsDuplicate(Boolean.FALSE); return Boolean.FALSE; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 069b9b407..6b3ae8096 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -273,9 +273,11 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { distVersionTextField.addStyleName("v-textfield-error"); notificationMessage.displayValidationError( i18n.get("message.duplicate.dist", new Object[] { existingDs.getName(), existingDs.getVersion() })); + window.setIsDuplicate(Boolean.TRUE); return false; } else { + window.setIsDuplicate(Boolean.FALSE); return true; } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 2b08c4dbf..cb73ee298 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -201,8 +201,10 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { if (existingTarget != null) { uINotification.displayValidationError( i18n.get("message.target.duplicate.check", new Object[] { newControlllerId })); + window.setIsDuplicate(Boolean.TRUE); return false; } else { + window.setIsDuplicate(Boolean.FALSE); return true; } } From 3e0c78e832cec2ea690dbacc7c9a1583a7c0c7d0 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 16 Aug 2016 17:28:37 +0200 Subject: [PATCH 02/17] Remove unnecessary style from ActionButtonLayout of CommonDialogWindow Signed-off-by: Melanie Retter --- .../ui/artifacts/smtable/SoftwareModuleAddUpdateWindow.java | 1 - .../management/dstable/DistributionAddUpdateWindowLayout.java | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) 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 c8a454337..46d45e228 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 @@ -183,7 +183,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se window = SPUIWindowDecorator.getWindow(i18n.get("upload.caption.add.new.swmodule"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), null, null, formLayout, i18n); - window.getButtonsLayout().removeStyleName("actionButtonsMargin"); nameTextField.setEnabled(!editSwModule); versionTextField.setEnabled(!editSwModule); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 6b3ae8096..799ac1b99 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -327,10 +327,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { resetComponents(); populateDistSetTypeNameCombo(); populateValuesOfDistribution(editDistId); - window = SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.dist"), null, + return SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.dist"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), null, null, formLayout, i18n); - window.getButtonsLayout().removeStyleName("actionButtonsMargin"); - return window; } /** From fafaf54e3720ee70643fbe321fd84d92ee55bc96 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Wed, 17 Aug 2016 17:36:45 +0200 Subject: [PATCH 03/17] Refactored the code to fix the sonar issues. Signed-off-by: Gaurav --- .../SoftwareModuleAddUpdateWindow.java | 35 +++++--- .../CreateUpdateSoftwareTypeLayout.java | 25 ++++-- .../hawkbit/ui/common/CommonDialogWindow.java | 72 +++++++++-------- .../ui/common/CustomCommonDialogWindow.java | 33 -------- .../ui/decorators/SPUIWindowDecorator.java | 49 ++++++------ .../CreateUpdateDistSetTypeLayout.java | 25 ++++-- .../AbstractCreateUpdateTagLayout.java | 25 ++++-- .../ui/layouts/CreateUpdateTypeLayout.java | 42 ++++------ .../DistributionAddUpdateWindowLayout.java | 79 +++++++++++-------- ...eateUpdateDistributionTagLayoutWindow.java | 12 ++- .../TargetAddUpdateWindowLayout.java | 48 +++++------ .../CreateUpdateTargetTagLayoutWindow.java | 12 ++- .../hawkbit/ui/utils/HawkbitCommonUtil.java | 22 ------ 13 files changed, 238 insertions(+), 241 deletions(-) delete mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CustomCommonDialogWindow.java 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 c8a454337..5a42d1e70 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 @@ -26,6 +26,7 @@ import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; +import org.eclipse.hawkbit.ui.utils.SpringContextHelper; import org.eclipse.hawkbit.ui.utils.UINotification; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; @@ -184,6 +185,7 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se window = SPUIWindowDecorator.getWindow(i18n.get("upload.caption.add.new.swmodule"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), null, null, formLayout, i18n); window.getButtonsLayout().removeStyleName("actionButtonsMargin"); + window.setCloseListener(() -> !isDuplicate()); nameTextField.setEnabled(!editSwModule); versionTextField.setEnabled(!editSwModule); @@ -199,21 +201,30 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se final String description = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); final String type = typeComboBox.getValue() != null ? typeComboBox.getValue().toString() : null; - if (HawkbitCommonUtil.isDuplicate(name, version, type)) { + if (isDuplicate()) { uiNotifcation.displayValidationError( i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); - window.setIsDuplicate(Boolean.TRUE); - } else { - final SoftwareModule newBaseSoftwareModule = HawkbitCommonUtil.addNewBaseSoftware(entityFactory, name, - version, vendor, softwareManagement.findSoftwareModuleTypeByName(type), description); - window.setIsDuplicate(Boolean.FALSE); - 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)); - } + return; } + 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)); + } + } + + private boolean isDuplicate() { + final String name = nameTextField.getValue(); + final String version = versionTextField.getValue(); + final String type = typeComboBox.getValue() != null ? typeComboBox.getValue().toString() : null; + + final SoftwareManagement swMgmtService = SpringContextHelper.getBean(SoftwareManagement.class); + final SoftwareModule swModule = swMgmtService.findSoftwareModuleByNameAndVersion(name, version, + swMgmtService.findSoftwareModuleTypeByName(type)); + return swModule != null; } /** 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 06fb8ed18..76613189b 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 @@ -44,7 +44,7 @@ import com.vaadin.ui.themes.ValoTheme; */ @SpringComponent @ViewScope -public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout { +public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout { private static final long serialVersionUID = -5169398523815919367L; private static final Logger LOG = LoggerFactory.getLogger(CreateUpdateSoftwareTypeLayout.class); @@ -191,19 +191,30 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout { @Override protected void save(final ClickEvent event) { - final SoftwareModuleType existingSMTypeByKey = swTypeManagementService - .findSoftwareModuleTypeByKey(typeKey.getValue()); - final SoftwareModuleType existingSMTypeByName = swTypeManagementService - .findSoftwareModuleTypeByName(tagName.getValue()); if (optiongroup.getValue().equals(createTypeStr)) { - if (!checkIsDuplicateByKey(existingSMTypeByKey) && !checkIsDuplicate(existingSMTypeByName)) { + if (!isDuplicate()) { createNewSWModuleType(); } } else { - updateSWModuleType(existingSMTypeByName); + updateSWModuleType(findEntityByName()); } } + @Override + protected SoftwareModuleType findEntityByKey() { + return swTypeManagementService.findSoftwareModuleTypeByKey(typeKey.getValue()); + } + + @Override + protected SoftwareModuleType findEntityByName() { + return swTypeManagementService.findSoftwareModuleTypeByName(tagName.getValue()); + } + + @Override + protected String getDuplicateKeyErrorMessage(final SoftwareModuleType existingType) { + return i18n.get("message.type.key.swmodule.duplicate.check", new Object[] { existingType.getKey() }); + } + private void createNewSWModuleType() { int assignNumber = 0; final String colorPicked = ColorPickerHelper.getColorPickedString(getColorPickerLayout().getSelPreview()); 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 fce582222..7ff8ca950 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 @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.ui.common; import static com.google.common.base.Preconditions.checkNotNull; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -51,6 +50,7 @@ import com.vaadin.ui.AbstractLayout; import com.vaadin.ui.AbstractOrderedLayout; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; @@ -70,7 +70,7 @@ import com.vaadin.ui.themes.ValoTheme; * corner and a save and cancel button at the bottom. Is not intended to reuse. * */ -public class CommonDialogWindow extends Window implements Serializable { +public class CommonDialogWindow extends Window { private static final long serialVersionUID = 1L; @@ -94,15 +94,15 @@ public class CommonDialogWindow extends Window implements Serializable { private final ClickListener cancelButtonClickListener; - private final ClickListener closeClickListener = event -> close(); + private final ClickListener closeClickListener = event -> onCloseEvent(event); private final transient Map orginalValues; private final List> allComponents; private final I18N i18n; - - private boolean isDuplicate; + + private transient CommonDialogWindowCloseListener closeListener; /** * Constructor. @@ -137,17 +137,29 @@ public class CommonDialogWindow extends Window implements Serializable { init(); } + public void setCloseListener(final CommonDialogWindowCloseListener closeListener) { + this.closeListener = closeListener; + } + + private void onCloseEvent(final ClickEvent clickEvent) { + if (!clickEvent.getButton().equals(saveButton)) { + close(); + return; + } + + if (closeListener != null && !closeListener.canWindowClose()) { + return; + } + close(); + } + @Override public void close() { - if(!isDuplicate){ - super.close(); - orginalValues.clear(); - removeListeners(); - allComponents.clear(); - this.saveButton.setEnabled(false); - }else{ - isDuplicate = Boolean.FALSE; - } + super.close(); + orginalValues.clear(); + removeListeners(); + allComponents.clear(); + this.saveButton.setEnabled(false); } private void removeListeners() { @@ -217,7 +229,7 @@ public class CommonDialogWindow extends Window implements Serializable { setModal(true); addStyleName("fontsize"); setOrginaleValues(); - addListeners(); + addComponenetListeners(); } /** @@ -236,12 +248,6 @@ public class CommonDialogWindow extends Window implements Serializable { saveButton.setEnabled(isSaveButtonEnabledAfterValueChange(null, null)); } - protected void addListeners() { - addComponenetListeners(); - addCloseListenerForSaveButton(); - addCloseListenerForCancelButton(); - } - protected void addCloseListenerForSaveButton() { saveButton.addClickListener(closeClickListener); } @@ -438,6 +444,7 @@ public class CommonDialogWindow extends Window implements Serializable { FontAwesome.TIMES, SPUIButtonStyleNoBorderWithIcon.class); cancelButton.setSizeUndefined(); cancelButton.addStyleName("default-color"); + addCloseListenerForCancelButton(); if (cancelButtonClickListener != null) { cancelButton.addClickListener(cancelButtonClickListener); } @@ -452,6 +459,7 @@ public class CommonDialogWindow extends Window implements Serializable { FontAwesome.SAVE, SPUIButtonStyleNoBorderWithIcon.class); saveButton.setSizeUndefined(); saveButton.addStyleName("default-color"); + addCloseListenerForSaveButton(); saveButton.addClickListener(saveButtonClickListener); saveButton.setEnabled(false); buttonsLayout.addComponent(saveButton); @@ -531,20 +539,16 @@ public class CommonDialogWindow extends Window implements Serializable { } /** - * Boolean.TRUE/Boolean.FALSE based on the entity saved in the window already exists. - * @return isDuplicate + * Called before the save happens. + * */ - public boolean getIsDuplicate() { - return isDuplicate; + @FunctionalInterface + public interface CommonDialogWindowCloseListener { + + /** + * @return true/false based on the dialog window to be closed or not. + */ + boolean canWindowClose(); } - /** - * Sets Boolean.TRUE/Boolean.FALSE based on the entity saved in the window already exists. - * @param isDuplicate - */ - public void setIsDuplicate(final boolean isDuplicate) { - this.isDuplicate = isDuplicate; - } - - } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CustomCommonDialogWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CustomCommonDialogWindow.java deleted file mode 100644 index 8173735ca..000000000 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/CustomCommonDialogWindow.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit.ui.common; - -import org.eclipse.hawkbit.ui.utils.I18N; - -import com.vaadin.ui.AbstractLayout; -import com.vaadin.ui.Button.ClickListener; -import com.vaadin.ui.Component; - -public class CustomCommonDialogWindow extends CommonDialogWindow { - private static final long serialVersionUID = -4453608850403359992L; - - public CustomCommonDialogWindow(final String caption, final Component content, final String helpLink, - final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener, - final AbstractLayout layout, final I18N i18n) { - super(caption, content, helpLink, saveButtonClickListener, cancelButtonClickListener, layout, i18n); - } - - - @Override - protected void addListeners() { - addComponenetListeners(); - addCloseListenerForCancelButton(); - } - -} \ No newline at end of file diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java index 714f1f3a3..3bb8d822f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java @@ -9,7 +9,6 @@ package org.eclipse.hawkbit.ui.decorators; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; -import org.eclipse.hawkbit.ui.common.CustomCommonDialogWindow; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; @@ -48,33 +47,31 @@ public final class SPUIWindowDecorator { public static CommonDialogWindow getWindow(final String caption, final String id, final String type, final Component content, final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener, final String helpLink, final AbstractLayout layout, - final I18N i18n) { - CommonDialogWindow window = null; - if (SPUIDefinitions.CUSTOM_METADATA_WINDOW.equals(type)) { - window = new CustomCommonDialogWindow(caption, content, helpLink, saveButtonClickListener, - cancelButtonClickListener, layout, i18n); - window.setDraggable(true); - window.setClosable(true); - } else { - window = new CommonDialogWindow(caption, content, helpLink, saveButtonClickListener, - cancelButtonClickListener, layout, i18n); - if (null != id) { - window.setId(id); - } - if (SPUIDefinitions.CONFIRMATION_WINDOW.equals(type)) { - window.setDraggable(false); - window.setClosable(true); - window.addStyleName(SPUIStyleDefinitions.CONFIRMATION_WINDOW_CAPTION); + final I18N i18n) { + final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, saveButtonClickListener, + cancelButtonClickListener, layout, i18n); - } else if (SPUIDefinitions.CREATE_UPDATE_WINDOW.equals(type)) { - window.setDraggable(true); - window.setClosable(true); - } - } - return window; - } + if (SPUIDefinitions.CUSTOM_METADATA_WINDOW.equals(type)) { + window.setCloseListener(() -> false); + window.setDraggable(true); + window.setClosable(true); + } else { + if (null != id) { + window.setId(id); + } + if (SPUIDefinitions.CONFIRMATION_WINDOW.equals(type)) { + window.setDraggable(false); + window.setClosable(true); + window.addStyleName(SPUIStyleDefinitions.CONFIRMATION_WINDOW_CAPTION); + + } else if (SPUIDefinitions.CREATE_UPDATE_WINDOW.equals(type)) { + window.setDraggable(true); + window.setClosable(true); + } + } + return window; + } - /** * Decorates window based on type. * diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java index 65e52d448..8d8376101 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java @@ -53,7 +53,7 @@ import com.vaadin.ui.themes.ValoTheme; */ @SpringComponent @ViewScope -public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout { +public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout { private static final long serialVersionUID = -5169398523815877767L; private static final String DIST_TYPE_NAME = "name"; @@ -566,19 +566,30 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout { @Override protected void save(final ClickEvent event) { - final DistributionSetType existingDistTypeByKey = distributionSetManagement - .findDistributionSetTypeByKey(typeKey.getValue()); - final DistributionSetType existingDistTypeByName = distributionSetManagement - .findDistributionSetTypeByName(tagName.getValue()); if (optiongroup.getValue().equals(createTypeStr)) { - if (!checkIsDuplicateByKey(existingDistTypeByKey) && !checkIsDuplicate(existingDistTypeByName)) { + if (!isDuplicate()) { createNewDistributionSetType(); } } else { - updateDistributionSetType(existingDistTypeByKey); + updateDistributionSetType(findEntityByKey()); } } + @Override + protected DistributionSetType findEntityByKey() { + return distributionSetManagement.findDistributionSetTypeByKey(typeKey.getValue()); + } + + @Override + protected DistributionSetType findEntityByName() { + return distributionSetManagement.findDistributionSetTypeByName(tagName.getValue()); + } + + @Override + protected String getDuplicateKeyErrorMessage(final DistributionSetType existingType) { + return i18n.get("message.type.key.duplicate.check", new Object[] { existingType.getKey() }); + } + @Override protected String getWindowCaption() { return i18n.get("caption.add.type"); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 151af5edd..d69f2a769 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -13,6 +13,7 @@ import javax.annotation.PreDestroy; import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TagManagement; import org.eclipse.hawkbit.repository.model.DistributionSetTag; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Tag; import org.eclipse.hawkbit.repository.model.TargetTag; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; @@ -55,7 +56,7 @@ import com.vaadin.ui.themes.ValoTheme; /** * Abstract class for create/update target tag layout. */ -public abstract class AbstractCreateUpdateTagLayout extends CustomComponent +public abstract class AbstractCreateUpdateTagLayout extends CustomComponent implements ColorChangeListener, ColorSelector { private static final long serialVersionUID = 4229177824620576456L; private static final String TAG_NAME_DYNAMIC_STYLE = "new-tag-name"; @@ -464,6 +465,7 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent reset(); window = SPUIWindowDecorator.getWindow(getWindowCaption(), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, this::save, this::discard, null, mainLayout, i18n); + window.setCloseListener(() -> !isDuplicate()); return window; } @@ -560,16 +562,23 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent getPreviewButtonColor(previewColor); } - protected Boolean checkIsDuplicate(final Tag existingTag) { - if (existingTag != null) { - displayValidationError(i18n.get("message.tag.duplicate.check", new Object[] { existingTag.getName() })); - window.setIsDuplicate(Boolean.TRUE); - return Boolean.TRUE; + private boolean isDuplicateByName() { + final E existingType = findEntityByName(); + if (existingType != null) { + uiNotification.displayValidationError( + i18n.get("message.tag.duplicate.check", new Object[] { existingType.getName() })); + return true; } - window.setIsDuplicate(Boolean.FALSE); - return Boolean.FALSE; + + return false; } + protected boolean isDuplicate() { + return isDuplicateByName(); + } + + protected abstract E findEntityByName(); + public String getColorPicked() { return colorPicked; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java index d6334cb81..7b2cd74af 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java @@ -8,9 +8,7 @@ */ package org.eclipse.hawkbit.ui.layouts; -import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.NamedEntity; -import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; @@ -34,7 +32,7 @@ import com.vaadin.ui.themes.ValoTheme; * Superclass defining common properties and methods for creating/updating * types. */ -public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout { +public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout { private static final long serialVersionUID = 5732904956185988397L; @@ -255,37 +253,27 @@ public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayo createDynamicStyleForComponents(tagName, typeKey, tagDesc, event.getColor().getCSS()); } - protected Boolean checkIsDuplicate(final NamedEntity existingType) { + private boolean isDuplicateByKey() { + + final E existingType = findEntityByKey(); if (existingType != null) { - uiNotification.displayValidationError( - i18n.get("message.tag.duplicate.check", new Object[] { existingType.getName() })); - window.setIsDuplicate(Boolean.TRUE); - return Boolean.TRUE; + uiNotification.displayValidationError(getDuplicateKeyErrorMessage(existingType)); + return true; } - window.setIsDuplicate(Boolean.FALSE); - return Boolean.FALSE; + + return false; } - protected Boolean checkIsDuplicateByKey(final NamedEntity existingType) { - - if (existingType != null) { - if (existingType instanceof DistributionSetType) { - uiNotification.displayValidationError(i18n.get("message.type.key.duplicate.check", - new Object[] { ((DistributionSetType) existingType).getKey() })); - window.setIsDuplicate(Boolean.TRUE); - return Boolean.TRUE; - } else if (existingType instanceof SoftwareModuleType) { - uiNotification.displayValidationError(i18n.get("message.type.key.swmodule.duplicate.check", - new Object[] { ((SoftwareModuleType) existingType).getKey() })); - window.setIsDuplicate(Boolean.TRUE); - return Boolean.TRUE; - } - } - window.setIsDuplicate(Boolean.FALSE); - return Boolean.FALSE; + @Override + protected boolean isDuplicate() { + return isDuplicateByKey() || super.isDuplicate(); } + protected abstract E findEntityByKey(); + + protected abstract String getDuplicateKeyErrorMessage(E existingType); + @Override protected void save(final ClickEvent event) { // is implemented in the inherited class diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 6b3ae8096..7a2988918 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -186,29 +186,30 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { * Update Distribution. */ private void updateDistribution() { + + if (isDuplicate()) { + return; + } final String name = HawkbitCommonUtil.trimAndNullIfEmpty(distNameTextField.getValue()); final String version = HawkbitCommonUtil.trimAndNullIfEmpty(distVersionTextField.getValue()); final String distSetTypeName = HawkbitCommonUtil .trimAndNullIfEmpty((String) distsetTypeNameComboBox.getValue()); + final DistributionSet currentDS = distributionSetManagement.findDistributionSetByIdWithDetails(editDistId); + final String desc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); + final boolean isMigStepReq = reqMigStepCheckbox.getValue(); - if (duplicateCheck(name, version)) { - final DistributionSet currentDS = distributionSetManagement.findDistributionSetByIdWithDetails(editDistId); - final String desc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); - final boolean isMigStepReq = reqMigStepCheckbox.getValue(); - - /* identify the changes */ - setDistributionValues(currentDS, name, version, distSetTypeName, desc, isMigStepReq); - try { - distributionSetManagement.updateDistributionSet(currentDS); - notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", - new Object[] { currentDS.getName(), currentDS.getVersion() })); - // update table row+details layout - eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); - } catch (final EntityAlreadyExistsException entityAlreadyExistsException) { - LOG.error("Update distribution failed {}", entityAlreadyExistsException); - notificationMessage.displayValidationError( - i18n.get("message.distribution.no.update", currentDS.getName() + ":" + currentDS.getVersion())); - } + /* identify the changes */ + setDistributionValues(currentDS, name, version, distSetTypeName, desc, isMigStepReq); + try { + distributionSetManagement.updateDistributionSet(currentDS); + notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", + new Object[] { currentDS.getName(), currentDS.getVersion() })); + // update table row+details layout + eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); + } catch (final EntityAlreadyExistsException entityAlreadyExistsException) { + LOG.error("Update distribution failed {}", entityAlreadyExistsException); + notificationMessage.displayValidationError( + i18n.get("message.distribution.no.update", currentDS.getName() + ":" + currentDS.getVersion())); } } @@ -217,24 +218,26 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { */ private void addNewDistribution() { editDistribution = Boolean.FALSE; + if (isDuplicate()) { + return; + } + final String name = HawkbitCommonUtil.trimAndNullIfEmpty(distNameTextField.getValue()); final String version = HawkbitCommonUtil.trimAndNullIfEmpty(distVersionTextField.getValue()); final String distSetTypeName = HawkbitCommonUtil .trimAndNullIfEmpty((String) distsetTypeNameComboBox.getValue()); - if (duplicateCheck(name, version)) { - final String desc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); - final boolean isMigStepReq = reqMigStepCheckbox.getValue(); - DistributionSet newDist = entityFactory.generateDistributionSet(); + final String desc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); + final boolean isMigStepReq = reqMigStepCheckbox.getValue(); + DistributionSet newDist = entityFactory.generateDistributionSet(); - setDistributionValues(newDist, name, version, distSetTypeName, desc, isMigStepReq); - newDist = distributionSetManagement.createDistributionSet(newDist); + setDistributionValues(newDist, name, version, distSetTypeName, desc, isMigStepReq); + newDist = distributionSetManagement.createDistributionSet(newDist); - notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", - new Object[] { newDist.getName(), newDist.getVersion() })); + notificationMessage.displaySuccess( + i18n.get("message.new.dist.save.success", new Object[] { newDist.getName(), newDist.getVersion() })); - eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.NEW_ENTITY, newDist)); - } + eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.NEW_ENTITY, newDist)); } /** @@ -260,7 +263,10 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { distributionSet.setRequiredMigrationStep(isMigStepReq); } - private boolean duplicateCheck(final String name, final String version) { + private boolean isDuplicate() { + final String name = distNameTextField.getValue(); + final String version = distVersionTextField.getValue(); + final DistributionSet existingDs = distributionSetManagement.findDistributionSetByNameAndVersion(name, version); /* * Distribution should not exists with the same name & version. Display @@ -273,13 +279,12 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { distVersionTextField.addStyleName("v-textfield-error"); notificationMessage.displayValidationError( i18n.get("message.duplicate.dist", new Object[] { existingDs.getName(), existingDs.getVersion() })); - window.setIsDuplicate(Boolean.TRUE); - return false; - } else { - window.setIsDuplicate(Boolean.FALSE); return true; } + + return false; + } /** @@ -294,7 +299,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { distsetTypeNameComboBox.removeStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR); descTextArea.clear(); reqMigStepCheckbox.clear(); - } private void populateValuesOfDistribution(final Long editDistId) { @@ -322,6 +326,12 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { } } + /** + * Returns the dialog window for the distributions. + * + * @param editDistId + * @return window + */ public CommonDialogWindow getWindow(final Long editDistId) { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); resetComponents(); @@ -330,6 +340,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { window = SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.dist"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), null, null, formLayout, i18n); window.getButtonsLayout().removeStyleName("actionButtonsMargin"); + window.setCloseListener(() -> !isDuplicate()); return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java index 9544776a6..c12c4aa08 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java @@ -36,7 +36,7 @@ import com.vaadin.ui.UI; */ @SpringComponent @ViewScope -public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdateTagLayout { +public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdateTagLayout { private static final long serialVersionUID = 444276149954167545L; @@ -85,16 +85,20 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat */ @Override public void save(final ClickEvent event) { - final DistributionSetTag existingDistTag = tagManagement.findDistributionSetTag(tagName.getValue()); if (optiongroup.getValue().equals(createTagStr)) { - if (!checkIsDuplicate(existingDistTag)) { + if (!isDuplicate()) { createNewTag(); } } else { - updateExistingTag(existingDistTag); + updateExistingTag(findEntityByName()); } } + @Override + protected DistributionSetTag findEntityByName() { + return tagManagement.findDistributionSetTag(tagName.getValue()); + } + /** * Create new tag. */ diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index cb73ee298..1cdbee971 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -143,31 +143,33 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { } private void addNewTarget() { - final String newControlllerId = HawkbitCommonUtil.trimAndNullIfEmpty(controllerIDTextField.getValue()); - if (duplicateCheck(newControlllerId)) { - final String newName = HawkbitCommonUtil.trimAndNullIfEmpty(nameTextField.getValue()); - final String newDesc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); - - /* create new target entity */ - Target newTarget = entityFactory.generateTarget(newControlllerId); - /* set values to the new target entity */ - setTargetValues(newTarget, newName, newDesc); - /* save new target */ - newTarget = targetManagement.createTarget(newTarget); - final TargetTable targetTable = SpringContextHelper.getBean(TargetTable.class); - final Set s = new HashSet<>(); - s.add(newTarget.getTargetIdName()); - targetTable.setValue(s); - - /* display success msg */ - uINotification.displaySuccess(i18n.get("message.save.success", new Object[] { newTarget.getName() })); + if (isDuplicate()) { + return; } + final String newControlllerId = HawkbitCommonUtil.trimAndNullIfEmpty(controllerIDTextField.getValue()); + final String newName = HawkbitCommonUtil.trimAndNullIfEmpty(nameTextField.getValue()); + final String newDesc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); + + /* create new target entity */ + Target newTarget = entityFactory.generateTarget(newControlllerId); + /* set values to the new target entity */ + setTargetValues(newTarget, newName, newDesc); + /* save new target */ + newTarget = targetManagement.createTarget(newTarget); + final TargetTable targetTable = SpringContextHelper.getBean(TargetTable.class); + final Set s = new HashSet<>(); + s.add(newTarget.getTargetIdName()); + targetTable.setValue(s); + + /* display success msg */ + uINotification.displaySuccess(i18n.get("message.save.success", new Object[] { newTarget.getName() })); } public Window getWindow() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); window = SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.target"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(), null, null, formLayout, i18n); + window.setCloseListener(() -> !isDuplicate()); return window; } @@ -196,17 +198,17 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { target.setDescription(description); } - private boolean duplicateCheck(final String newControlllerId) { + private boolean isDuplicate() { + final String newControlllerId = controllerIDTextField.getValue(); final Target existingTarget = targetManagement.findTargetByControllerID(newControlllerId.trim()); if (existingTarget != null) { uINotification.displayValidationError( i18n.get("message.target.duplicate.check", new Object[] { newControlllerId })); - window.setIsDuplicate(Boolean.TRUE); - return false; - } else { - window.setIsDuplicate(Boolean.FALSE); return true; + } else { + return false; } + } /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java index f96c3b174..4ce10cc7f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java @@ -34,7 +34,7 @@ import com.vaadin.ui.Button.ClickEvent; */ @SpringComponent @ViewScope -public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLayout { +public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLayout { private static final long serialVersionUID = 2446682350481560235L; @@ -102,16 +102,20 @@ public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLa @Override public void save(final ClickEvent event) { - final TargetTag existingTag = tagManagement.findTargetTag(tagName.getValue()); if (optiongroup.getValue().equals(createTagStr)) { - if (!checkIsDuplicate(existingTag)) { + if (!isDuplicate()) { createNewTag(); } } else { - updateExistingTag(existingTag); + updateExistingTag(findEntityByName()); } } + @Override + protected TargetTag findEntityByName() { + return tagManagement.findTargetTag(tagName.getValue()); + } + /** * Create new tag. */ 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 b5ac26d11..9e5b059c0 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 @@ -706,28 +706,6 @@ public final class HawkbitCommonUtil { } } - /** - * Duplicate check - Unique Key. - * - * @param name - * as string - * @param version - * as string - * @param type - * key as string - * @return boolean as flag - */ - public static boolean isDuplicate(final String name, final String version, final String type) { - final SoftwareManagement swMgmtService = SpringContextHelper.getBean(SoftwareManagement.class); - final SoftwareModule swModule = swMgmtService.findSoftwareModuleByNameAndVersion(name, version, - swMgmtService.findSoftwareModuleTypeByName(type)); - boolean duplicate = false; - if (swModule != null) { - duplicate = true; - } - return duplicate; - } - /** * Add new base software module. * From c6c76332c031f499b60098b3ccd099ee1a1fa706 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Wed, 17 Aug 2016 18:05:35 +0200 Subject: [PATCH 04/17] Fixed the bug for textfield stays highlighted in red in the add distribution window. Signed-off-by: Gaurav --- .../DistributionAddUpdateWindowLayout.java | 10 +++++----- .../hawkbit/ui/utils/SPUIStyleDefinitions.java | 16 +++++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 92f06bbc3..a10176235 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -275,8 +275,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { * distribution Id of the edit window is different then the "existingDs" */ if (existingDs != null && !existingDs.getId().equals(editDistId)) { - distNameTextField.addStyleName("v-textfield-error"); - distVersionTextField.addStyleName("v-textfield-error"); + distNameTextField.addStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_LAYOUT_ERROR_HIGHTLIGHT); + distVersionTextField.addStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_LAYOUT_ERROR_HIGHTLIGHT); notificationMessage.displayValidationError( i18n.get("message.duplicate.dist", new Object[] { existingDs.getName(), existingDs.getVersion() })); @@ -293,10 +293,10 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { public void resetComponents() { editDistribution = Boolean.FALSE; distNameTextField.clear(); - distNameTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR); + distNameTextField.removeStyleName("v-textfield-error"); distVersionTextField.clear(); - distVersionTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR); - distsetTypeNameComboBox.removeStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR); + distVersionTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_LAYOUT_ERROR_HIGHTLIGHT); + distsetTypeNameComboBox.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_LAYOUT_ERROR_HIGHTLIGHT); descTextArea.clear(); reqMigStepCheckbox.clear(); } 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 2541348b6..4c8c0ac0b 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 @@ -31,6 +31,8 @@ public final class SPUIStyleDefinitions { */ public static final String SP_TEXTFIELD_ERROR = "textfield-error"; + public static final String SP_TEXTFIELD_LAYOUT_ERROR_HIGHTLIGHT = "v-textfield-error"; + /** * STYLE to highlight wrong data combo box field. */ @@ -136,11 +138,11 @@ public final class SPUIStyleDefinitions { * Artifact Details icon in Distribution View. */ public static final String ARTIFACT_DTLS_ICON = "swm-artifact-dtls-icon"; - - /** - * Distribution metadata icon style. - */ - public static final String DS_METADATA_ICON = "ds-metadata-icon"; + + /** + * Distribution metadata icon style. + */ + public static final String DS_METADATA_ICON = "ds-metadata-icon"; /** * Target table style. @@ -302,11 +304,11 @@ public final class SPUIStyleDefinitions { * Grid style. */ public static final String METADATA_GRID = "metadata-grid"; - + /** * Footer layout style. */ - public static final String FOOTER_LAYOUT = "footer-layout"; + public static final String FOOTER_LAYOUT = "footer-layout"; /** * Constructor. From b80323caf98b4462a3100f64c6d29a4a3733fa24 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 10:44:12 +0200 Subject: [PATCH 05/17] Re-factored the code as per the sonar standards. Signed-off-by: Gaurav --- .../SoftwareModuleAddUpdateWindow.java | 32 ++++++++------ .../CreateUpdateSoftwareTypeLayout.java | 18 ++++---- .../hawkbit/ui/common/CommonDialogWindow.java | 43 +++++++++++------- .../ui/decorators/SPUIWindowDecorator.java | 26 +++++++++-- .../CreateUpdateDistSetTypeLayout.java | 20 ++++----- .../AbstractCreateUpdateTagLayout.java | 35 +++++++++++---- .../ui/layouts/CreateUpdateTypeLayout.java | 31 +++---------- .../DistributionAddUpdateWindowLayout.java | 44 ++++++++++++------- ...eateUpdateDistributionTagLayoutWindow.java | 20 ++++----- .../TargetAddUpdateWindowLayout.java | 30 ++++++++----- .../CreateUpdateTargetTagLayoutWindow.java | 16 +++---- .../rollout/AddUpdateRolloutWindowLayout.java | 34 +++++++++----- 12 files changed, 208 insertions(+), 141 deletions(-) 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 59ece0a59..c3eb8d484 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 @@ -8,8 +8,6 @@ */ package org.eclipse.hawkbit.ui.artifacts.smtable; -import java.io.Serializable; - import javax.annotation.PostConstruct; import org.eclipse.hawkbit.repository.EntityFactory; @@ -17,6 +15,7 @@ import org.eclipse.hawkbit.repository.SoftwareManagement; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; +import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.common.SoftwareModuleTypeBeanQuery; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; @@ -47,7 +46,7 @@ import com.vaadin.ui.themes.ValoTheme; */ @SpringComponent @ViewScope -public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Serializable { +public class SoftwareModuleAddUpdateWindow extends CustomComponent { private static final long serialVersionUID = -5217675246477211483L; @@ -183,9 +182,24 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se setCompositionRoot(formLayout); window = SPUIWindowDecorator.getWindow(i18n.get("upload.caption.add.new.swmodule"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), null, null, formLayout, i18n); - window.setCloseListener(() -> !isDuplicate()); + SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, null, formLayout, i18n); + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + @Override + public void saveOrUpdate() { + if (editSwModule) { + updateSwModule(); + } else { + addNewBaseSoftware(); + } + + } + + @Override + public boolean canWindowClose() { + return editSwModule || !isDuplicate(); + } + }); nameTextField.setEnabled(!editSwModule); versionTextField.setEnabled(!editSwModule); typeComboBox.setEnabled(!editSwModule); @@ -265,14 +279,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se typeComboBox.setValue(swModle.getType().getName()); } - private void saveOrUpdate() { - if (editSwModule) { - updateSwModule(); - } else { - addNewBaseSoftware(); - } - } - public FormLayout getFormLayout() { return formLayout; } 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 76613189b..a898d6b45 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 @@ -32,7 +32,6 @@ import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.shared.ui.colorpicker.Color; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; -import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Label; import com.vaadin.ui.OptionGroup; import com.vaadin.ui.components.colorpicker.ColorChangeListener; @@ -122,7 +121,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout onCloseEvent(event); @@ -102,7 +98,7 @@ public class CommonDialogWindow extends Window { private final I18N i18n; - private transient CommonDialogWindowCloseListener closeListener; + private transient SaveDialogCloseListener closeListener; /** * Constructor. @@ -123,13 +119,10 @@ public class CommonDialogWindow extends Window { * the i18n service */ public CommonDialogWindow(final String caption, final Component content, final String helpLink, - final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener, - final AbstractLayout layout, final I18N i18n) { - checkNotNull(saveButtonClickListener); + final ClickListener cancelButtonClickListener, final AbstractLayout layout, final I18N i18n) { this.caption = caption; this.content = content; this.helpLink = helpLink; - this.saveButtonClickListener = saveButtonClickListener; this.cancelButtonClickListener = cancelButtonClickListener; this.orginalValues = new HashMap<>(); this.allComponents = getAllComponents(layout); @@ -137,7 +130,7 @@ public class CommonDialogWindow extends Window { init(); } - public void setCloseListener(final CommonDialogWindowCloseListener closeListener) { + public void setSaveDialogCloseListener(final SaveDialogCloseListener closeListener) { this.closeListener = closeListener; } @@ -147,10 +140,14 @@ public class CommonDialogWindow extends Window { return; } - if (closeListener != null && !closeListener.canWindowClose()) { - return; + if (closeListener == null || closeListener.canWindowClose()) { + close(); } - close(); + + if (closeListener.canWindowSaveOrUpdate()) { + closeListener.saveOrUpdate(); + } + } @Override @@ -460,7 +457,6 @@ public class CommonDialogWindow extends Window { saveButton.setSizeUndefined(); saveButton.addStyleName("default-color"); addCloseListenerForSaveButton(); - saveButton.addClickListener(saveButtonClickListener); saveButton.setEnabled(false); buttonsLayout.addComponent(saveButton); buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT); @@ -542,13 +538,28 @@ public class CommonDialogWindow extends Window { * Called before the save happens. * */ - @FunctionalInterface - public interface CommonDialogWindowCloseListener { + public interface SaveDialogCloseListener { + + /** + * Default true for all the windows except for DistributionAddUpdate + * window. + * + * @return true/false . + */ + default boolean canWindowSaveOrUpdate() { + return true; + } /** * @return true/false based on the dialog window to be closed or not. */ boolean canWindowClose(); + + /** + * Saves/Updates + * + */ + void saveOrUpdate(); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java index 3bb8d822f..1c3bdf6d1 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java @@ -9,6 +9,7 @@ package org.eclipse.hawkbit.ui.decorators; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; +import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; @@ -44,15 +45,34 @@ public final class SPUIWindowDecorator { * window type * @return Window */ + public static CommonDialogWindow getWindow(final String caption, final String id, final String type, + final Component content, final ClickListener cancelButtonClickListener, final String helpLink, + final AbstractLayout layout, final I18N i18n) { + return getWindow(caption, id, type, content, null, cancelButtonClickListener, helpLink, layout, i18n); + } + public static CommonDialogWindow getWindow(final String caption, final String id, final String type, final Component content, final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener, final String helpLink, final AbstractLayout layout, final I18N i18n) { - final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, saveButtonClickListener, - cancelButtonClickListener, layout, i18n); + final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, cancelButtonClickListener, + layout, i18n); if (SPUIDefinitions.CUSTOM_METADATA_WINDOW.equals(type)) { - window.setCloseListener(() -> false); + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + + @Override + public void saveOrUpdate() { + saveButtonClickListener.buttonClick(null); + + } + + @Override + public boolean canWindowClose() { + return false; + } + + }); window.setDraggable(true); window.setClosable(true); } else { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java index 8d8376101..c4162b742 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/CreateUpdateDistSetTypeLayout.java @@ -40,7 +40,6 @@ import com.vaadin.spring.annotation.ViewScope; import com.vaadin.ui.AbstractSelect.ItemDescriptionGenerator; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; -import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; import com.vaadin.ui.HorizontalLayout; @@ -453,7 +452,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout exten protected abstract String getWindowCaption(); - /** - * Save new tag / update new tag. - * - * @param event - */ - protected abstract void save(final Button.ClickEvent event); + protected abstract void updateEntity(E entity); + + protected abstract void createEntity(); /** * Discard the changes and close the popup. @@ -464,8 +462,29 @@ public abstract class AbstractCreateUpdateTagLayout exten public CommonDialogWindow getWindow() { reset(); window = SPUIWindowDecorator.getWindow(getWindowCaption(), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, - this::save, this::discard, null, mainLayout, i18n); - window.setCloseListener(() -> !isDuplicate()); + this::discard, null, mainLayout, i18n); + + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + + @Override + public void saveOrUpdate() { + if (optiongroup.getValue().equals(createTagStr)) { + if (!isDuplicate()) { + createEntity(); + } + } else { + updateEntity(findEntityByName()); + } + + } + + @Override + public boolean canWindowClose() { + final boolean update = !optiongroup.getValue().equals(createTagStr); + return update || !isDuplicate(); + + } + }); return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java index 7b2cd74af..0e32cfb27 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java @@ -20,7 +20,6 @@ import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.server.Page; import com.vaadin.shared.ui.colorpicker.Color; import com.vaadin.ui.Button; -import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.OptionGroup; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; @@ -32,12 +31,10 @@ import com.vaadin.ui.themes.ValoTheme; * Superclass defining common properties and methods for creating/updating * types. */ -public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout { +public abstract class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout { private static final long serialVersionUID = 5732904956185988397L; - protected String createTypeStr; - protected String updateTypeStr; protected TextField typeKey; public static final String TYPE_NAME_DYNAMIC_STYLE = "new-tag-name"; @@ -52,8 +49,8 @@ public abstract class CreateUpdateTypeLayout extends Abst @Override protected void createRequiredComponents() { - createTypeStr = i18n.get("label.create.type"); - updateTypeStr = i18n.get("label.update.type"); + createTagStr = i18n.get("label.create.type"); + updateTagStr = i18n.get("label.update.type"); comboLabel = SPUIComponentProvider.getLabel(i18n.get("label.choose.type"), null); colorLabel = SPUIComponentProvider.getLabel(i18n.get("label.choose.type.color"), null); colorLabel.addStyleName(SPUIDefinitions.COLOR_LABEL_STYLE); @@ -133,7 +130,7 @@ public abstract class CreateUpdateTypeLayout extends Abst @Override protected void optionValueChanged(final ValueChangeEvent event) { - if (updateTypeStr.equals(event.getProperty().getValue())) { + if (updateTagStr.equals(event.getProperty().getValue())) { tagName.clear(); tagDesc.clear(); typeKey.clear(); @@ -202,25 +199,14 @@ public abstract class CreateUpdateTypeLayout extends Abst optiongroup.setNullSelectionAllowed(false); if (hasCreatePermission) { - optiongroup.addItem(createTypeStr); + optiongroup.addItem(createTagStr); } if (hasUpdatePermission) { - optiongroup.addItem(updateTypeStr); + optiongroup.addItem(updateTagStr); } setOptionGroupDefaultValue(hasCreatePermission, hasUpdatePermission); } - @Override - protected void setOptionGroupDefaultValue(final boolean hasCreatePermission, final boolean hasUpdatePermission) { - - if (hasCreatePermission) { - optiongroup.select(createTypeStr); - } - if (hasUpdatePermission && !hasCreatePermission) { - optiongroup.select(updateTypeStr); - } - } - protected void setColorPickerComponentsColor(final String color) { if (null == color) { @@ -274,11 +260,6 @@ public abstract class CreateUpdateTypeLayout extends Abst protected abstract String getDuplicateKeyErrorMessage(E existingType); - @Override - protected void save(final ClickEvent event) { - // is implemented in the inherited class - } - @Override protected void populateTagNameCombo() { // is implemented in the inherited class diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 76690dd72..c0b39c2d4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -23,6 +23,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.TenantMetaData; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; +import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; @@ -179,14 +180,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { return tenantMetaData.getDefaultDsType(); } - private void saveDistribution() { - if (editDistribution) { - updateDistribution(); - } else { - addNewDistribution(); - } - } - /** * Update Distribution. */ @@ -223,9 +216,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { */ private void addNewDistribution() { editDistribution = Boolean.FALSE; - if (isDuplicate()) { - return; - } final String name = HawkbitCommonUtil.trimAndNullIfEmpty(distNameTextField.getValue()); final String version = HawkbitCommonUtil.trimAndNullIfEmpty(distVersionTextField.getValue()); @@ -243,9 +233,9 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { i18n.get("message.new.dist.save.success", new Object[] { newDist.getName(), newDist.getVersion() })); final Set s = new HashSet<>(); - s.add(new DistributionSetIdName(newDist.getId(), newDist.getName(), newDist.getVersion())); - final DistributionSetTable distributionSetTable = SpringContextHelper.getBean(DistributionSetTable.class); - distributionSetTable.setValue(s); + s.add(new DistributionSetIdName(newDist.getId(), newDist.getName(), newDist.getVersion())); + final DistributionSetTable distributionSetTable = SpringContextHelper.getBean(DistributionSetTable.class); + distributionSetTable.setValue(s); } /** @@ -346,8 +336,30 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { populateDistSetTypeNameCombo(); populateValuesOfDistribution(editDistId); window = SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.dist"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), null, null, formLayout, i18n); - window.setCloseListener(() -> !isDuplicate()); + SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, null, formLayout, i18n); + + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + + @Override + public void saveOrUpdate() { + if (editDistribution) { + updateDistribution(); + } else { + addNewDistribution(); + } + } + + @Override + public boolean canWindowSaveOrUpdate() { + return editDistribution || !isDuplicate(); + } + + @Override + public boolean canWindowClose() { + return !isDuplicate(); + } + }); + return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java index c12c4aa08..fc4fb5bf3 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstag/CreateUpdateDistributionTagLayoutWindow.java @@ -80,18 +80,16 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat optiongroup.addValueChangeListener(this::optionValueChanged); } - /** - * Update DistributionTag. - */ @Override - public void save(final ClickEvent event) { - if (optiongroup.getValue().equals(createTagStr)) { - if (!isDuplicate()) { - createNewTag(); - } - } else { - updateExistingTag(findEntityByName()); - } + protected void createEntity() { + createNewTag(); + + } + + @Override + protected void updateEntity(final DistributionSetTag entity) { + updateExistingTag(findEntityByName()); + } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 1cdbee971..5ba20ccb5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -16,6 +16,7 @@ import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; +import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIWindowDecorator; @@ -134,14 +135,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { eventBus.publish(this, new TargetTableEvent(BaseEntityEventType.UPDATED_ENTITY, latestTarget)); } - private void saveTargetListner() { - if (editTarget) { - updateTarget(); - } else { - addNewTarget(); - } - } - private void addNewTarget() { if (isDuplicate()) { return; @@ -168,8 +161,25 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { public Window getWindow() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); window = SPUIWindowDecorator.getWindow(i18n.get("caption.add.new.target"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(), null, null, formLayout, i18n); - window.setCloseListener(() -> !isDuplicate()); + SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, null, formLayout, i18n); + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + + @Override + public void saveOrUpdate() { + if (editTarget) { + updateTarget(); + } else { + addNewTarget(); + } + + } + + @Override + public boolean canWindowClose() { + return editTarget || !isDuplicate(); + } + }); + return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java index 4ce10cc7f..8aed0896d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettag/CreateUpdateTargetTagLayoutWindow.java @@ -26,7 +26,6 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; -import com.vaadin.ui.Button.ClickEvent; /** * @@ -101,14 +100,13 @@ public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLa } @Override - public void save(final ClickEvent event) { - if (optiongroup.getValue().equals(createTagStr)) { - if (!isDuplicate()) { - createNewTag(); - } - } else { - updateExistingTag(findEntityByName()); - } + protected void updateEntity(final TargetTag entity) { + updateExistingTag(entity); + } + + @Override + protected void createEntity() { + createNewTag(); } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index 8a7d11df1..a76da3c2e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -29,6 +29,7 @@ import org.eclipse.hawkbit.repository.model.RolloutGroupConditionBuilder; import org.eclipse.hawkbit.repository.model.RolloutGroupConditions; import org.eclipse.hawkbit.ui.UiProperties; import org.eclipse.hawkbit.ui.common.CommonDialogWindow; +import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIWindowDecorator; @@ -165,9 +166,30 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { public CommonDialogWindow getWindow() { resetComponents(); - return SPUIWindowDecorator.getWindow(i18n.get("caption.configure.rollout"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> onRolloutSave(), null, + final CommonDialogWindow window = SPUIWindowDecorator.getWindow(i18n.get("caption.configure.rollout"), null, + SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, uiProperties.getLinks().getDocumentation().getRolloutView(), this, i18n); + window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + + @Override + public void saveOrUpdate() { + if (editRolloutEnabled) { + editRollout(); + } else { + createRollout(); + } + + } + + @Override + public boolean canWindowClose() { + if (editRolloutEnabled) { + return duplicateCheckForEdit(); + } + return duplicateCheck(); + } + }); + return window; } /** @@ -393,14 +415,6 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { targetFilterQF); } - private void onRolloutSave() { - if (editRolloutEnabled) { - editRollout(); - } else { - createRollout(); - } - } - private void editRollout() { if (duplicateCheckForEdit() && rolloutForEdit != null) { rolloutForEdit.setName(rolloutName.getValue()); From b2c1e78c7221a4e3e0c2642f7babb4ca4dd608e6 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 11:17:18 +0200 Subject: [PATCH 06/17] Fixed the sonar issues Signed-off-by: Gaurav --- .../ui/decorators/SPUIWindowDecorator.java | 33 +++++++++++++++++++ .../TargetAddUpdateWindowLayout.java | 7 ++++ .../rollout/AddUpdateRolloutWindowLayout.java | 16 +++------ 3 files changed, 44 insertions(+), 12 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java index 1c3bdf6d1..4f6a509b9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/decorators/SPUIWindowDecorator.java @@ -43,14 +43,47 @@ public final class SPUIWindowDecorator { * window id * @param type * window type + * @param content + * content in the window + * @param cancelButtonClickListener + * cancel button + * @param helpLink + * help link + * @param layout + * layout in the window + * @param i18n + * i18n for internationalization * @return Window + * */ + public static CommonDialogWindow getWindow(final String caption, final String id, final String type, final Component content, final ClickListener cancelButtonClickListener, final String helpLink, final AbstractLayout layout, final I18N i18n) { return getWindow(caption, id, type, content, null, cancelButtonClickListener, helpLink, layout, i18n); } + /** + * @param caption + * window caption + * @param id + * window id + * @param type + * window type + * @param content + * content in the window + * @param saveButtonClickListener + * save button + * @param cancelButtonClickListener + * cancel button + * @param helpLink + * help link + * @param layout + * layout in the window + * @param i18n + * i18n for internationalization + * @return window + */ public static CommonDialogWindow getWindow(final String caption, final String id, final String type, final Component content, final ClickListener saveButtonClickListener, final ClickListener cancelButtonClickListener, final String helpLink, final AbstractLayout layout, diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 5ba20ccb5..5b8873975 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -183,6 +183,13 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { return window; } + /** + * Returns Target Update window based on the selected Entity Id in the + * target table. + * + * @param entityId + * @return window + */ public Window getWindow(final String entityId) { populateValuesOfTarget(entityId); getWindow(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index a76da3c2e..2a3e78f1a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -166,10 +166,10 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { public CommonDialogWindow getWindow() { resetComponents(); - final CommonDialogWindow window = SPUIWindowDecorator.getWindow(i18n.get("caption.configure.rollout"), null, - SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, + final CommonDialogWindow commonDialogWindow = SPUIWindowDecorator.getWindow( + i18n.get("caption.configure.rollout"), null, SPUIDefinitions.CREATE_UPDATE_WINDOW, this, null, uiProperties.getLinks().getDocumentation().getRolloutView(), this, i18n); - window.setSaveDialogCloseListener(new SaveDialogCloseListener() { + commonDialogWindow.setSaveDialogCloseListener(new SaveDialogCloseListener() { @Override public void saveOrUpdate() { @@ -189,7 +189,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { return duplicateCheck(); } }); - return window; + return commonDialogWindow; } /** @@ -513,14 +513,6 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { return errorThresoldPercent; } - private boolean validateFields() { - if (!noOfGroups.isValid() || !errorThreshold.isValid() || !triggerThreshold.isValid()) { - uiNotification.displayValidationError(i18n.get("message.correct.invalid.value")); - return false; - } - return true; - } - private boolean duplicateCheck() { if (rolloutManagement.findRolloutByName(getRolloutName()) != null) { uiNotification.displayValidationError( From 381254fa67e5cdb69e7d52890b713104e1c81a21 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 15:34:29 +0200 Subject: [PATCH 07/17] Fixed Sonar issues. Signed-off-by: Gaurav --- .../hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java | 1 - .../dstable/DistributionAddUpdateWindowLayout.java | 1 - .../java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java | 5 +---- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 1fb659535..7dec0ba22 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -465,7 +465,6 @@ public abstract class AbstractCreateUpdateTagLayout exten .cancelButtonClickListener(event -> discard()).layout(mainLayout).i18n(i18n).buildCommonDialogWindow(); window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - @Override public void saveOrUpdate() { if (optiongroup.getValue().equals(createTagStr)) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 593aa8046..8d1d6ffbb 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -339,7 +339,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { .content(this).layout(formLayout).i18n(i18n).buildCommonDialogWindow(); window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - @Override public void saveOrUpdate() { if (editDistribution) { 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 46ffd1c94..c4146cdb9 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 @@ -553,9 +553,7 @@ public final class HawkbitCommonUtil { } /** -<<<<<<< HEAD -======= - * Duplicate check - Unique Key. +Duplicate check - Unique Key. * * @param name * as string @@ -573,7 +571,6 @@ public final class HawkbitCommonUtil { } /** ->>>>>>> refs/heads/master * Add new base software module. * * @param bsname From 4c143cf9d2d841e0a4b4174d5e208ae2af0f7d4b Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Fri, 19 Aug 2016 16:23:53 +0200 Subject: [PATCH 08/17] Add javaDoc, remove unused method parameter Signed-off-by: Melanie Retter --- .../eclipse/hawkbit/ui/common/CommonDialogWindow.java | 9 +++++---- .../targettable/TargetAddUpdateWindowLayout.java | 3 +-- 2 files changed, 6 insertions(+), 6 deletions(-) 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 934196750..9be35b6f9 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 @@ -63,10 +63,8 @@ import com.vaadin.ui.Window; import com.vaadin.ui.themes.ValoTheme; /** - * * Table pop-up-windows including a minimize and close icon in the upper right * corner and a save and cancel button at the bottom. Is not intended to reuse. - * */ public class CommonDialogWindow extends Window { @@ -109,8 +107,6 @@ public class CommonDialogWindow extends Window { * the content * @param helpLink * the helpLinks - * @param saveButtonClickListener - * the saveButtonClickListener * @param cancelButtonClickListener * the cancelButtonClickListener * @param layout @@ -130,6 +126,11 @@ public class CommonDialogWindow extends Window { init(); } + /** + * Sets the close Listener + * + * @param closeListener + */ public void setSaveDialogCloseListener(final SaveDialogCloseListener closeListener) { this.closeListener = closeListener; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 483312ffb..759659354 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -39,7 +39,6 @@ import com.vaadin.ui.CustomComponent; import com.vaadin.ui.FormLayout; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; -import com.vaadin.ui.UI; import com.vaadin.ui.Window; /** @@ -161,7 +160,7 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { if (editTarget) { updateTarget(); } else { - UI.getCurrent().access(() -> addNewTarget()); + addNewTarget(); } } From f7f73ae12c0c5b037c5f858703ceee37af9d86c4 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 17:25:35 +0200 Subject: [PATCH 09/17] Fixed the sonar issues. Signed-off-by: Gaurav --- .../smtable/SoftwareModuleTableHeader.java | 6 +-- .../upload/UploadStatusInfoWindow.java | 1 + .../ui/common/table/AbstractTableHeader.java | 16 ++++++- .../dstable/DistributionSetTableHeader.java | 6 +-- .../smtable/SwModuleTableHeader.java | 6 +-- .../management/dstable/DistributionTable.java | 4 +- .../dstable/DistributionTableHeader.java | 6 +-- .../management/targettable/TargetTable.java | 7 --- .../hawkbit/ui/utils/HawkbitCommonUtil.java | 47 +++++++------------ 9 files changed, 47 insertions(+), 52 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java index 93d217e4c..d5629775c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java @@ -53,17 +53,17 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return i18n.get("upload.swModuleTable.header"); + return softwareHeaderCaption; } @Override protected String getSearchBoxId() { - return SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; + return softwareSerachBoxId; } @Override protected String getSearchRestIconId() { - return SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; + return softwareSearchResetIcon; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadStatusInfoWindow.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadStatusInfoWindow.java index 9b7473e5a..108e09a22 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadStatusInfoWindow.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/upload/UploadStatusInfoWindow.java @@ -332,6 +332,7 @@ public class UploadStatusInfoWindow extends Window { restoreState(); } + @SuppressWarnings("unchecked") private void uploadRecevied(final String filename, final SoftwareModule softwareModule) { final Item item = uploads.addItem(getItemid(filename, softwareModule)); if (item != null) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java index e11d4e7d2..4e48b3eb7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java @@ -19,6 +19,7 @@ import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; +import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.springframework.beans.factory.annotation.Autowired; @@ -68,6 +69,13 @@ public abstract class AbstractTableHeader extends VerticalLayout { private Button bulkUploadIcon; + protected String distributionHeaderCaption; + protected String softwareHeaderCaption; + protected String distributionSearchBoxId; + protected String softwareSerachBoxId; + protected String distributionSearchResetIcon; + protected String softwareSearchResetIcon; + /** * Initialze components. */ @@ -85,6 +93,12 @@ public abstract class AbstractTableHeader extends VerticalLayout { } private void createComponents() { + distributionHeaderCaption = i18n.get("header.dist.table"); + softwareHeaderCaption = i18n.get("upload.swModuleTable.header"); + distributionSearchBoxId = SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; + softwareSerachBoxId = SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; + distributionSearchResetIcon = SPUIComponentIdProvider.DIST_SEARCH_ICON; + softwareSearchResetIcon = SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; headerCaption = createHeaderCaption(); searchField = new TextFieldBuilder(getSearchBoxId()).createSearchField(event -> searchBy(event.getText())); @@ -514,4 +528,4 @@ public abstract class AbstractTableHeader extends VerticalLayout { protected abstract Boolean isBulkUploadAllowed(); -} +} \ No newline at end of file diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java index 8f392101f..e4f62ced0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java @@ -52,17 +52,17 @@ public class DistributionSetTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return i18n.get("header.dist.table"); + return distributionHeaderCaption; } @Override protected String getSearchBoxId() { - return SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; + return distributionSearchBoxId; } @Override protected String getSearchRestIconId() { - return SPUIComponentIdProvider.DIST_SEARCH_ICON; + return distributionSearchResetIcon; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java index 89772bb1b..4dba93be1 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java @@ -52,17 +52,17 @@ public class SwModuleTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return i18n.get("upload.swModuleTable.header"); + return softwareHeaderCaption; } @Override protected String getSearchBoxId() { - return SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; + return softwareSerachBoxId; } @Override protected String getSearchRestIconId() { - return SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; + return softwareSearchResetIcon; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java index e4313dd80..9bb993662 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTable.java @@ -139,9 +139,9 @@ public class DistributionTable extends AbstractNamedVersionTable e.getId().equals(ds.getId())).findFirst() .isPresent(); - if ((ds.isComplete() && !dsVisible)) { + if (ds.isComplete() && !dsVisible) { refreshDistributions(); - } else if ((!ds.isComplete() && dsVisible)) { + } else if (!ds.isComplete() && dsVisible) { refreshDistributions(); if (ds.getId().equals(managementUIState.getLastSelectedDsIdName().getId())) { managementUIState.setLastSelectedDistribution(null); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java index 0e63ddb95..e90eeece6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java @@ -54,17 +54,17 @@ public class DistributionTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return i18n.get("header.dist.table"); + return distributionHeaderCaption; } @Override protected String getSearchBoxId() { - return SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; + return distributionSearchBoxId; } @Override protected String getSearchRestIconId() { - return SPUIComponentIdProvider.DIST_SEARCH_ICON; + return distributionSearchResetIcon; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 85f35c1d7..148714989 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -105,9 +105,7 @@ public class TargetTable extends AbstractTable { private static final Logger LOG = LoggerFactory.getLogger(TargetTable.class); private static final String TARGET_PINNED = "targetPinned"; - private static final long serialVersionUID = -2300392868806614568L; - private static final int PROPERTY_DEPT = 3; private static final String ACTION_NOT_ALLOWED_MSG = "message.action.not.allowed"; @@ -127,7 +125,6 @@ public class TargetTable extends AbstractTable { private ManagementViewAcceptCriteria managementViewAcceptCriteria; private Button targetPinnedBtn; - private Boolean isTargetPinned = Boolean.FALSE; @Override @@ -234,17 +231,14 @@ public class TargetTable extends AbstractTable { protected Container createContainer() { // ADD all the filters to the query config final Map queryConfig = prepareQueryConfigFilters(); - // Create TargetBeanQuery factory with the query config. final BeanQueryFactory targetQF = new BeanQueryFactory<>(TargetBeanQuery.class); targetQF.setQueryConfiguration(queryConfig); - // create lazy query container with lazy defination and query final LazyQueryContainer targetTableContainer = new LazyQueryContainer( new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_CONT_ID_NAME), targetQF); targetTableContainer.getQueryView().getQueryDefinition().setMaxNestedPropertyDepth(PROPERTY_DEPT); - return targetTableContainer; } @@ -339,7 +333,6 @@ public class TargetTable extends AbstractTable { shouldRefreshTargets = true; } } - if (shouldRefreshTargets) { refreshOnDelete(); } else { 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 c4146cdb9..dd0a8934d 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 @@ -1,6 +1,5 @@ /** * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -49,7 +48,6 @@ import com.vaadin.ui.UI; * Common util class. */ public final class HawkbitCommonUtil { - /** * Define spaced string. */ @@ -58,21 +56,17 @@ public final class HawkbitCommonUtil { * Define empty string. */ public static final String SP_STRING_EMPTY = ""; - /** * Html span. */ public static final String SPAN_CLOSE = ""; - public static final String HTML_LI_CLOSE_TAG = ""; public static final String HTML_LI_OPEN_TAG = "
  • "; public static final String HTML_UL_CLOSE_TAG = ""; public static final String HTML_UL_OPEN_TAG = "
      "; private static final String JS_DRAG_COUNT_REM_CHILD = " if(x) { document.head.removeChild(x); } "; - public static final String DIV_DESCRIPTION_START = "

      "; - public static final String DIV_DESCRIPTION_END = "

      "; private static final String DRAG_COUNT_ELEMENT = "var x = document.getElementById('sp-drag-count'); "; @@ -119,7 +113,7 @@ public final class HawkbitCommonUtil { /** * Trim the text and convert into null in case of empty string. - * + * * @param text * as text to be trimed * @return null if the text is null or if the text is blank, text.trim() if @@ -136,7 +130,7 @@ public final class HawkbitCommonUtil { /** * Concatenate the given text all the string arguments with the given * delimiter. - * + * * @param delimiter * the delimiter text to be used while concatenation. * @param texts @@ -162,7 +156,7 @@ public final class HawkbitCommonUtil { /** * Returns the input text within html bold tag ... - * + * * @param text * is the text to be converted in to Bold * @return null if the input text param is null returns text with ... @@ -181,7 +175,7 @@ public final class HawkbitCommonUtil { /** * Get target label Id. - * + * * @param controllerId * as String * @return String as label name @@ -192,7 +186,7 @@ public final class HawkbitCommonUtil { /** * Get distribution table cell id. - * + * * @param name * distribution name * @param version @@ -205,7 +199,7 @@ public final class HawkbitCommonUtil { /** * Get software module label id. - * + * * @param name * software module name * @param version @@ -218,7 +212,7 @@ public final class HawkbitCommonUtil { /** * Get label with software module name and description. - * + * * @param name * software module name * @param desc @@ -233,7 +227,7 @@ public final class HawkbitCommonUtil { /** * Get Label for Artifact Details. - * + * * @param name * @return */ @@ -245,7 +239,7 @@ public final class HawkbitCommonUtil { /** * Get Label for Artifact Details. - * + * * @param caption * as caption of the details * @param name @@ -260,7 +254,7 @@ public final class HawkbitCommonUtil { /** * Get Label for Action History Details. - * + * * @param name * @return */ @@ -272,7 +266,7 @@ public final class HawkbitCommonUtil { /** * Get tool tip for Poll status. - * + * * @param pollStatus * @param i18N * @return @@ -290,7 +284,7 @@ public final class HawkbitCommonUtil { /** * Null check for text. - * + * * @param orgText * text to be formatted * @return String formatted text @@ -302,7 +296,7 @@ public final class HawkbitCommonUtil { /** * Find extra height required to increase by all the components to utilize * the full height of browser for the responsive UI. - * + * * @param newBrowserHeight * as current browser height. * @return extra height required to increase. @@ -314,7 +308,7 @@ public final class HawkbitCommonUtil { /** * Find required extra height of software module. - * + * * @param newBrowserHeight * new browser height * @return float heigth of software module table @@ -354,8 +348,6 @@ public final class HawkbitCommonUtil { } /** - * - * * @param newBrowserHeight * new browser height * @param minPopupHeight @@ -401,7 +393,7 @@ public final class HawkbitCommonUtil { /** * Get target table width based on screen width. - * + * * @param newBrowserWidth * new browser width. * @param minTargetTableLength @@ -553,8 +545,8 @@ public final class HawkbitCommonUtil { } /** -Duplicate check - Unique Key. - * + * Duplicate check - Unique Key. + * * @param name * as string * @param version @@ -635,11 +627,9 @@ Duplicate check - Unique Key. final int assignedCount = result.getAssigned(); final int alreadyAssignedCount = result.getAlreadyAssigned(); final int unassignedCount = result.getUnassigned(); - if (assignedCount == 1) { formMsg.append(i18n.get("message.target.assigned.one", new Object[] { result.getAssignedEntity().get(0).getName(), tagName })).append("
      "); - } else if (assignedCount > 1) { formMsg.append(i18n.get("message.target.assigned.many", new Object[] { assignedCount, tagName })) .append("
      "); @@ -650,11 +640,9 @@ Duplicate check - Unique Key. formMsg.append(alreadyAssigned).append("
      "); } } - if (unassignedCount == 1) { formMsg.append(i18n.get("message.target.unassigned.one", new Object[] { result.getUnassignedEntity().get(0).getName(), tagName })).append("
      "); - } else if (unassignedCount > 1) { formMsg.append(i18n.get("message.target.unassigned.many", new Object[] { unassignedCount, tagName })) .append("
      "); @@ -679,7 +667,6 @@ Duplicate check - Unique Key. } /** - * * Create lazy query container for DS type. * * @param queryFactory From fe113a4bc6f6793dd07c664049b72a5cd51540d1 Mon Sep 17 00:00:00 2001 From: SirWayne Date: Fri, 19 Aug 2016 17:44:23 +0200 Subject: [PATCH 10/17] Fix save and close order for common window dialog. Close the window after the save action, because after the close action there is no UI anymore. So an error cannot shown on the UI. Signed-off-by: SirWayne --- .../SoftwareModuleAddUpdateWindow.java | 59 ++++++------ .../common/AbstractMetadataPopupLayout.java | 36 +++++--- .../hawkbit/ui/common/CommonDialogWindow.java | 58 ++++++++---- .../ui/common/builder/WindowBuilder.java | 19 +--- .../AbstractCreateUpdateTagLayout.java | 44 ++++----- .../DistributionAddUpdateWindowLayout.java | 63 +++++-------- .../TargetAddUpdateWindowLayout.java | 43 +++++---- .../rollout/AddUpdateRolloutWindowLayout.java | 91 ++++++++++--------- 8 files changed, 212 insertions(+), 201 deletions(-) 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 118197d99..af0e2d6ae 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 @@ -50,6 +50,27 @@ import com.vaadin.ui.themes.ValoTheme; @ViewScope public class SoftwareModuleAddUpdateWindow extends CustomComponent { + /** + * @author Dennis Melzer + * + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editSwModule) { + updateSwModule(); + } else { + addNewBaseSoftware(); + } + + } + + @Override + public boolean canWindowSaveOrUpdate() { + return editSwModule || !isDuplicate(); + } + } + private static final long serialVersionUID = -5217675246477211483L; @Autowired @@ -179,28 +200,9 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { setCompositionRoot(formLayout); - window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW) - .caption(i18n.get("upload.caption.add.new.swmodule")).content(this) - .layout(formLayout).i18n(i18n) - .buildCommonDialogWindow(); - - window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - - @Override - public void saveOrUpdate() { - if (editSwModule) { - updateSwModule(); - } else { - addNewBaseSoftware(); - } - - } - - @Override - public boolean canWindowClose() { - return editSwModule || !isDuplicate(); - } - }); + window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW) + .caption(i18n.get("upload.caption.add.new.swmodule")).content(this).layout(formLayout).i18n(i18n) + .saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow(); nameTextField.setEnabled(!editSwModule); versionTextField.setEnabled(!editSwModule); typeComboBox.setEnabled(!editSwModule); @@ -215,11 +217,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { final String description = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); final String type = typeComboBox.getValue() != null ? typeComboBox.getValue().toString() : null; - if (isDuplicate()) { - uiNotifcation.displayValidationError( - i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); - return; - } final SoftwareModule newBaseSoftwareModule = HawkbitCommonUtil.addNewBaseSoftware(entityFactory, name, version, vendor, softwareManagement.findSoftwareModuleTypeByName(type), description); if (newBaseSoftwareModule != null) { @@ -238,7 +235,13 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { final SoftwareManagement swMgmtService = SpringContextHelper.getBean(SoftwareManagement.class); final SoftwareModule swModule = swMgmtService.findSoftwareModuleByNameAndVersion(name, version, swMgmtService.findSoftwareModuleTypeByName(type)); - return swModule != null; + + if (swModule != null) { + uiNotifcation.displayValidationError( + i18n.get("message.duplicate.softwaremodule", new Object[] { name, version })); + return true; + } + return false; } /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java index 773d7a80e..ee89579e0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java @@ -65,6 +65,26 @@ import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent; public abstract class AbstractMetadataPopupLayout extends CustomComponent { + /** + * + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + onSave(); + } + + @Override + public boolean canWindowSaveOrUpdate() { + return true; + } + + @Override + public boolean canWindowClose() { + return false; + } + } + private static final String DELETE_BUTTON = "DELETE_BUTTON"; private static final long serialVersionUID = -1491218218453167613L; @@ -120,20 +140,8 @@ public abstract class AbstractMetadataPopupLayout onCancel()) - .id(SPUIComponentIdProvider.METADATA_POPUP_ID).layout(mainLayout).i18n(i18n).buildCommonDialogWindow(); - - metadataWindow.setSaveDialogCloseListener(new SaveDialogCloseListener() { - - @Override - public void saveOrUpdate() { - onSave(); - } - - @Override - public boolean canWindowClose() { - return false; - } - }); + .id(SPUIComponentIdProvider.METADATA_POPUP_ID).layout(mainLayout).i18n(i18n) + .saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow(); metadataWindow.setHeight(550, Unit.PIXELS); metadataWindow.setWidth(800, Unit.PIXELS); 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 9be35b6f9..7e1852cf0 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,6 +8,8 @@ */ package org.eclipse.hawkbit.ui.common; +import static com.google.common.base.Preconditions.checkNotNull; + import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -63,8 +65,10 @@ import com.vaadin.ui.Window; import com.vaadin.ui.themes.ValoTheme; /** + * * Table pop-up-windows including a minimize and close icon in the upper right * corner and a save and cancel button at the bottom. Is not intended to reuse. + * */ public class CommonDialogWindow extends Window { @@ -107,6 +111,8 @@ public class CommonDialogWindow extends Window { * the content * @param helpLink * the helpLinks + * @param closeListener + * the saveDialogCloseListener * @param cancelButtonClickListener * the cancelButtonClickListener * @param layout @@ -115,10 +121,13 @@ public class CommonDialogWindow extends Window { * the i18n service */ public CommonDialogWindow(final String caption, final Component content, final String helpLink, - final ClickListener cancelButtonClickListener, final AbstractLayout layout, final I18N i18n) { + final SaveDialogCloseListener closeListener, final ClickListener cancelButtonClickListener, + final AbstractLayout layout, final I18N i18n) { + checkNotNull(closeListener); this.caption = caption; this.content = content; this.helpLink = helpLink; + this.closeListener = closeListener; this.cancelButtonClickListener = cancelButtonClickListener; this.orginalValues = new HashMap<>(); this.allComponents = getAllComponents(layout); @@ -126,29 +135,24 @@ public class CommonDialogWindow extends Window { init(); } - /** - * Sets the close Listener - * - * @param closeListener - */ - public void setSaveDialogCloseListener(final SaveDialogCloseListener closeListener) { - this.closeListener = closeListener; - } - private void onCloseEvent(final ClickEvent clickEvent) { if (!clickEvent.getButton().equals(saveButton)) { close(); return; } - if (closeListener == null || closeListener.canWindowClose()) { - close(); - } - + // check first the can window close before you save the dialog, because + // if you save the dialog first, the entity exist and the duplicate + // check is failing. + final boolean canWindowClose = closeListener.canWindowClose(); if (closeListener.canWindowSaveOrUpdate()) { closeListener.saveOrUpdate(); } + if (canWindowClose) { + close(); + } + } @Override @@ -547,14 +551,14 @@ public class CommonDialogWindow extends Window { * * @return true/false . */ - default boolean canWindowSaveOrUpdate() { - return true; - } + boolean canWindowSaveOrUpdate(); /** * @return true/false based on the dialog window to be closed or not. */ - boolean canWindowClose(); + default boolean canWindowClose() { + return canWindowSaveOrUpdate(); + } /** * Saves/Updates @@ -563,4 +567,22 @@ public class CommonDialogWindow extends Window { void saveOrUpdate(); } + // public abstract class DefaultSaveDialogCloseListener implements + // SaveDialogCloseListener { + // + // private boolean canWindowSaveOrUpdate; + // + // @Override + // public boolean canWindowSaveOrUpdate() { + // return this.canWindowSaveOrUpdate; + // } + // + // @Override + // public boolean canWindowClose() { + // this.canWindowSaveOrUpdate = + // return this.canWindowSaveOrUpdate; + // } + // + // } + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/WindowBuilder.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/WindowBuilder.java index f04004b01..faef01ded 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/WindowBuilder.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/WindowBuilder.java @@ -144,23 +144,8 @@ public class WindowBuilder { * @return the window. */ public CommonDialogWindow buildCommonDialogWindow() { - final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, cancelButtonClickListener, - layout, i18n); - window.setSaveDialogCloseListener(saveDialogCloseListener); - decorateWindow(window); - return window; - - } - - /** - * Build the common dialog window. - * - * @return the window. - */ - public CommonDialogWindow buildConfirmationWindow() { - final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, cancelButtonClickListener, - layout, i18n); - window.setSaveDialogCloseListener(saveDialogCloseListener); + final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, saveDialogCloseListener, + cancelButtonClickListener, layout, i18n); decorateWindow(window); return window; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 7dec0ba22..eecafde53 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -61,6 +61,27 @@ import com.vaadin.ui.themes.ValoTheme; */ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent implements ColorChangeListener, ColorSelector { + /** + * + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (optiongroup.getValue().equals(createTagStr)) { + createEntity(); + } else { + updateEntity(findEntityByName()); + } + } + + @Override + public boolean canWindowSaveOrUpdate() { + final boolean update = !optiongroup.getValue().equals(createTagStr); + return update || !isDuplicate(); + + } + } + private static final long serialVersionUID = 4229177824620576456L; private static final String TAG_NAME_DYNAMIC_STYLE = "new-tag-name"; private static final String TAG_DESC_DYNAMIC_STYLE = "new-tag-desc"; @@ -462,27 +483,8 @@ public abstract class AbstractCreateUpdateTagLayout exten public CommonDialogWindow getWindow() { reset(); window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW).caption(getWindowCaption()).content(this) - .cancelButtonClickListener(event -> discard()).layout(mainLayout).i18n(i18n).buildCommonDialogWindow(); - - window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - @Override - public void saveOrUpdate() { - if (optiongroup.getValue().equals(createTagStr)) { - if (!isDuplicate()) { - createEntity(); - } - } else { - updateEntity(findEntityByName()); - } - } - - @Override - public boolean canWindowClose() { - final boolean update = !optiongroup.getValue().equals(createTagStr); - return update || !isDuplicate(); - - } - }); + .cancelButtonClickListener(event -> discard()).layout(mainLayout).i18n(i18n) + .saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow(); return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index 8d1d6ffbb..e3376a0aa 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -18,7 +18,6 @@ import javax.annotation.PostConstruct; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.EntityFactory; import org.eclipse.hawkbit.repository.SystemManagement; -import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.TenantMetaData; @@ -42,8 +41,6 @@ import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.eclipse.hawkbit.ui.utils.SpringContextHelper; import org.eclipse.hawkbit.ui.utils.UINotification; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer; @@ -69,8 +66,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { private static final long serialVersionUID = -5602182034230568435L; - private static final Logger LOG = LoggerFactory.getLogger(DistributionAddUpdateWindowLayout.class); - @Autowired private I18N i18n; @@ -100,6 +95,23 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { private FormLayout formLayout; + private final class SaveOnCloseDialogListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editDistribution) { + updateDistribution(); + } else { + addNewDistribution(); + } + } + + @Override + public boolean canWindowSaveOrUpdate() { + return !isDuplicate(); + } + + } + /** * Initialize Distribution Add and Edit Window. */ @@ -198,17 +210,12 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { /* identify the changes */ setDistributionValues(currentDS, name, version, distSetTypeName, desc, isMigStepReq); - try { - distributionSetManagement.updateDistributionSet(currentDS); - notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", - new Object[] { currentDS.getName(), currentDS.getVersion() })); - // update table row+details layout - eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); - } catch (final EntityAlreadyExistsException entityAlreadyExistsException) { - LOG.error("Update distribution failed {}", entityAlreadyExistsException); - notificationMessage.displayValidationError( - i18n.get("message.distribution.no.update", currentDS.getName() + ":" + currentDS.getVersion())); - } + distributionSetManagement.updateDistributionSet(currentDS); + notificationMessage.displaySuccess(i18n.get("message.new.dist.save.success", + new Object[] { currentDS.getName(), currentDS.getVersion() })); + // update table row+details layout + eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); + } /** @@ -336,28 +343,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { populateDistSetTypeNameCombo(); populateValuesOfDistribution(editDistId); window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW).caption(i18n.get("caption.add.new.dist")) - .content(this).layout(formLayout).i18n(i18n).buildCommonDialogWindow(); - - window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - @Override - public void saveOrUpdate() { - if (editDistribution) { - updateDistribution(); - } else { - addNewDistribution(); - } - } - - @Override - public boolean canWindowSaveOrUpdate() { - return editDistribution || !isDuplicate(); - } - - @Override - public boolean canWindowClose() { - return !isDuplicate(); - } - }); + .content(this).layout(formLayout).i18n(i18n).saveDialogCloseListener(new SaveOnCloseDialogListener()) + .buildCommonDialogWindow(); return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 759659354..7d7b49798 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -47,6 +47,27 @@ import com.vaadin.ui.Window; @SpringComponent @VaadinSessionScope public class TargetAddUpdateWindowLayout extends CustomComponent { + + /** + * + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editTarget) { + updateTarget(); + } else { + addNewTarget(); + } + } + + @Override + public boolean canWindowSaveOrUpdate() { + return editTarget || !isDuplicate(); + } + + } + private static final long serialVersionUID = -6659290471705262389L; @Autowired @@ -127,9 +148,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { } private void addNewTarget() { - if (isDuplicate()) { - return; - } final String newControlllerId = HawkbitCommonUtil.trimAndNullIfEmpty(controllerIDTextField.getValue()); final String newName = HawkbitCommonUtil.trimAndNullIfEmpty(nameTextField.getValue()); final String newDesc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue()); @@ -152,23 +170,8 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { public Window getWindow() { eventBus.publish(this, DragEvent.HIDE_DROP_HINT); window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW).caption(i18n.get("caption.add.new.target")) - .content(this).layout(formLayout).i18n(i18n).buildCommonDialogWindow(); - window.setSaveDialogCloseListener(new SaveDialogCloseListener() { - - @Override - public void saveOrUpdate() { - if (editTarget) { - updateTarget(); - } else { - addNewTarget(); - } - } - - @Override - public boolean canWindowClose() { - return editTarget || !isDuplicate(); - } - }); + .content(this).layout(formLayout).i18n(i18n).saveDialogCloseListener(new SaveOnDialogCloseListener()) + .buildCommonDialogWindow(); return window; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index ff52320ca..1341d8793 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -171,27 +171,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { resetComponents(); final CommonDialogWindow commonDialogWindow = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW) .caption(i18n.get("caption.configure.rollout")).content(this).layout(this).i18n(i18n) - .helpLink(uiProperties.getLinks().getDocumentation().getRolloutView()).buildCommonDialogWindow(); - commonDialogWindow.setSaveDialogCloseListener(new SaveDialogCloseListener() { - - @Override - public void saveOrUpdate() { - if (editRolloutEnabled) { - editRollout(); - } else { - createRollout(); - } - - } - - @Override - public boolean canWindowClose() { - if (editRolloutEnabled) { - return duplicateCheckForEdit(); - } - return duplicateCheck(); - } - }); + .helpLink(uiProperties.getLinks().getDocumentation().getRolloutView()) + .saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow(); return commonDialogWindow; } @@ -418,26 +399,26 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { } private void editRollout() { - if (duplicateCheckForEdit() && rolloutForEdit != null) { - rolloutForEdit.setName(rolloutName.getValue()); - rolloutForEdit.setDescription(description.getValue()); - final DistributionSetIdName distributionSetIdName = (DistributionSetIdName) distributionSet.getValue(); - rolloutForEdit.setDistributionSet( - distributionSetManagement.findDistributionSetById(distributionSetIdName.getId())); - rolloutForEdit.setActionType(getActionType()); - rolloutForEdit.setForcedTime(getForcedTimeStamp()); - final int amountGroup = Integer.parseInt(noOfGroups.getValue()); - final int errorThresoldPercent = getErrorThresoldPercentage(amountGroup); - - for (final RolloutGroup rolloutGroup : rolloutForEdit.getRolloutGroups()) { - rolloutGroup.setErrorConditionExp(triggerThreshold.getValue()); - rolloutGroup.setSuccessConditionExp(String.valueOf(errorThresoldPercent)); - } - final Rollout updatedRollout = rolloutManagement.updateRollout(rolloutForEdit); - uiNotification - .displaySuccess(i18n.get("message.update.success", new Object[] { updatedRollout.getName() })); - eventBus.publish(this, RolloutEvent.UPDATE_ROLLOUT); + if (rolloutForEdit == null) { + return; } + rolloutForEdit.setName(rolloutName.getValue()); + rolloutForEdit.setDescription(description.getValue()); + final DistributionSetIdName distributionSetIdName = (DistributionSetIdName) distributionSet.getValue(); + rolloutForEdit + .setDistributionSet(distributionSetManagement.findDistributionSetById(distributionSetIdName.getId())); + rolloutForEdit.setActionType(getActionType()); + rolloutForEdit.setForcedTime(getForcedTimeStamp()); + final int amountGroup = Integer.parseInt(noOfGroups.getValue()); + final int errorThresoldPercent = getErrorThresoldPercentage(amountGroup); + + for (final RolloutGroup rolloutGroup : rolloutForEdit.getRolloutGroups()) { + rolloutGroup.setErrorConditionExp(triggerThreshold.getValue()); + rolloutGroup.setSuccessConditionExp(String.valueOf(errorThresoldPercent)); + } + final Rollout updatedRollout = rolloutManagement.updateRollout(rolloutForEdit); + uiNotification.displaySuccess(i18n.get("message.update.success", new Object[] { updatedRollout.getName() })); + eventBus.publish(this, RolloutEvent.UPDATE_ROLLOUT); } private boolean duplicateCheckForEdit() { @@ -463,11 +444,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { } private void createRollout() { - if (duplicateCheck()) { - final Rollout rolloutToCreate = saveRollout(); - uiNotification.displaySuccess(i18n.get("message.save.success", new Object[] { rolloutToCreate.getName() })); - eventBus.publish(this, RolloutEvent.CREATE_ROLLOUT); - } + final Rollout rolloutToCreate = saveRollout(); + uiNotification.displaySuccess(i18n.get("message.save.success", new Object[] { rolloutToCreate.getName() })); } private Rollout saveRollout() { @@ -605,6 +583,29 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { return HawkbitCommonUtil.trimAndNullIfEmpty(rolloutName.getValue()); } + /** + * + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editRolloutEnabled) { + editRollout(); + } else { + createRollout(); + } + + } + + @Override + public boolean canWindowSaveOrUpdate() { + if (editRolloutEnabled) { + return duplicateCheckForEdit(); + } + return duplicateCheck(); + } + } + class ErrorThresoldOptionValidator implements Validator { private static final long serialVersionUID = 9049939751976326550L; From 86111ac70c1a72f6d5a271b665ea99b9ecc6a7e2 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 18:08:34 +0200 Subject: [PATCH 11/17] Fixed sonar issues. Signed-off-by: Gaurav --- .../smtable/SoftwareModuleTableHeader.java | 6 ++--- .../ui/common/table/AbstractTableHeader.java | 14 ----------- .../dstable/DistributionSetTableHeader.java | 6 ++--- .../smtable/SwModuleTableHeader.java | 6 ++--- .../ui/layouts/CreateUpdateTypeLayout.java | 23 ------------------- .../dstable/DistributionTableHeader.java | 6 ++--- 6 files changed, 12 insertions(+), 49 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java index d5629775c..93d217e4c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableHeader.java @@ -53,17 +53,17 @@ public class SoftwareModuleTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return softwareHeaderCaption; + return i18n.get("upload.swModuleTable.header"); } @Override protected String getSearchBoxId() { - return softwareSerachBoxId; + return SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; } @Override protected String getSearchRestIconId() { - return softwareSearchResetIcon; + return SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java index 4e48b3eb7..8e7d0b025 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.I18N; -import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; import org.springframework.beans.factory.annotation.Autowired; @@ -69,13 +68,6 @@ public abstract class AbstractTableHeader extends VerticalLayout { private Button bulkUploadIcon; - protected String distributionHeaderCaption; - protected String softwareHeaderCaption; - protected String distributionSearchBoxId; - protected String softwareSerachBoxId; - protected String distributionSearchResetIcon; - protected String softwareSearchResetIcon; - /** * Initialze components. */ @@ -93,12 +85,6 @@ public abstract class AbstractTableHeader extends VerticalLayout { } private void createComponents() { - distributionHeaderCaption = i18n.get("header.dist.table"); - softwareHeaderCaption = i18n.get("upload.swModuleTable.header"); - distributionSearchBoxId = SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; - softwareSerachBoxId = SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; - distributionSearchResetIcon = SPUIComponentIdProvider.DIST_SEARCH_ICON; - softwareSearchResetIcon = SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; headerCaption = createHeaderCaption(); searchField = new TextFieldBuilder(getSearchBoxId()).createSearchField(event -> searchBy(event.getText())); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java index e4f62ced0..8f392101f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableHeader.java @@ -52,17 +52,17 @@ public class DistributionSetTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return distributionHeaderCaption; + return i18n.get("header.dist.table"); } @Override protected String getSearchBoxId() { - return distributionSearchBoxId; + return SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; } @Override protected String getSearchRestIconId() { - return distributionSearchResetIcon; + return SPUIComponentIdProvider.DIST_SEARCH_ICON; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java index 4dba93be1..89772bb1b 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableHeader.java @@ -52,17 +52,17 @@ public class SwModuleTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return softwareHeaderCaption; + return i18n.get("upload.swModuleTable.header"); } @Override protected String getSearchBoxId() { - return softwareSerachBoxId; + return SPUIComponentIdProvider.SW_MODULE_SEARCH_TEXT_FIELD; } @Override protected String getSearchRestIconId() { - return softwareSearchResetIcon; + return SPUIComponentIdProvider.SW_MODULE_SEARCH_RESET_ICON; } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java index 9fdafbc01..51003fb58 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/CreateUpdateTypeLayout.java @@ -21,12 +21,10 @@ import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.server.Page; import com.vaadin.shared.ui.colorpicker.Color; import com.vaadin.ui.Button; -import com.vaadin.ui.OptionGroup; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; import com.vaadin.ui.components.colorpicker.ColorChangeEvent; import com.vaadin.ui.components.colorpicker.ColorSelector; -import com.vaadin.ui.themes.ValoTheme; /** * Superclass defining common properties and methods for creating/updating @@ -187,27 +185,6 @@ public abstract class CreateUpdateTypeLayout extends Abst typeKey.addStyleName(SPUIDefinitions.TYPE_KEY); } - /** - * create option group with Create tag/Update tag based on permissions. - */ - @Override - protected void createOptionGroup(final boolean hasCreatePermission, final boolean hasUpdatePermission) { - - optiongroup = new OptionGroup("Select Action"); - optiongroup.setId(SPUIComponentIdProvider.OPTION_GROUP); - optiongroup.addStyleName(ValoTheme.OPTIONGROUP_SMALL); - optiongroup.addStyleName("custom-option-group"); - optiongroup.setNullSelectionAllowed(false); - - if (hasCreatePermission) { - optiongroup.addItem(createTagStr); - } - if (hasUpdatePermission) { - optiongroup.addItem(updateTagStr); - } - setOptionGroupDefaultValue(hasCreatePermission, hasUpdatePermission); - } - protected void setColorPickerComponentsColor(final String color) { if (null == color) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java index e90eeece6..0e63ddb95 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableHeader.java @@ -54,17 +54,17 @@ public class DistributionTableHeader extends AbstractTableHeader { @Override protected String getHeaderCaption() { - return distributionHeaderCaption; + return i18n.get("header.dist.table"); } @Override protected String getSearchBoxId() { - return distributionSearchBoxId; + return SPUIComponentIdProvider.DIST_SEARCH_TEXTFIELD; } @Override protected String getSearchRestIconId() { - return distributionSearchResetIcon; + return SPUIComponentIdProvider.DIST_SEARCH_ICON; } @Override From e7f5ae048a27c7aa3a0ae1cf889a8209d5a6b62d Mon Sep 17 00:00:00 2001 From: Gaurav Date: Fri, 19 Aug 2016 18:25:43 +0200 Subject: [PATCH 12/17] Fixed Sonar issue. Signed-off-by: Gaurav --- .../hawkbit/ui/common/CommonDialogWindow.java | 18 ------------------ 1 file changed, 18 deletions(-) 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 7e1852cf0..8680a5eba 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 @@ -567,22 +567,4 @@ public class CommonDialogWindow extends Window { void saveOrUpdate(); } - // public abstract class DefaultSaveDialogCloseListener implements - // SaveDialogCloseListener { - // - // private boolean canWindowSaveOrUpdate; - // - // @Override - // public boolean canWindowSaveOrUpdate() { - // return this.canWindowSaveOrUpdate; - // } - // - // @Override - // public boolean canWindowClose() { - // this.canWindowSaveOrUpdate = - // return this.canWindowSaveOrUpdate; - // } - // - // } - } From 9f9277d3ee819e008a8574dee6ad5f84c4302616 Mon Sep 17 00:00:00 2001 From: SirWayne Date: Fri, 19 Aug 2016 18:25:50 +0200 Subject: [PATCH 13/17] Fix save and close order for common window dialog. Close the window after the save action, because after the close action there is no UI anymore. So an error cannot shown on the UI. Signed-off-by: SirWayne --- .../SoftwareModuleAddUpdateWindow.java | 1 - .../common/AbstractMetadataPopupLayout.java | 9 +++--- .../hawkbit/ui/common/CommonDialogWindow.java | 31 +++---------------- .../AbstractCreateUpdateTagLayout.java | 5 ++- .../rollout/AddUpdateRolloutWindowLayout.java | 1 - 5 files changed, 12 insertions(+), 35 deletions(-) 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 af0e2d6ae..e368cf6f8 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 @@ -62,7 +62,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { } else { addNewBaseSoftware(); } - } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java index ee89579e0..ba96158a9 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java @@ -74,15 +74,16 @@ public abstract class AbstractMetadataPopupLayout extends CustomComponent implements ColorChangeListener, ColorSelector { - /** - * - */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override public void saveOrUpdate() { if (optiongroup.getValue().equals(createTagStr)) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index 1341d8793..802e40fb2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -594,7 +594,6 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { } else { createRollout(); } - } @Override From 7bd8b6554c2c12cccb228b6a0cb05499e301f8ee Mon Sep 17 00:00:00 2001 From: SirWayne Date: Mon, 22 Aug 2016 09:30:33 +0200 Subject: [PATCH 14/17] Add javadoc Signed-off-by: SirWayne --- .../SoftwareModuleAddUpdateWindow.java | 39 ++++++------ .../common/AbstractMetadataPopupLayout.java | 42 ++++++------- .../hawkbit/ui/common/CommonDialogWindow.java | 17 +++--- .../AbstractCreateUpdateTagLayout.java | 61 +++++++++++-------- .../DistributionAddUpdateWindowLayout.java | 8 ++- .../TargetAddUpdateWindowLayout.java | 42 ++++++------- .../rollout/AddUpdateRolloutWindowLayout.java | 44 ++++++------- 7 files changed, 135 insertions(+), 118 deletions(-) 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 e368cf6f8..a5e6af609 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 @@ -50,26 +50,6 @@ import com.vaadin.ui.themes.ValoTheme; @ViewScope public class SoftwareModuleAddUpdateWindow extends CustomComponent { - /** - * @author Dennis Melzer - * - */ - private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - @Override - public void saveOrUpdate() { - if (editSwModule) { - updateSwModule(); - } else { - addNewBaseSoftware(); - } - } - - @Override - public boolean canWindowSaveOrUpdate() { - return editSwModule || !isDuplicate(); - } - } - private static final long serialVersionUID = -5217675246477211483L; @Autowired @@ -105,6 +85,25 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent { private FormLayout formLayout; + /** + * Save or update the sw module. + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editSwModule) { + updateSwModule(); + return; + } + addNewBaseSoftware(); + } + + @Override + public boolean canWindowSaveOrUpdate() { + return editSwModule || !isDuplicate(); + } + } + /** * Initialize Distribution Add and Edit Window. */ diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java index ba96158a9..7a1b52a7c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/AbstractMetadataPopupLayout.java @@ -65,27 +65,6 @@ import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent; public abstract class AbstractMetadataPopupLayout extends CustomComponent { - /** - * - */ - private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - @Override - public void saveOrUpdate() { - onSave(); - } - - @Override - public boolean canWindowClose() { - return false; - } - - @Override - public boolean canWindowSaveOrUpdate() { - return true; - } - - } - private static final String DELETE_BUTTON = "DELETE_BUTTON"; private static final long serialVersionUID = -1491218218453167613L; @@ -119,6 +98,27 @@ public abstract class AbstractMetadataPopupLayout component) { allComponents.add(component); component.addValueChangeListener(new ChangeListener(component)); @@ -537,28 +537,31 @@ public class CommonDialogWindow extends Window { } /** - * Called before the save happens. + * Check if the safe action can executed. After a the save action the + * listener checks if the dialog can closed. * */ public interface SaveDialogCloseListener { /** - * Default true for all the windows except for DistributionAddUpdate - * window. + * Checks if the safe action can executed. * - * @return true/false . + * @return = save action can executed = cannot execute + * safe action . */ boolean canWindowSaveOrUpdate(); /** - * @return true/false based on the dialog window to be closed or not. + * Checks if the window can closed after the safe action is executed + * + * @return = window will close = will not closed. */ default boolean canWindowClose() { return true; } /** - * Saves/Updates + * Saves/Updates action. Is called if canWindowSaveOrUpdate is . * */ void saveOrUpdate(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java index 6a43c61b9..0c4aa3111 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/layouts/AbstractCreateUpdateTagLayout.java @@ -57,30 +57,14 @@ import com.vaadin.ui.components.colorpicker.ColorSelector; import com.vaadin.ui.themes.ValoTheme; /** + * * Abstract class for create/update target tag layout. + * + * @param */ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent implements ColorChangeListener, ColorSelector { - private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - - @Override - public void saveOrUpdate() { - if (optiongroup.getValue().equals(createTagStr)) { - createEntity(); - } else { - updateEntity(findEntityByName()); - } - } - - @Override - public boolean canWindowSaveOrUpdate() { - final boolean update = !optiongroup.getValue().equals(createTagStr); - return update || !isDuplicate(); - - } - } - private static final long serialVersionUID = 4229177824620576456L; private static final String TAG_NAME_DYNAMIC_STYLE = "new-tag-name"; private static final String TAG_DESC_DYNAMIC_STYLE = "new-tag-desc"; @@ -127,11 +111,32 @@ public abstract class AbstractCreateUpdateTagLayout exten protected String tagNameValue; protected String tagDescValue; - protected abstract String getWindowCaption(); + /** + * + * Save or update the entity. + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - protected abstract void updateEntity(E entity); + @Override + public void saveOrUpdate() { + if (isUpdateAction()) { + updateEntity(findEntityByName()); + return; + } - protected abstract void createEntity(); + createEntity(); + } + + @Override + public boolean canWindowSaveOrUpdate() { + return isUpdateAction() || !isDuplicate(); + + } + + private boolean isUpdateAction() { + return !optiongroup.getValue().equals(createTagStr); + } + } /** * Discard the changes and close the popup. @@ -419,7 +424,7 @@ public abstract class AbstractCreateUpdateTagLayout exten * * @param colorPickedPreview */ - private void getTargetDynamicStyles(final String colorPickedPreview) { + private static void getTargetDynamicStyles(final String colorPickedPreview) { Page.getCurrent().getJavaScript() .execute(HawkbitCommonUtil.changeToNewSelectedPreviewColor(colorPickedPreview)); } @@ -595,8 +600,6 @@ public abstract class AbstractCreateUpdateTagLayout exten return isDuplicateByName(); } - protected abstract E findEntityByName(); - public String getColorPicked() { return colorPicked; } @@ -637,4 +640,12 @@ public abstract class AbstractCreateUpdateTagLayout exten public void removeColorChangeListener(final ColorChangeListener listener) { } + protected abstract E findEntityByName(); + + protected abstract String getWindowCaption(); + + protected abstract void updateEntity(E entity); + + protected abstract void createEntity(); + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java index e3376a0aa..1b96181b5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionAddUpdateWindowLayout.java @@ -95,14 +95,18 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent { private FormLayout formLayout; + /** + * Save or update distribution set. + * + */ private final class SaveOnCloseDialogListener implements SaveDialogCloseListener { @Override public void saveOrUpdate() { if (editDistribution) { updateDistribution(); - } else { - addNewDistribution(); + return; } + addNewDistribution(); } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java index 7d7b49798..25693dbcb 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetAddUpdateWindowLayout.java @@ -48,26 +48,6 @@ import com.vaadin.ui.Window; @VaadinSessionScope public class TargetAddUpdateWindowLayout extends CustomComponent { - /** - * - */ - private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - @Override - public void saveOrUpdate() { - if (editTarget) { - updateTarget(); - } else { - addNewTarget(); - } - } - - @Override - public boolean canWindowSaveOrUpdate() { - return editTarget || !isDuplicate(); - } - - } - private static final long serialVersionUID = -6659290471705262389L; @Autowired @@ -88,11 +68,31 @@ public class TargetAddUpdateWindowLayout extends CustomComponent { private TextField controllerIDTextField; private TextField nameTextField; private TextArea descTextArea; - private boolean editTarget = Boolean.FALSE; + private boolean editTarget; private String controllerId; private FormLayout formLayout; private CommonDialogWindow window; + /** + * Save or update the target. + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editTarget) { + updateTarget(); + return; + } + addNewTarget(); + } + + @Override + public boolean canWindowSaveOrUpdate() { + return editTarget || !isDuplicate(); + } + + } + /** * Initialize the Add Update Window Component for Target. */ diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java index 802e40fb2..86eeec403 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/AddUpdateRolloutWindowLayout.java @@ -145,6 +145,28 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { private final NullValidator nullValidator = new NullValidator(null, false); + /** + * Save or update the rollout. + */ + private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { + @Override + public void saveOrUpdate() { + if (editRolloutEnabled) { + editRollout(); + return; + } + createRollout(); + } + + @Override + public boolean canWindowSaveOrUpdate() { + if (editRolloutEnabled) { + return duplicateCheckForEdit(); + } + return duplicateCheck(); + } + } + /** * Create components and layout. */ @@ -583,28 +605,6 @@ public class AddUpdateRolloutWindowLayout extends GridLayout { return HawkbitCommonUtil.trimAndNullIfEmpty(rolloutName.getValue()); } - /** - * - */ - private final class SaveOnDialogCloseListener implements SaveDialogCloseListener { - @Override - public void saveOrUpdate() { - if (editRolloutEnabled) { - editRollout(); - } else { - createRollout(); - } - } - - @Override - public boolean canWindowSaveOrUpdate() { - if (editRolloutEnabled) { - return duplicateCheckForEdit(); - } - return duplicateCheck(); - } - } - class ErrorThresoldOptionValidator implements Validator { private static final long serialVersionUID = 9049939751976326550L; From 4d47a86285e0687cf52ab23284571f5e5d4eae4f Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Wed, 24 Aug 2016 14:26:46 +0200 Subject: [PATCH 15/17] Fix typo Signed-off-by: Melanie Retter --- .../hawkbit/amqp/AmqpControllerAuthentfication.java | 8 ++++---- .../AbstractHttpControllerAuthenticationFilter.java | 4 ++-- ...ControllerPreAuthenticateAnonymousDownloadFilter.java | 2 +- ...HttpControllerPreAuthenticateSecurityTokenFilter.java | 2 +- ...rollerPreAuthenticatedGatewaySecurityTokenFilter.java | 2 +- ...tpControllerPreAuthenticatedSecurityHeaderFilter.java | 2 +- .../security/AbstractControllerAuthenticationFilter.java | 2 +- .../ControllerPreAuthenticatedAnonymousFilter.java | 2 +- ...icationFilter.java => PreAuthentificationFilter.java} | 9 +++------ 9 files changed, 15 insertions(+), 18 deletions(-) rename hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/{PreAuthenficationFilter.java => PreAuthentificationFilter.java} (95%) diff --git a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentfication.java b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentfication.java index 788d1d8d8..ccefb01a1 100644 --- a/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentfication.java +++ b/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentfication.java @@ -24,7 +24,7 @@ import org.eclipse.hawkbit.security.ControllerPreAuthenticatedGatewaySecurityTok import org.eclipse.hawkbit.security.ControllerPreAuthenticatedSecurityHeaderFilter; import org.eclipse.hawkbit.security.DdiSecurityProperties; import org.eclipse.hawkbit.security.PreAuthTokenSourceTrustAuthenticationProvider; -import org.eclipse.hawkbit.security.PreAuthenficationFilter; +import org.eclipse.hawkbit.security.PreAuthentificationFilter; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.slf4j.Logger; @@ -45,7 +45,7 @@ public class AmqpControllerAuthentfication { private final PreAuthTokenSourceTrustAuthenticationProvider preAuthenticatedAuthenticationProvider; - private final List filterChain = new ArrayList<>(); + private final List filterChain = new ArrayList<>(); @Autowired private ControllerManagement controllerManagement; @@ -107,7 +107,7 @@ public class AmqpControllerAuthentfication { */ public Authentication doAuthenticate(final TenantSecurityToken secruityToken) { PreAuthenticatedAuthenticationToken authentication = new PreAuthenticatedAuthenticationToken(null, null); - for (final PreAuthenficationFilter filter : filterChain) { + for (final PreAuthentificationFilter filter : filterChain) { final PreAuthenticatedAuthenticationToken authenticationRest = createAuthentication(filter, secruityToken); if (authenticationRest != null) { authentication = authenticationRest; @@ -119,7 +119,7 @@ public class AmqpControllerAuthentfication { } - private static PreAuthenticatedAuthenticationToken createAuthentication(final PreAuthenficationFilter filter, + private static PreAuthenticatedAuthenticationToken createAuthentication(final PreAuthentificationFilter filter, final TenantSecurityToken secruityToken) { if (!filter.isEnable(secruityToken)) { diff --git a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/AbstractHttpControllerAuthenticationFilter.java b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/AbstractHttpControllerAuthenticationFilter.java index 0a4ad0b72..70f672155 100644 --- a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/AbstractHttpControllerAuthenticationFilter.java +++ b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/AbstractHttpControllerAuthenticationFilter.java @@ -68,7 +68,7 @@ public abstract class AbstractHttpControllerAuthenticationFilter extends Abstrac private final AntPathMatcher pathExtractor; - private PreAuthenficationFilter abstractControllerAuthenticationFilter; + private PreAuthentificationFilter abstractControllerAuthenticationFilter; /** * Constructor for sub-classes. @@ -111,7 +111,7 @@ public abstract class AbstractHttpControllerAuthenticationFilter extends Abstrac } } - protected abstract PreAuthenficationFilter createControllerAuthenticationFilter(); + protected abstract PreAuthentificationFilter createControllerAuthenticationFilter(); @Override protected void successfulAuthentication(final HttpServletRequest request, final HttpServletResponse response, diff --git a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateAnonymousDownloadFilter.java b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateAnonymousDownloadFilter.java index 40fd1e555..7eb338e31 100644 --- a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateAnonymousDownloadFilter.java +++ b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateAnonymousDownloadFilter.java @@ -39,7 +39,7 @@ public class HttpControllerPreAuthenticateAnonymousDownloadFilter extends Abstra } @Override - protected PreAuthenficationFilter createControllerAuthenticationFilter() { + protected PreAuthentificationFilter createControllerAuthenticationFilter() { return new ControllerPreAuthenticatedAnonymousDownload(tenantConfigurationManagement, tenantAware, systemSecurityContext); } diff --git a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateSecurityTokenFilter.java b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateSecurityTokenFilter.java index 1eb155b9a..8926506e1 100644 --- a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateSecurityTokenFilter.java +++ b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticateSecurityTokenFilter.java @@ -55,7 +55,7 @@ public class HttpControllerPreAuthenticateSecurityTokenFilter extends AbstractHt } @Override - protected PreAuthenficationFilter createControllerAuthenticationFilter() { + protected PreAuthentificationFilter createControllerAuthenticationFilter() { return new ControllerPreAuthenticateSecurityTokenFilter(tenantConfigurationManagement, controllerManagement, tenantAware, systemSecurityContext); } diff --git a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedGatewaySecurityTokenFilter.java b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedGatewaySecurityTokenFilter.java index 930c66dca..985c04f34 100644 --- a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedGatewaySecurityTokenFilter.java +++ b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedGatewaySecurityTokenFilter.java @@ -43,7 +43,7 @@ public class HttpControllerPreAuthenticatedGatewaySecurityTokenFilter } @Override - protected PreAuthenficationFilter createControllerAuthenticationFilter() { + protected PreAuthentificationFilter createControllerAuthenticationFilter() { return new ControllerPreAuthenticatedGatewaySecurityTokenFilter(tenantConfigurationManagement, tenantAware, systemSecurityContext); } diff --git a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedSecurityHeaderFilter.java b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedSecurityHeaderFilter.java index 162e2688d..d4221a2ca 100644 --- a/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedSecurityHeaderFilter.java +++ b/hawkbit-http-security/src/main/java/org/eclipse/hawkbit/security/HttpControllerPreAuthenticatedSecurityHeaderFilter.java @@ -54,7 +54,7 @@ public class HttpControllerPreAuthenticatedSecurityHeaderFilter extends Abstract } @Override - protected PreAuthenficationFilter createControllerAuthenticationFilter() { + protected PreAuthentificationFilter createControllerAuthenticationFilter() { return new ControllerPreAuthenticatedSecurityHeaderFilter(caCommonNameHeader, caAuthorityNameHeader, tenantConfigurationManagement, tenantAware, systemSecurityContext); } diff --git a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/AbstractControllerAuthenticationFilter.java b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/AbstractControllerAuthenticationFilter.java index 9a1cd2aea..edf2ef034 100644 --- a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/AbstractControllerAuthenticationFilter.java +++ b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/AbstractControllerAuthenticationFilter.java @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; * * */ -public abstract class AbstractControllerAuthenticationFilter implements PreAuthenficationFilter { +public abstract class AbstractControllerAuthenticationFilter implements PreAuthentificationFilter { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractControllerAuthenticationFilter.class); diff --git a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/ControllerPreAuthenticatedAnonymousFilter.java b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/ControllerPreAuthenticatedAnonymousFilter.java index cf55c47fb..4aed42c95 100644 --- a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/ControllerPreAuthenticatedAnonymousFilter.java +++ b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/ControllerPreAuthenticatedAnonymousFilter.java @@ -16,7 +16,7 @@ import org.eclipse.hawkbit.dmf.json.model.TenantSecurityToken; * * @see DdiSecurityProperties */ -public class ControllerPreAuthenticatedAnonymousFilter implements PreAuthenficationFilter { +public class ControllerPreAuthenticatedAnonymousFilter implements PreAuthentificationFilter { private final DdiSecurityProperties ddiSecurityConfiguration; diff --git a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthenficationFilter.java b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthentificationFilter.java similarity index 95% rename from hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthenficationFilter.java rename to hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthentificationFilter.java index 5e4aacfa9..90f2acd50 100644 --- a/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthenficationFilter.java +++ b/hawkbit-security-integration/src/main/java/org/eclipse/hawkbit/security/PreAuthentificationFilter.java @@ -16,12 +16,9 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; /** - * Interface for Pre Authenfication. - * - * - * + * Interface for Pre Authentification. */ -public interface PreAuthenficationFilter { +public interface PreAuthentificationFilter { /** * Check if the filter is enabled. @@ -60,6 +57,6 @@ public interface PreAuthenficationFilter { */ default Collection getSuccessfulAuthenticationAuthorities() { return Collections.emptyList(); - }; + } } From 61ebcc89ff16d814ce1b2e348eacdd92a511a980 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Wed, 24 Aug 2016 17:40:23 +0200 Subject: [PATCH 16/17] Fix typo Signed-off-by: Melanie Retter --- .../org/eclipse/hawkbit/ui/common/CommonDialogWindow.java | 4 ++-- .../eclipse/hawkbit/ui/common/table/AbstractTableHeader.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 20c597b4c..ba9de4539 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 @@ -228,7 +228,7 @@ public class CommonDialogWindow extends Window { setModal(true); addStyleName("fontsize"); setOrginaleValues(); - addComponenetListeners(); + addComponentListeners(); } /** @@ -255,7 +255,7 @@ public class CommonDialogWindow extends Window { cancelButton.addClickListener(closeClickListener); } - protected void addComponenetListeners() { + protected void addComponentListeners() { for (final AbstractField field : allComponents) { if (field instanceof TextChangeNotifier) { ((TextChangeNotifier) field).addTextChangeListener(new ChangeListener(field)); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java index 8e7d0b025..e11d4e7d2 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java @@ -514,4 +514,4 @@ public abstract class AbstractTableHeader extends VerticalLayout { protected abstract Boolean isBulkUploadAllowed(); -} \ No newline at end of file +} From 1620385e3525011328ff3a46f71e918e726bfe16 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Thu, 25 Aug 2016 10:59:37 +0200 Subject: [PATCH 17/17] Insert empty row in header Signed-off-by: Melanie Retter --- .../java/org/eclipse/hawkbit/ui/utils/HawkbitCommonUtil.java | 1 + 1 file changed, 1 insertion(+) 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 dd0a8934d..e20d4cbae 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 @@ -1,5 +1,6 @@ /** * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at