diff options
author | elmot <elmotelmot.vaadin.com> | 2017-07-28 15:12:43 +0300 |
---|---|---|
committer | elmot <elmotelmot.vaadin.com> | 2017-07-28 15:12:43 +0300 |
commit | a5183f592bef2bf0add1cef073b9350563a37ea1 (patch) | |
tree | 6903420466635fe6ea034c5b62e48ed96befec77 | |
parent | 84a52d57ea208b9b79aa6c7d8ac5c65051359ba6 (diff) | |
download | vaadin-framework-a5183f592bef2bf0add1cef073b9350563a37ea1.tar.gz vaadin-framework-a5183f592bef2bf0add1cef073b9350563a37ea1.zip |
Empty string handling fix again
3 files changed, 12 insertions, 11 deletions
diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java index e9cc87359d..3db6ce42ea 100644 --- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java +++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java @@ -217,7 +217,12 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster & if (hasChanges) { dateString = newDateString; - if (newDateString != null && !newDateString.isEmpty()) { + if (newDateString == null || newDateString.isEmpty()) { + setValue(newDate, true); + uiHasValidDateString = true; + currentParseErrorMessage = null; + setComponentError(null); + } else { if (variables.get("lastInvalidDateString") != null) { Result<T> parsedDate = handleUnparsableDateString(dateString); parsedDate.ifOk(this::setValue); @@ -230,8 +235,6 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster & } else { setValue(newDate, true); } - } else { - setValue(newDate, true); } markAsDirty(); } diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java index dacbae3db1..b7df7d7f20 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java @@ -46,15 +46,14 @@ public class DateFieldIsValidTest extends MultiBrowserTest { assertLogText("2. buttonClick: value: 01/01/01, is valid: true"); dateTextbox.sendKeys("lala", Keys.TAB); - assertLogText("3. valueChange: value: null, is valid: false"); button.click(); - assertLogText("4. buttonClick: value: null, is valid: false"); + assertLogText("3. buttonClick: value: null, is valid: false"); dateTextbox.clear(); dateTextbox.sendKeys("02/02/02", Keys.TAB); - assertLogText("5. valueChange: value: 02/02/02, is valid: true"); + assertLogText("4. valueChange: value: 02/02/02, is valid: true"); button.click(); - assertLogText("6. buttonClick: value: 02/02/02, is valid: true"); + assertLogText("5. buttonClick: value: 02/02/02, is valid: true"); } private void assertLogText(String expected) throws Exception { diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java index 06e8a146c0..04acc214e9 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java @@ -46,15 +46,14 @@ public class DateTimeFieldIsValidTest extends MultiBrowserTest { assertLogText("2. buttonClick: value: 01/01/01 1.12, is valid: true"); dateTextbox.sendKeys("lala", Keys.TAB); - assertLogText("3. valueChange: value: null, is valid: false"); button.click(); - assertLogText("4. buttonClick: value: null, is valid: false"); + assertLogText("3. buttonClick: value: null, is valid: false"); dateTextbox.clear(); dateTextbox.sendKeys("02/02/02 2.34", Keys.TAB); - assertLogText("5. valueChange: value: 02/02/02 2.34, is valid: true"); + assertLogText("4. valueChange: value: 02/02/02 2.34, is valid: true"); button.click(); - assertLogText("6. buttonClick: value: 02/02/02 2.34, is valid: true"); + assertLogText("5. buttonClick: value: 02/02/02 2.34, is valid: true"); } private void assertLogText(String expected) throws Exception { |