bibliothek.gui.dock.facile.mode.status
Class DefaultExtendedModeEnablement

java.lang.Object
  extended by bibliothek.gui.dock.facile.mode.status.AbstractExtendedModeEnablement
      extended by bibliothek.gui.dock.facile.mode.status.DefaultExtendedModeEnablement
All Implemented Interfaces:
ExtendedModeEnablement

public class DefaultExtendedModeEnablement
extends AbstractExtendedModeEnablement

This default implementation observes CDockable.isNormalizeable(), CDockable.isExternalizable(), CDockable.isMinimizable() and CDockable.isMaximizable().

Author:
Benjamin Sigg

Nested Class Summary
 
Nested classes/interfaces inherited from interface bibliothek.gui.dock.facile.mode.status.ExtendedModeEnablement
ExtendedModeEnablement.Availability, ExtendedModeEnablement.Hidden
 
Field Summary
static Path EXTENSION
          Name of an ExtensionName to add additional rules to this enablement.
static ExtendedModeEnablementFactory FACTORY
          This factory creates new DefaultExtendedModeEnablements.
 
Constructor Summary
DefaultExtendedModeEnablement(LocationModeManager<?> manager)
          Creates a new enablement.
 
Method Summary
protected  void connect(Dockable dockable)
          Adds listeners to dockable in order to call AbstractExtendedModeEnablement.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  void disconnect(Dockable dockable)
          Removes listeners from dockable that were added earlier.
 ExtendedModeEnablement.Availability isAvailable(Dockable dockable, ExtendedMode mode)
          Tells whether mode is available for dockable.
Note: for ExtendedMode.NORMALIZED the result should always be true.
 ExtendedModeEnablement.Hidden isHidden(Dockable dockable, ExtendedMode mode)
          Tells whether mode is hidden from the user for dockable.
protected  ExtendedModeEnablement.Availability isModeAvailable(Dockable dockable, ExtendedMode mode)
          The actual implementation of ExtendedModeEnablement.isAvailable(Dockable, ExtendedMode)
 
Methods inherited from class bibliothek.gui.dock.facile.mode.status.AbstractExtendedModeEnablement
addListener, fire, getManager, init, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXTENSION

public static final Path EXTENSION
Name of an ExtensionName to add additional rules to this enablement. The extensions are of type ExtendedModeEnablementFactory.


FACTORY

public static final ExtendedModeEnablementFactory FACTORY
This factory creates new DefaultExtendedModeEnablements.

Constructor Detail

DefaultExtendedModeEnablement

public DefaultExtendedModeEnablement(LocationModeManager<?> manager)
Creates a new enablement.

Parameters:
manager - the manager to observe
Method Detail

destroy

public void destroy()
Description copied from interface: ExtendedModeEnablement
Informs this enablement that it is no longer of any use. The enablement should remove any listeners it added to any other object.

Specified by:
destroy in interface ExtendedModeEnablement
Overrides:
destroy in class AbstractExtendedModeEnablement

connect

protected void connect(Dockable dockable)
Description copied from class: AbstractExtendedModeEnablement
Adds listeners to dockable in order to call AbstractExtendedModeEnablement.fire(Dockable, ExtendedMode, boolean) once the availability of some mode changed.

Specified by:
connect in class AbstractExtendedModeEnablement
Parameters:
dockable - the element which needs new listeners

disconnect

protected void disconnect(Dockable dockable)
Description copied from class: AbstractExtendedModeEnablement
Removes listeners from dockable that were added earlier.

Specified by:
disconnect in class AbstractExtendedModeEnablement
Parameters:
dockable - the element which is no longer to be connected

isAvailable

public ExtendedModeEnablement.Availability isAvailable(Dockable dockable,
                                                       ExtendedMode mode)
Description copied from interface: ExtendedModeEnablement
Tells whether mode is available for dockable.
Note: for ExtendedMode.NORMALIZED the result should always be true.

Parameters:
dockable - some element, not null
mode - some mode, not null
Returns:
whether the mode is available, most strategies should return ExtendedModeEnablement.Availability.WEAK_AVAILABLE if mode equals ExtendedMode.NORMALIZED. Must never be null, but a result of ExtendedModeEnablement.Availability.UNCERTAIN indicates that this enablement does not know

isHidden

public ExtendedModeEnablement.Hidden isHidden(Dockable dockable,
                                              ExtendedMode mode)
Description copied from interface: ExtendedModeEnablement
Tells whether mode is hidden from the user for dockable. If a mode is hidden it can still be available, the user will just not be informed (e.g. there is no button that will move the dockable).

Parameters:
dockable - some element, not null
mode - some mode, not null
Returns:
whether mode is hidden from the user when looking at dockable

isModeAvailable

protected ExtendedModeEnablement.Availability isModeAvailable(Dockable dockable,
                                                              ExtendedMode mode)
The actual implementation of ExtendedModeEnablement.isAvailable(Dockable, ExtendedMode)

Parameters:
dockable - the item whose mode should be checked
mode - the mode to check
Returns:
whether mode is available or not