com.jgoodies.binding.value
public final class ComponentValueModel extends AbstractValueModel
The ComponentValueModel is similar to the Swing Action class. If you disable an Action, all buttons and menu items bound to that Action will be disabled. If you disable a ComponentValueModel, all components bound to that ComponentValueModel will be disabled. If you set the ComponentValueModel to invisible, the component bound to it will become invisible. If you set a ComponentValueModel to non-editable, the JTextComponents bound to it will become non-editable.
Since version 1.1, PresentationModels can vend ComponentValueModels
using #getComponentModel(String)
and
#getBufferedComponentModel(String)
. Multiple calls
to these factory methods return the same ComponentValueModel.
The BasicComponentFactory and the Bindings class check if the ValueModel provided to create/bind a Swing component is a ComponentValueModel. If so, the ComponentValueModel properties will be synchronized with the associated Swing component properties.
It is recommended to use ComponentValueModels only for those models that are bound to view components that require GUI state changes.
Example Code:
final class AlbumView { ... private void initComponents() { // No state modifications required for the name field. nameField = BasicComponentFactory.createTextField( presentationModel.getModel(Album.PROPERTYNAME_NAME)); ... // Enablement shall change for the composer field composerField = BasicComponentFactory.createTextField( presentationModel.getComponentModel(Album.PROPERTYNAME_COMPOSER)); ... } ... } public final class AlbumPresentationModel extends PresentationModel { ... private void updateComposerEnablement(boolean enabled) { getComponentModel(Album.PROPERTYNAME_COMPOSER).setEnabled(enabled); } ... }
As of the Binding version 2.0 the ComponentValueModel feature is implemented for text components, radio buttons, check boxes, combo boxes, and lists. JColorChoosers bound using the Bindings class will ignore ComponentValueModel state.
PresentationModel.getComponentModel(String)
,
PresentationModel.getBufferedComponentModel(String)
,
BasicComponentFactory
,
Bindings
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PROPERTYNAME_EDITABLE
The name of the property used to synchronize
this model with the editable property of JTextComponents.
|
static java.lang.String |
PROPERTYNAME_ENABLED
The name of the property used to synchronize
this model with the enabled property of JComponents.
|
static java.lang.String |
PROPERTYNAME_VISIBLE
The name of the property used to synchronize
this model with the visible property of JComponents.
|
PROPERTYNAME_VALUE
Constructor and Description |
---|
ComponentValueModel(ValueModel subject)
Constructs a ComponentValueModel for the given ValueModel.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
getValue()
Returns this model's current subject value.
|
boolean |
isEditable()
Returns if this model represents the editable or non-editable
text component state.
|
boolean |
isEnabled()
Returns if this model represents an enabled or disabled component state.
|
boolean |
isVisible()
Returns if this model represents the visible or invisible component state.
|
void |
setEditable(boolean b)
Sets this model state to editable or non-editable, which in turn will
make all text components bound to this model editable or non-editable.
|
void |
setEnabled(boolean b)
Enables or disabled this model, which in turn
will enable or disable all Swing components bound to this model.
|
void |
setValue(java.lang.Object newValue)
Sets the given value as new subject value.
|
void |
setVisible(boolean b)
Sets this model state to visible or invisible, which in turn
will make all Swing components bound to this model visible or invisible.
|
addValueChangeListener, booleanValue, doubleValue, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, floatValue, getString, intValue, longValue, paramString, removeValueChangeListener, setValue, setValue, setValue, setValue, setValue, toString, valueString
createPropertyChangeSupport, firePropertyChange
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addPropertyChangeListener, removePropertyChangeListener
public static final java.lang.String PROPERTYNAME_ENABLED
public static final java.lang.String PROPERTYNAME_VISIBLE
public static final java.lang.String PROPERTYNAME_EDITABLE
public ComponentValueModel(ValueModel subject)
subject
- the underlying (or wrapped) ValueModelpublic java.lang.Object getValue()
public void setValue(java.lang.Object newValue)
newValue
- the value to setpublic boolean isEnabled()
public void setEnabled(boolean b)
b
- true to enable, false to disable.public boolean isVisible()
public void setVisible(boolean b)
b
- true for visible, false for invisiblepublic boolean isEditable()
public void setEditable(boolean b)
b
- true for editable, false for non-editableCopyright © 2002-2010 JGoodies Karsten Lentzsch. All Rights Reserved.