A
SpinnerModel
for sequences of
Date
s.
The upper and lower bounds of the sequence are defined by properties called
start
and
end
and the size
of the increase or decrease computed by the
nextValue
and
previousValue
methods is defined by a property
called
calendarField
. The
start
and
end
properties can be
null
to
indicate that the sequence has no lower or upper limit.
The value of the calendarField
property must be one of the
java.util.Calendar
constants that specify a field
within a Calendar
. The getNextValue
and getPreviousValue
methods change the date forward or backwards by this amount.
For example, if calendarField
is Calendar.DAY_OF_WEEK
,
then nextValue
produces a Date
that's 24
hours after the current value
, and previousValue
produces a Date
that's 24 hours earlier.
The legal values for calendarField
are:
Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
However some UIs may set the calendarField before commiting the edit
to spin the field under the cursor. If you only want one field to
spin you can subclass and ignore the setCalendarField calls.
This model inherits a ChangeListener
. The
ChangeListeners
are notified whenever the models
value
, calendarField
,
start
, or end
properties changes.