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, Number> minValue, 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.
|
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
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 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,
Number> minValue,
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.
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-2008 JGoodies Karsten Lentzsch. All Rights Reserved.