The Change
Facet of an object (Figure 4.3) publishes the
change Bean event set and
fires an event whenever the primary object has changed in a manner
that will affect observers.
Other objects (including other
Facets of the primary
object) may utilize the
Change
Facet as a way to isolate
themselves from the details whereby an object indicates a state
change.
The Change interface
is designed to accommodate -- and shield other components from the
distinctions between -- cases where the primary object informs clients
of changes to itself and cases where the end-user must manually
trigger an "update" of all views. The
Change.automaticallyUpdating
property indicates whether the associated
Change
Facet is listening for
events from its primary object. If this property is
true, then calls to its
Change.fireChange() method
should be no-ops. However, if this property is
false, each call to
Change.fireChange() will force
the broadcast of a
ChangeEvent.