public abstract class AbstractExtendedModeEnablement extends Object implements ExtendedModeEnablement
ExtendedModeEnablement
. This implementation
handles ExtendedModeEnablementListener
s and tells subclasses when to
add or remove listeners to or from Dockable
s.init()
.ExtendedModeEnablement.Availability, ExtendedModeEnablement.Hidden
Constructor and Description |
---|
AbstractExtendedModeEnablement(LocationModeManager<?> manager)
Creates a new enablement.
|
Modifier and Type | Method and Description |
---|---|
void |
addListener(ExtendedModeEnablementListener listener)
Adds a listener to this enablement, the listener has be informed if the availability state of
a mode in respect to a dockable has changed.
|
protected abstract void |
connect(Dockable dockable)
Adds listeners to
dockable in order to call fire(Dockable, ExtendedMode, boolean)
once the availability of some mode changed. |
void |
destroy()
Informs this enablement that it is no longer of any use.
|
protected abstract void |
disconnect(Dockable dockable)
Removes listeners from
dockable that were added earlier. |
protected void |
fire(Dockable dockable,
ExtendedMode mode,
boolean available)
Calls
ExtendedModeEnablementListener.availabilityChanged(Dockable, ExtendedMode, boolean) for
all listeners that are registered. |
LocationModeManager<?> |
getManager()
Gets the manager in whose realm this enablement is used.
|
protected void |
init()
Initializes this enablement: adds a listener to
the manager
and calls connect(Dockable) for all known Dockable s. |
void |
removeListener(ExtendedModeEnablementListener listener)
Removes a listener from this enablement.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isAvailable, isHidden
public AbstractExtendedModeEnablement(LocationModeManager<?> manager)
init()
afterwards.manager
- the manager in whose realm this enablement is used, not null
public LocationModeManager<?> getManager()
null
if destroy()
has
been called.protected void init()
the manager
and calls connect(Dockable)
for all known Dockable
s.public void addListener(ExtendedModeEnablementListener listener)
ExtendedModeEnablement
Dockable
s that are registered
at the LocationModeManager
have to be observed.addListener
in interface ExtendedModeEnablement
listener
- the new listenerpublic void removeListener(ExtendedModeEnablementListener listener)
ExtendedModeEnablement
removeListener
in interface ExtendedModeEnablement
listener
- the listener to removeprotected void fire(Dockable dockable, ExtendedMode mode, boolean available)
ExtendedModeEnablementListener.availabilityChanged(Dockable, ExtendedMode, boolean)
for
all listeners that are registered.dockable
- the element which is affectedmode
- the mode which is affectedavailable
- the new availability statepublic void destroy()
ExtendedModeEnablement
destroy
in interface ExtendedModeEnablement
protected abstract void connect(Dockable dockable)
dockable
in order to call fire(Dockable, ExtendedMode, boolean)
once the availability of some mode changed.dockable
- the element which needs new listenersprotected abstract void disconnect(Dockable dockable)
dockable
that were added earlier.dockable
- the element which is no longer to be connected