com.jgoodies.binding.adapter
Class SpinnerAdapterFactory
java.lang.Objectcom.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 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
- 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 nullminValue - 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 nullminValue - 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.