diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/AddSmWindowController.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/AddSmWindowController.java index 6e1688b71..a1193c5d7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/AddSmWindowController.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/AddSmWindowController.java @@ -23,7 +23,6 @@ import org.eclipse.hawkbit.ui.common.event.EventView; import org.eclipse.hawkbit.ui.common.event.SelectionChangedEventPayload; import org.eclipse.hawkbit.ui.common.event.SelectionChangedEventPayload.SelectionChangedEventType; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; -import org.springframework.util.StringUtils; /** * Controller for populating and saving data in Add Software Module Window. @@ -110,10 +109,10 @@ public class AddSmWindowController @Override protected boolean isEntityValid(final ProxySoftwareModule entity) { - final String trimmedName = StringUtils.trimWhitespace(entity.getName()); - final String trimmedVersion = StringUtils.trimWhitespace(entity.getVersion()); + final String name = entity.getName(); + final String version = entity.getVersion(); final Long typeId = entity.getTypeInfo().getId(); return validator.isEntityValid(entity, - () -> smManagement.getByNameAndVersionAndType(trimmedName, trimmedVersion, typeId).isPresent()); + () -> smManagement.getByNameAndVersionAndType(name, version, typeId).isPresent()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/ProxySmValidator.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/ProxySmValidator.java index ca6a0a39b..66e734ced 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/ProxySmValidator.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/ProxySmValidator.java @@ -10,8 +10,8 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import java.util.function.BooleanSupplier; -import org.eclipse.hawkbit.ui.common.EntityValidator; import org.eclipse.hawkbit.ui.common.CommonUiDependencies; +import org.eclipse.hawkbit.ui.common.EntityValidator; import org.eclipse.hawkbit.ui.common.data.proxies.ProxySoftwareModule; import org.springframework.util.StringUtils; @@ -38,10 +38,8 @@ public class ProxySmValidator extends EntityValidator { return false; } - final String trimmedName = StringUtils.trimWhitespace(entity.getName()); - final String trimmedVersion = StringUtils.trimWhitespace(entity.getVersion()); if (duplicateCheck.getAsBoolean()) { - displayValidationError("message.duplicate.softwaremodule", trimmedName, trimmedVersion); + displayValidationError("message.duplicate.softwaremodule", entity.getName(), entity.getVersion()); return false; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SmWindowLayoutComponentBuilder.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SmWindowLayoutComponentBuilder.java index 282356bd9..e07a3e6a6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SmWindowLayoutComponentBuilder.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SmWindowLayoutComponentBuilder.java @@ -14,6 +14,7 @@ import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder; import org.eclipse.hawkbit.ui.common.data.providers.SoftwareModuleTypeDataProvider; import org.eclipse.hawkbit.ui.common.data.proxies.ProxySoftwareModule; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyTypeInfo; +import org.eclipse.hawkbit.ui.utils.TrimmingStringConverter; import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.VaadinMessageSource; @@ -100,7 +101,8 @@ public class SmWindowLayoutComponentBuilder { .prompt(i18n.getMessage(TEXTFIELD_VENDOR)).buildTextComponent(); smVendor.setSizeUndefined(); - binder.forField(smVendor).bind(ProxySoftwareModule::getVendor, ProxySoftwareModule::setVendor); + binder.forField(smVendor).withConverter(new TrimmingStringConverter()).bind(ProxySoftwareModule::getVendor, + ProxySoftwareModule::setVendor); return smVendor; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/UpdateSmWindowController.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/UpdateSmWindowController.java index 11d3f9ef4..12f2ddc63 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/UpdateSmWindowController.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/UpdateSmWindowController.java @@ -17,7 +17,6 @@ import org.eclipse.hawkbit.ui.common.EntityWindowLayout; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyIdentifiableEntity; import org.eclipse.hawkbit.ui.common.data.proxies.ProxySoftwareModule; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; -import org.springframework.util.StringUtils; /** * Controller for update software module window @@ -106,11 +105,11 @@ public class UpdateSmWindowController @Override protected boolean isEntityValid(final ProxySoftwareModule entity) { - final String trimmedName = StringUtils.trimWhitespace(entity.getName()); - final String trimmedVersion = StringUtils.trimWhitespace(entity.getVersion()); + final String name = entity.getName(); + final String version = entity.getVersion(); final Long typeId = entity.getTypeInfo().getId(); - return validator.isEntityValid(entity, () -> hasNameOrVersionChanged(trimmedName, trimmedVersion) - && smManagement.getByNameAndVersionAndType(trimmedName, trimmedVersion, typeId).isPresent()); + return validator.isEntityValid(entity, () -> hasNameOrVersionChanged(name, version) + && smManagement.getByNameAndVersionAndType(name, version, typeId).isPresent()); } private boolean hasNameOrVersionChanged(final String trimmedName, final String trimmedVersion) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/AddSmTypeWindowController.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/AddSmTypeWindowController.java index d5560a9e1..c8cc59bd5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/AddSmTypeWindowController.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/AddSmTypeWindowController.java @@ -18,7 +18,6 @@ import org.eclipse.hawkbit.ui.common.data.proxies.ProxySoftwareModule; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyType; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyType.SmTypeAssign; import org.eclipse.hawkbit.ui.common.type.ProxyTypeValidator; -import org.springframework.util.StringUtils; /** * Controller for Add software module type window @@ -82,9 +81,7 @@ public class AddSmTypeWindowController @Override protected boolean isEntityValid(final ProxyType entity) { - final String trimmedName = StringUtils.trimWhitespace(entity.getName()); - final String trimmedKey = StringUtils.trimWhitespace(entity.getKey()); - return validator.isSmTypeValid(entity, () -> smTypeManagement.getByKey(trimmedKey).isPresent(), - () -> smTypeManagement.getByName(trimmedName).isPresent()); + return validator.isSmTypeValid(entity, () -> smTypeManagement.getByKey(entity.getKey()).isPresent(), + () -> smTypeManagement.getByName(entity.getName()).isPresent()); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/UpdateSmTypeWindowController.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/UpdateSmTypeWindowController.java index 908a9031f..dbe1ffd08 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/UpdateSmTypeWindowController.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/UpdateSmTypeWindowController.java @@ -19,7 +19,6 @@ import org.eclipse.hawkbit.ui.common.data.proxies.ProxySoftwareModule; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyType; import org.eclipse.hawkbit.ui.common.data.proxies.ProxyType.SmTypeAssign; import org.eclipse.hawkbit.ui.common.type.ProxyTypeValidator; -import org.springframework.util.StringUtils; /** * Controller for update software module type window @@ -107,11 +106,11 @@ public class UpdateSmTypeWindowController @Override protected boolean isEntityValid(final ProxyType entity) { - final String trimmedName = StringUtils.trimWhitespace(entity.getName()); - final String trimmedKey = StringUtils.trimWhitespace(entity.getKey()); + final String name = entity.getName(); + final String key = entity.getKey(); return validator.isSmTypeValid(entity, - () -> hasKeyChanged(trimmedKey) && smTypeManagement.getByKey(trimmedKey).isPresent(), - () -> hasNameChanged(trimmedName) && smTypeManagement.getByName(trimmedName).isPresent()); + () -> hasKeyChanged(key) && smTypeManagement.getByKey(key).isPresent(), + () -> hasNameChanged(name) && smTypeManagement.getByName(name).isPresent()); } private boolean hasNameChanged(final String trimmedName) { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java index ee85b52d7..307031489 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/ConfirmationDialog.java @@ -9,7 +9,6 @@ package org.eclipse.hawkbit.ui.common; import java.io.Serializable; -import java.util.function.Consumer; import org.eclipse.hawkbit.ui.common.CommonDialogWindow.ConfirmStyle; import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/FormComponentBuilder.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/FormComponentBuilder.java index ab331ac8c..2bf435296 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/FormComponentBuilder.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/builder/FormComponentBuilder.java @@ -8,16 +8,6 @@ */ package org.eclipse.hawkbit.ui.common.builder; -import com.vaadin.data.Binder; -import com.vaadin.data.Binder.Binding; -import com.vaadin.data.Binder.BindingBuilder; -import com.vaadin.data.Validator; -import com.vaadin.data.ValueProvider; -import com.vaadin.server.Setter; -import com.vaadin.ui.CheckBox; -import com.vaadin.ui.ComboBox; -import com.vaadin.ui.TextArea; -import com.vaadin.ui.TextField; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; import org.eclipse.hawkbit.repository.model.Type; @@ -42,11 +32,23 @@ import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.management.miscs.ActionTypeOptionGroupAssignmentLayout; import org.eclipse.hawkbit.ui.rollout.window.components.AutoStartOptionGroupLayout; import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil; +import org.eclipse.hawkbit.ui.utils.TrimmingStringConverter; import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider; import org.eclipse.hawkbit.ui.utils.UIMessageIdProvider; import org.eclipse.hawkbit.ui.utils.VaadinMessageSource; import org.springframework.util.StringUtils; +import com.vaadin.data.Binder; +import com.vaadin.data.Binder.Binding; +import com.vaadin.data.Binder.BindingBuilder; +import com.vaadin.data.Validator; +import com.vaadin.data.ValueProvider; +import com.vaadin.server.Setter; +import com.vaadin.ui.CheckBox; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.TextArea; +import com.vaadin.ui.TextField; + /** * Builder class for from components */ @@ -77,14 +79,14 @@ public final class FormComponentBuilder { * @return the TextField with its Binding */ public static BoundComponent createNameInput(final Binder binder, - final VaadinMessageSource i18n, final String fieldId) { + final VaadinMessageSource i18n, final String fieldId) { final TextField nameInput = new TextFieldBuilder(NamedEntity.NAME_MAX_SIZE).id(fieldId) - .caption(i18n.getMessage(TEXTFIELD_NAME)).prompt(i18n.getMessage(TEXTFIELD_NAME)).buildTextComponent(); + .caption(i18n.getMessage(TEXTFIELD_NAME)).prompt(i18n.getMessage(TEXTFIELD_NAME)).buildTextComponent(); nameInput.setSizeUndefined(); - final Binding binding = binder.forField(nameInput) - .asRequired(i18n.getMessage(UIMessageIdProvider.MESSAGE_ERROR_NAMEREQUIRED)) - .bind(NameAware::getName, NameAware::setName); + final Binding binding = binder.forField(nameInput).withConverter(new TrimmingStringConverter()) + .asRequired(i18n.getMessage(UIMessageIdProvider.MESSAGE_ERROR_NAMEREQUIRED)) + .bind(NameAware::getName, NameAware::setName); return new BoundComponent<>(nameInput, binding); } @@ -109,7 +111,7 @@ public final class FormComponentBuilder { .buildTextComponent(); versionInput.setSizeUndefined(); - final Binding binding = binder.forField(versionInput) + final Binding binding = binder.forField(versionInput).withConverter(new TrimmingStringConverter()) .asRequired(i18n.getMessage(UIMessageIdProvider.MESSAGE_ERROR_VERSIONREQUIRED)) .bind(VersionAware::getVersion, VersionAware::setVersion); @@ -136,8 +138,8 @@ public final class FormComponentBuilder { } public static BoundComponent