org.jdesktop.beansbinding.ext.package.html Maven / Gradle / Ivy
Provides support for customizing Beans Binding, and for
determining the synthetic properties available for binding.
Tool vendors and component authors are the expected audience
of this package.
Some {@code Property} implementations, such as {@code BeanProperty}
and {@code ELProperty}, resolve properties of an object at runtime
as per the Java Beans specification. Sometimes, properties of interest aren't
exposed according to this specification (for example, Swing's
{@code JTextField.text}, {@code JSlider.value}, {@code AbstractButton.selected}).
At other times, we may want to extend an object's set of properties
with synthetic properties that may be interesting for the purposes of
binding (for example {@code selectedElement(s)}) on Swing's {@code JTable}
and {@code JList}.
This package provides for these scenarios by allowing you to provide
adapters to adapt these objects and expose such properties as proper
Java Beans properties. This is done by writing one or more
{@link org.jdesktop.beansbinding.ext.BeanAdapterProvider}
classes and registering them via the service provider mechanism
(to be implemented) with the {@link
org.jdesktop.beansbinding.ext.BeanAdapterFactory}.
{@code Property} implementations can then query the {@code BeanAdapterFactory}
for adapters to take the place of the source object for the purposes
of property resolution. This is exactly what {@code BeanProperty} and
{@code ELProperty} do. In addition, tools can query the factory for
the set of additional properties exposed for a particular class by
the set of loaded providers.
Note: Adapters for many Swing properties are already registered with the
factory. See the swingbinding
package level documentation for details.