Class DefaultDateSelectionModel

    • Constructor Detail

      • DefaultDateSelectionModel

        public DefaultDateSelectionModel()
      • DefaultDateSelectionModel

        public DefaultDateSelectionModel​(java.util.Locale locale)

        The selection mode defaults to SINGLE_SELECTION.

    • Method Detail

      • setSelectionMode

        public void setSelectionMode​(DateSelectionModel.SelectionMode selectionMode)
        Set the selection mode.
        Parameters:
        selectionMode - new selection mode
      • addSelectionInterval

        public void addSelectionInterval​(java.util.Date startDate,
                                         java.util.Date endDate)
        Adds the specified selection interval to the selection model.
        Parameters:
        startDate - interval start date, must not be null
        endDate - interval end date >= start date, must not be null
      • setSelectionInterval

        public void setSelectionInterval​(java.util.Date startDate,
                                         java.util.Date endDate)
        Sest the specified selection interval to the selection model.
        Parameters:
        startDate - interval start date, must not be null
        endDate - interval end date >= start date, must not be null
      • removeSelectionInterval

        public void removeSelectionInterval​(java.util.Date startDate,
                                            java.util.Date endDate)
        Removes the specifed selection interval from the selection model. If the selection is changed by this method, it fires a DateSelectionEvent of type DATES_REMOVED.
        Parameters:
        startDate - interval start date, must not be null
        endDate - interval end date >= start date, must not be null
      • clearSelection

        public void clearSelection()
        Clears any selection from the selection model. Fires an Event of type SELECTION_CLEARED if there had been a selection, does nothing otherwise.
      • getSelection

        public java.util.SortedSet<java.util.Date> getSelection()
        Returns the current selection.
        Returns:
        sorted set of selected dates, guaranteed to be never null.
      • isSelected

        public boolean isSelected​(java.util.Date date)
        Returns true if the date specified is selected, false otherwise.

        Note: it is up to implementations to define the exact notion of selected. It does not imply the exact date as given is contained the set returned from getSelection().

        Parameters:
        date - date to check for selection, must not be null
        Returns:
        true if the date is selected, false otherwise
      • getNormalizedDate

        public java.util.Date getNormalizedDate​(java.util.Date date)
        Returns a normalized Date as used by the implementation, if any. F.i. DaySelectionModel returns the start of the day in the model's calendar. If no normalization is applied, a clone of the Date itself is returned. The given Date is never changed.

        The overall contract:

        
         if ((date != null) && isSelectable(date)) {
             setSelectionInterval(date, date);
             assertEquals(getNormalized(date), getFirstSelectionDate();
         }
         
        Returns:
        the date as it would be normalized before used in the model, must not be null.
      • isSelectionEmpty

        public boolean isSelectionEmpty()
        Returns true if the selection is empty, false otherwise.
        Returns:
        true if the selection is empty, false otherwise
      • getUnselectableDates

        public java.util.SortedSet<java.util.Date> getUnselectableDates()
        Returns a SortedSet of Dates that are unselectable.
        Returns:
        sorted set of dates
      • setUnselectableDates

        public void setUnselectableDates​(java.util.SortedSet<java.util.Date> unselectableDates)
        Sets a collection of dates which are not selectable.

        Note: it is up to implementations to define the exact notion of unselectableDate. It does not imply the only the exact date as given is unselectable, it might have a period like "all dates on the same day". PENDING JW: any collection would do - why insist on a SortedSet?

        Parameters:
        unselectableDates - dates that are unselectable, must not be null and must not contain null dates.
      • isUnselectableDate

        public boolean isUnselectableDate​(java.util.Date date)
        Returns true is the specified date is unselectable.
        Parameters:
        date - the date to check for unselectability, must not be null.
        Returns:
        true is the date is unselectable, false otherwise