From 0052d59a318075a3ce8202b2eab84e9d643fc544 Mon Sep 17 00:00:00 2001 From: Denis Anisimov Date: Mon, 26 Sep 2016 13:46:54 +0300 Subject: Update DateRangeValidator to be LocalDate based (#320). Change-Id: I46500d5dd740b806bfa8c3849c54253c6ae92187 --- .../vaadin/data/validator/DateRangeValidator.java | 26 ++++++---------------- .../main/java/com/vaadin/ui/AbstractDateField.java | 10 +++++---- 2 files changed, 13 insertions(+), 23 deletions(-) (limited to 'server') diff --git a/server/src/main/java/com/vaadin/data/validator/DateRangeValidator.java b/server/src/main/java/com/vaadin/data/validator/DateRangeValidator.java index c07d27eadb..3b8eefa1dd 100644 --- a/server/src/main/java/com/vaadin/data/validator/DateRangeValidator.java +++ b/server/src/main/java/com/vaadin/data/validator/DateRangeValidator.java @@ -15,37 +15,25 @@ */ package com.vaadin.data.validator; +import java.time.LocalDate; import java.util.Comparator; -import java.util.Date; - -import com.vaadin.shared.ui.datefield.Resolution; /** - * Validator for validating that a Date is inside a given range. - * - *

- * Note that the comparison is done directly on the Date object so take care - * that the hours/minutes/seconds/milliseconds of the min/max values are - * properly set. - *

+ * Validator for validating that a {@link LocalDate} is inside a given range. * * @author Vaadin Ltd. * @since 8.0 */ -public class DateRangeValidator extends RangeValidator { +public class DateRangeValidator extends RangeValidator { /** - * Creates a validator for checking that an Date is within a given range. + * Creates a validator for checking that a LocalDate is within a given + * range. *

* By default the range is inclusive i.e. both minValue and maxValue are * valid values. Use {@link #setMinValueIncluded(boolean)} or * {@link #setMaxValueIncluded(boolean)} to change it. *

- *

- * Note that the comparison is done directly on the Date object so take care - * that the hours/minutes/seconds/milliseconds of the min/max values are - * properly set. - *

* * @param errorMessage * the message to display in case the value does not validate. @@ -54,8 +42,8 @@ public class DateRangeValidator extends RangeValidator { * @param maxValue * The maximum value to accept or null for no limit */ - public DateRangeValidator(String errorMessage, Date minValue, Date maxValue, - Resolution resolution) { + public DateRangeValidator(String errorMessage, LocalDate minValue, + LocalDate maxValue) { super(errorMessage, Comparator.naturalOrder(), minValue, maxValue); } diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java index f8cda4f355..ac945256f7 100644 --- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java +++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java @@ -17,6 +17,7 @@ package com.vaadin.ui; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Comparator; import java.util.Date; import java.util.EventObject; import java.util.HashMap; @@ -28,7 +29,7 @@ import java.util.logging.Logger; import org.jsoup.nodes.Element; import com.vaadin.data.Result; -import com.vaadin.data.validator.DateRangeValidator; +import com.vaadin.data.validator.RangeValidator; import com.vaadin.event.FieldEvents.BlurEvent; import com.vaadin.event.FieldEvents.BlurListener; import com.vaadin.event.FieldEvents.FocusEvent; @@ -792,9 +793,10 @@ public abstract class AbstractDateField extends AbstractField uiHasValidDateString = true; setComponentError(new UserError(currentParseErrorMessage)); } else { - DateRangeValidator validator = new DateRangeValidator( - getDateOutOfRangeMessage(), getRangeStart(getResolution()), - getRangeEnd(getResolution()), getResolution()); + RangeValidator validator = new RangeValidator<>( + getDateOutOfRangeMessage(), Comparator.naturalOrder(), + getRangeStart(getResolution()), + getRangeEnd(getResolution())); Result result = validator.apply(value); if (result.isError()) { setComponentError(new UserError(getDateOutOfRangeMessage())); -- cgit v1.2.3