From 03fddfe471aede3cb8a7adb854134982e1428c2c Mon Sep 17 00:00:00 2001 From: Jonathan Philip Knoblauch Date: Tue, 15 Mar 2016 13:06:44 +0100 Subject: [PATCH] Done refactoring, fixed bug with validator for gateway token Signed-off-by: Jonathan Philip Knoblauch --- .../hawkbit/simulator/ui/GenerateDialog.java | 52 +++++++++---------- .../hawkbit/simulator/ui/SimulatorView.java | 14 ++--- 2 files changed, 28 insertions(+), 38 deletions(-) diff --git a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java index 059fcd8de..e337e86e7 100644 --- a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java +++ b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/GenerateDialog.java @@ -65,27 +65,26 @@ public class GenerateDialog extends Window { formLayout.setSpacing(true); formLayout.setMargin(true); - namePrefixTextField = createRequiredTextfield("name prefix", "dmfSimulated", FontAwesome.INFO, true, + namePrefixTextField = createRequiredTextfield("name prefix", "dmfSimulated", FontAwesome.INFO, new NullValidator("Must be given", false)); - amountTextField = createRequiredTextfield("amount", new ObjectProperty(10), FontAwesome.GEAR, true, + amountTextField = createRequiredTextfield("amount", new ObjectProperty(10), FontAwesome.GEAR, new RangeValidator("Must be between 1 and 30000", Integer.class, 1, 30000)); - tenantTextField = createRequiredTextfield("tenant", "default", FontAwesome.USER, true, + tenantTextField = createRequiredTextfield("tenant", "default", FontAwesome.USER, new NullValidator("Must be given", false)); pollDelayTextField = createRequiredTextfield("poll delay (sec)", new ObjectProperty(10), - FontAwesome.CLOCK_O, true, - new RangeValidator("Must be between 1 and 60", Integer.class, 1, 60)); + FontAwesome.CLOCK_O, new RangeValidator("Must be between 1 and 60", Integer.class, 1, 60)); pollDelayTextField.setVisible(false); pollUrlTextField = createRequiredTextfield("base poll URL endpoint", "http://localhost:8080", - FontAwesome.FLAG_O, true, new RegexpValidator( + FontAwesome.FLAG_O, new RegexpValidator( "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]", "is not an URL")); pollUrlTextField.setColumns(50); pollUrlTextField.setVisible(false); - gatewayTokenTextField = createRequiredTextfield("gateway token", "", FontAwesome.FLAG_O, true, null); + gatewayTokenTextField = createRequiredTextfield("gateway token", "", FontAwesome.FLAG_O, null); gatewayTokenTextField.setColumns(50); gatewayTokenTextField.setVisible(false); @@ -112,12 +111,9 @@ public class GenerateDialog extends Window { } private void checkValid() { - if (namePrefixTextField.isValid() && amountTextField.isValid() && tenantTextField.isValid() - && pollDelayTextField.isValid()) { - buttonOk.setEnabled(true); - } else { - buttonOk.setEnabled(false); - } + buttonOk.setEnabled(namePrefixTextField.isValid() && amountTextField.isValid() && tenantTextField.isValid() + && pollDelayTextField.isValid()); + } @Override @@ -196,9 +192,10 @@ public class GenerateDialog extends Window { protocolGroup.setNullSelectionAllowed(false); protocolGroup.select(Protocol.DMF_AMQP); protocolGroup.addValueChangeListener(event -> { - pollDelayTextField.setVisible(!pollDelayTextField.isVisible()); - pollUrlTextField.setVisible(!pollUrlTextField.isVisible()); - gatewayTokenTextField.setVisible(!gatewayTokenTextField.isVisible()); + final boolean directDeviceOptionSelected = event.getProperty().getValue().equals(Protocol.DDI_HTTP); + pollDelayTextField.setVisible(directDeviceOptionSelected); + pollUrlTextField.setVisible(directDeviceOptionSelected); + gatewayTokenTextField.setVisible(directDeviceOptionSelected); }); return protocolGroup; } @@ -226,23 +223,24 @@ public class GenerateDialog extends Window { } private TextField createRequiredTextfield(final String caption, final String value, final Resource icon, - final boolean required, final Validator validator) { + final Validator validator) { final TextField textField = new TextField(caption, value); - textField.setIcon(icon); - textField.setRequired(required); - textField.addValidator(validator); - return textField; - + return addTextFieldValues(textField, icon, validator); } private TextField createRequiredTextfield(final String caption, final Property dataSource, final Resource icon, - final boolean required, final Validator validator) { + final Validator validator) { final TextField textField = new TextField(caption, dataSource); - textField.setIcon(icon); - textField.setRequired(required); - textField.addValidator(validator); - return textField; + return addTextFieldValues(textField, icon, validator); + } + private TextField addTextFieldValues(final TextField textField, final Resource icon, final Validator validator) { + textField.setIcon(icon); + textField.setRequired(true); + if (validator != null) { + textField.addValidator(validator); + } + return textField; } } diff --git a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/SimulatorView.java b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/SimulatorView.java index 35db14f4e..e1d6bd15b 100644 --- a/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/SimulatorView.java +++ b/examples/hawkbit-device-simulator/src/main/java/org/eclipse/hawkbit/simulator/ui/SimulatorView.java @@ -28,8 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired; import com.google.common.collect.Lists; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; -import com.vaadin.data.Property.ValueChangeEvent; -import com.vaadin.data.Property.ValueChangeListener; import com.vaadin.data.util.BeanContainer; import com.vaadin.data.util.BeanItem; import com.vaadin.data.util.converter.Converter; @@ -130,15 +128,9 @@ public class SimulatorView extends VerticalLayout implements View { responseComboBox.setItemIcon(ResponseStatus.ERROR, FontAwesome.EXCLAMATION_CIRCLE); responseComboBox.setNullSelectionAllowed(false); responseComboBox.setValue(ResponseStatus.SUCCESSFUL); - responseComboBox.addValueChangeListener(new ValueChangeListener() { - - private static final long serialVersionUID = 1L; - - @Override - public void valueChange(final ValueChangeEvent event) { - beanContainer.getItemIds().forEach(itemId -> beanContainer.getItem(itemId) - .getItemProperty("responseStatus").setValue(event.getProperty().getValue())); - } + responseComboBox.addValueChangeListener(valueChangeEvent -> { + beanContainer.getItemIds().forEach(itemId -> beanContainer.getItem(itemId).getItemProperty("responseStatus") + .setValue(valueChangeEvent.getProperty().getValue())); }); // add all components