com.jgoodies.binding.adapter
Class SpinnerToValueModelConnector

java.lang.Object
  extended by com.jgoodies.binding.adapter.SpinnerToValueModelConnector

public final class SpinnerToValueModelConnector
extends Object

Synchronizes a SpinnerModel with a ValueModel.

Since:
1.1
Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch
See Also:
SpinnerModel, ValueModel

Constructor Summary
SpinnerToValueModelConnector(SpinnerModel spinnerModel, ValueModel valueModel, Object defaultValue)
          Constructs a SpinnerToValueModelConnector that establishes a Synchronization between the SpinnerModel and ValueModel.
 
Method Summary
static void connect(SpinnerModel spinnerModel, ValueModel valueModel, Object defaultValue)
          Establishes a synchronization between the SpinnerModel and ValueModel.
 void release()
          Removes the internal listener from the SpinnerModel and ValueModel.
 void updateSpinnerModel()
          Sets the subject value as spinner value.
 void updateValueModel()
          Sets the spinner value as value model's value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpinnerToValueModelConnector

public SpinnerToValueModelConnector(SpinnerModel spinnerModel,
                                    ValueModel valueModel,
                                    Object defaultValue)
Constructs a SpinnerToValueModelConnector that establishes a Synchronization between the SpinnerModel and ValueModel. This constructor does not synchronize the SpinnerModel and ValueModel now. You may update the spinner model or value model using #updateSpinnerModel or #updateValueModel.

In case you don't need the connector instance, you better use the static method connect(SpinnerModel, ValueModel, Object). This constructor may confuse developers if you just use the side effects performed in the constructor; this is because it is quite unconventional to instantiate an object that you never use.

Parameters:
spinnerModel - the SpinnerModel to be synchronized
valueModel - the ValueModel to be synchronized
defaultValue - the value that will be used to update the spinnerModel, if the valueModel's value is null
Throws:
NullPointerException - if the spinnerModel, valueModel or defaultValue is null
Method Detail

connect

public static void connect(SpinnerModel spinnerModel,
                           ValueModel valueModel,
                           Object defaultValue)
Establishes a synchronization between the SpinnerModel and ValueModel. This method does not synchronize the SpinnerModel and ValueModel now. You may update the spinner model or value model using #updateSpinnerModel or #updateValueModel.

Parameters:
spinnerModel - the SpinnerModel to be synchronized
valueModel - the ValueModel to be synchronized
defaultValue - the value used if the valueModel's value is null
Throws:
NullPointerException - if the spinnerModel or valueModel is null

updateSpinnerModel

public void updateSpinnerModel()
Sets the subject value as spinner value.


updateValueModel

public void updateValueModel()
Sets the spinner value as value model's value.


release

public void release()
Removes the internal listener from the SpinnerModel and ValueModel. This connector must not be used after calling #release.

To avoid memory leaks it is recommended to invoke this method, if the ValueModel lives much longer than the text component. Instead of releasing this connector, you typically make the ValueModel obsolete by releasing the PresentationModel or BeanAdapter that has created the ValueModel.

As an alternative you may use ValueModels that in turn use event listener lists implemented using WeakReference.

See Also:
PresentationModel.release(), BeanAdapter.release(), WeakReference


Copyright © 2002-2008 JGoodies Karsten Lentzsch. All Rights Reserved.