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; } }