com.jgoodies.binding.adapter
Class SpinnerAdapterFactory
java.lang.Object
com.jgoodies.binding.adapter.SpinnerAdapterFactory
public final class SpinnerAdapterFactory
extends java.lang.Object
A factory that vends
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);
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 start, Comparable 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, Number defaultValue, Comparable minValue, Comparable 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.
|
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.
|
connect
public static void connect(SpinnerModel spinnerModel,
ValueModel valueModel,
Object defaultValue)
Connects the given ValueModel and SpinnerModel
by synchronizing their values.
spinnerModel
- the underlying SpinnerModel implementationvalueModel
- provides a valuedefaultValue
- the value used if the valueModel's value is null
createDateAdapter
public static SpinnerDateModel createDateAdapter(ValueModel valueModel,
Date defaultDate)
Creates and returns a 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 null
- a
SpinnerDateModel
bound to the given
valueModel
without start and end limits using
Calendar.DAY_OF_MONTH
as calendar field
createDateAdapter
public static SpinnerDateModel createDateAdapter(ValueModel valueModel,
Date defaultDate,
Comparable start,
Comparable end,
int calendarField)
Creates and returns a
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
mininum > 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 null
start
- the first date in the sequence or null
end
- the last date in the sequence or null
calendarField
- 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
- a
SpinnerDateModel
bound to the given
valueModel
using the specified start and end dates
and calendar field.
createNumberAdapter
public static SpinnerNumberModel createNumberAdapter(ValueModel valueModel,
Number defaultValue,
Comparable minValue,
Comparable 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.
valueModel
- a Number
typed model that holds the spinner valuedefaultValue
- the number used if the valueModel's value is null
minValue
- the lower bound of the spinner numbermaxValue
- the upper bound of the spinner numberstepSize
- used to increment and decrement the current value
- a
SpinnerNumberModel
that is connected to the given
ValueModel
createNumberAdapter
public 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.
valueModel
- an Integer
typed model that holds the spinner valuedefaultValue
- the number used if the valueModel's value is null
minValue
- the lower bound of the spinner numbermaxValue
- the upper bound of the spinner numberstepSize
- used to increment and decrement the current value
- a
SpinnerNumberModel
that is connected to the given
ValueModel
Copyright © 2002-2007 JGoodies Karsten Lentzsch. All Rights Reserved.