public final class SpinnerAdapterFactory extends Object
SpinnerModel implementations that are bound to
a ValueModel. Can be used to bind a ValueModel to instances of JSpinner.To keep the ValueModel and SpinnerModel synchronized, this class listens to changes in both sides and updates the other silently, i.e. without firing a duplicate change event.
Constraints:
The ValueModel's type must be compatible with the type required by the
referenced SpinnerModel. For example a SpinnerNumberModel requires
Number values.
Example:
// General Connection
ValueModel levelModel = new PropertyAdapter(settings, "level", true);
SpinnerModel spinnerModel = new SpinnerNumberModel(9, 5, 10, 1);
Object defaultValue = new Integer(9);
SpinnerAdapterFactory.connect(spinnerModel, levelModel, defaultValue);
JSpinner levelSpinner = new JSpinner(spinnerModel);
// Short Form
ValueModel levelModel = new PropertyAdapter(settings, "level", true);
SpinnerNumberModel spinnerModel =
SpinnerAdapterFactory.createNumberAdapter(levelModel, 5, 10, 1);
JSpinner levelSpinner = new JSpinner(spinnerModel);
ValueModel,
SpinnerModel,
JSpinner| Modifier and Type | Method and Description |
|---|---|
static void |
connect(SpinnerModel spinnerModel,
ValueModel valueModel,
Object defaultValue)
Connects the given ValueModel and SpinnerModel
by synchronizing their values.
|
static SpinnerDateModel |
createDateAdapter(ValueModel valueModel,
Date defaultDate)
Creates and returns a
SpinnerDateModel bound to the given
valueModel. |
static SpinnerDateModel |
createDateAdapter(ValueModel valueModel,
Date defaultDate,
Comparable<Date> start,
Comparable<Date> end,
int calendarField)
Creates and returns a
SpinnerDateModel that represents a sequence
of dates and is bound to the given valueModel. |
static SpinnerNumberModel |
createNumberAdapter(ValueModel valueModel,
int defaultValue,
int minValue,
int maxValue,
int stepSize)
Creates and returns a
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values. |
static SpinnerNumberModel |
createNumberAdapter(ValueModel valueModel,
Number defaultValue,
Comparable<? extends Number> minValue,
Comparable<? extends Number> maxValue,
Number stepSize)
Creates and returns a
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values. |
public static SpinnerDateModel createDateAdapter(ValueModel valueModel, Date defaultDate)
SpinnerDateModel bound to the given
valueModel. The calendarField
is equal to Calendar.DAY_OF_MONTH; there are no
start/end limits.valueModel - a Date typed model that holds the spinner valuedefaultDate - the date used if the valueModel's value is nullSpinnerDateModel bound to the given
valueModel without start and end limits using
Calendar.DAY_OF_MONTH as calendar fieldNullPointerException - if the valueModel or defaultDate is nullpublic static SpinnerDateModel createDateAdapter(ValueModel valueModel, Date defaultDate, Comparable<Date> start, Comparable<Date> end, int calendarField)
SpinnerDateModel that represents a sequence
of dates and is bound to the given valueModel.
The dates are between start and end. The
nextValue and previousValue methods
compute elements of the sequence by advancing or reversing
the current date value by the
calendarField time unit. For a precise description
of what it means to increment or decrement a Calendar
field, see the add method in
java.util.Calendar.
The start and end parameters can be
null to indicate that the range doesn't have an
upper or lower bound. If value or
calendarField is null, or if both
start and end are specified and
minimum > maximum then an
IllegalArgumentException is thrown.
Similarly if (minimum <= value <= maximum) is false,
an IllegalArgumentException is thrown.
This method has not been tested.
valueModel - a Date typed model that holds the spinner valuedefaultDate - the date used if the valueModel's value is nullstart - the first date in the sequence or nullend - the last date in the sequence or nullcalendarField - one of
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
SpinnerDateModel bound to the given
valueModel using the specified start and end dates
and calendar field.NullPointerException - if the valueModel or defaultDate is nullIllegalArgumentException - if calendarField isn't valid,
or if the following expression is
false: (start <= value <= end).Calendar,
Datepublic static SpinnerNumberModel createNumberAdapter(ValueModel valueModel, int defaultValue, int minValue, int maxValue, int stepSize)
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values.valueModel - an Integer typed model that holds the spinner valuedefaultValue - the number used if the valueModel's value is nullminValue - the lower bound of the spinner numbermaxValue - the upper bound of the spinner numberstepSize - used to increment and decrement the current valueSpinnerNumberModel that is connected to the given
ValueModelNullPointerException - if the valueModel is nullpublic static SpinnerNumberModel createNumberAdapter(ValueModel valueModel, Number defaultValue, Comparable<? extends Number> minValue, Comparable<? extends Number> maxValue, Number stepSize)
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values.valueModel - a Number typed model that holds the spinner valuedefaultValue - the number used if the valueModel's value is nullminValue - the lower bound of the spinner numbermaxValue - the upper bound of the spinner numberstepSize - used to increment and decrement the current valueSpinnerNumberModel that is connected to the given
ValueModelNullPointerException - if the valueModel or defaultValue is nullpublic static void connect(SpinnerModel spinnerModel, ValueModel valueModel, Object defaultValue)
spinnerModel - the underlying SpinnerModel implementationvalueModel - provides a valuedefaultValue - the value used if the valueModel's value is nullNullPointerException - if the spinnerModel, valueModel or defaultValue is nullCopyright © 2002-2015 JGoodies Software GmbH. All Rights Reserved.