com.jgoodies.binding.value
Class DefaultComponentValueModel
java.lang.Object
com.jgoodies.common.bean.Bean
com.jgoodies.binding.beans.Model
com.jgoodies.binding.value.AbstractValueModel
com.jgoodies.binding.value.AbstractWrappedValueModel
com.jgoodies.binding.value.DefaultComponentValueModel
- All Implemented Interfaces:
- ComponentModel, ComponentValueModel, ValueModel, com.jgoodies.common.bean.ObservableBean, com.jgoodies.common.bean.ObservableBean2, Serializable
public final class DefaultComponentValueModel
- extends AbstractWrappedValueModel
A ValueModel that provides relevant GUI state in presentation models.
It provides bound properties for the frequently used JComponent state
enabled,visible and JTextComponent state editable.
ComponentValueModels can be used to set these properties at the
presentation model layer; any ComponentValueModel property change
will be reflected by components bound to that ComponentValueModel.
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.PROPERTY_NAME));
...
// Enablement shall change for the composer field
composerField = BasicComponentFactory.createTextField(
presentationModel.getComponentModel(Album.PROPERTY_COMPOSER));
...
}
...
}
public final class AlbumPresentationModel extends PresentationModel {
...
private void updateComposerEnablement(boolean enabled) {
getComponentModel(Album.PROPERTY_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.
- Since:
- 2.4
- Version:
- $Revision: 1.15 $
- Author:
- Karsten Lentzsch
- See Also:
PresentationModel.getComponentModel(String)
,
PresentationModel.getBufferedComponentModel(String)
,
BasicComponentFactory
,
Bindings
,
Serialized Form
Fields inherited from class com.jgoodies.common.bean.Bean |
changeSupport |
Methods inherited from class com.jgoodies.binding.value.AbstractValueModel |
addValueChangeListener, booleanValue, doubleValue, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, fireValueChange, floatValue, getString, intValue, longValue, paramString, removeValueChangeListener, setValue, setValue, setValue, setValue, setValue, toString, valueString |
Methods inherited from class com.jgoodies.common.bean.Bean |
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, fireMultiplePropertiesChanged, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener |
Methods inherited from interface com.jgoodies.common.bean.ObservableBean2 |
addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener |
Methods inherited from interface com.jgoodies.common.bean.ObservableBean |
addPropertyChangeListener, removePropertyChangeListener |
DefaultComponentValueModel
public DefaultComponentValueModel(ValueModel wrappee)
- Constructs a DefaultComponentValueModel that wraps the given ValueModel
and adds
ComponentModel
Properties.
- Parameters:
wrappee
- the underlying or wrapped ValueModel
getValue
public Object getValue()
- Returns this model's current subject value.
- Returns:
- this model's current subject value.
setValue
public void setValue(Object newValue)
- Sets the given value as new subject value.
- Parameters:
newValue
- the value to set
createValueChangeHandler
protected PropertyChangeListener createValueChangeHandler()
- Specified by:
createValueChangeHandler
in class AbstractWrappedValueModel
Copyright © 2002-2013 JGoodies Software GmbH. All Rights Reserved.