This package and its subpackages provide the
IMapProperty interfaces, along with classes
which serve as base implementations of each interface.
Properties are intended to serve as a convenient path to creating observables for observing specific attributes of source objects. The main goals of this API are:
- Simplify the process of creating custom observables. Developing custom
observables correctly can be tricky, so the properties API tries to ease this
burden by providing all the observable implementations. Property implementers
only need to extend one of the provided base classes
SimpleMapProperty) and implement a handful of abstract methods which the observables use to function.
- Simplify observation of nested properties. Traditionally observing a nested property required creating an observable for the first property, then wrapping that observable in a master-detail observable for each successive property in the chain. Using property chaining it is trivial to define a nested property and to observe that property on a particular source object.
A set of delegating properties are also provided
may be used to implement properties where the property behavior depends on the
type of source object.
Interface Summary Interface Description INativePropertyListener<S>A listener capable of adding or removing itself as a listener on a source object using the source's "native" listener API. IPropertyMarker interface for all property types in the properties framework. IPropertyObservable<P extends IProperty>Provides access to the details of property observables ISimplePropertyListener<S,D extends IDiff>Listener for changes to properties on a particular source object
Class Summary Class Description NativePropertyListener<S,D extends IDiff>Abstract INativePropertyListener implementation PropertiesContains static methods to operate on or return IProperty objects. SimplePropertyEvent<S,D extends IDiff>Event object events in the properties API