bibliothek.gui.dock.station.toolbar
Interface ToolbarStrategy

All Known Implementing Classes:
DefaultToolbarStrategy

public interface ToolbarStrategy

A ToolbarStrategy defines how different parts of a toolbar interact with each other.

Author:
Benjamin Sigg

Field Summary
static bibliothek.gui.dock.util.PropertyKey<ToolbarStrategy> STRATEGY
          PropertyKey for the current ToolbarStrategy to use.
 
Method Summary
 bibliothek.gui.Dockable ensureToolbarLayer(bibliothek.gui.DockStation parent, bibliothek.gui.Dockable child)
          As toolbars have constraints on which Dockable can be a child of which DockStation often additional layers between a specific DockStation and a Dockable are required.
 boolean isToolbarGroupPart(bibliothek.gui.Dockable dockable)
          Tells whether dockable represents a group of toolbar components, e.g.
 boolean isToolbarGroupPartParent(bibliothek.gui.DockStation parent, bibliothek.gui.Dockable child, boolean strongRelation)
          Tells whether the station parent is a valid choice for the dockable child, assuming that child represents a component of a toolbar, e.g.
 boolean isToolbarPart(bibliothek.gui.Dockable dockable)
          Tells whether dockable represents a toolbar.
 

Field Detail

STRATEGY

static final bibliothek.gui.dock.util.PropertyKey<ToolbarStrategy> STRATEGY
PropertyKey for the current ToolbarStrategy to use.

Method Detail

ensureToolbarLayer

bibliothek.gui.Dockable ensureToolbarLayer(bibliothek.gui.DockStation parent,
                                           bibliothek.gui.Dockable child)
As toolbars have constraints on which Dockable can be a child of which DockStation often additional layers between a specific DockStation and a Dockable are required. This method defines what these layers are.
This method must not add child to any DockStation.

Parameters:
parent - some DockStation which is going to become a direct or indirect parent of child
child - some Dockable that is going to be a direct or indirect child of parent
Returns:
the element that is actually added to parent as direct child. This can either be child, or a new empty dockable DockStation. A value of null indicates that child can never be any kind of child of parent. The other methods of this ToolbarStrategy should however be implemented such that this case never happens during a drag and drop operation.

isToolbarGroupPartParent

boolean isToolbarGroupPartParent(bibliothek.gui.DockStation parent,
                                 bibliothek.gui.Dockable child,
                                 boolean strongRelation)
Tells whether the station parent is a valid choice for the dockable child, assuming that child represents a component of a toolbar, e.g. a button.

Parameters:
parent - a potential parent for child. It might be that an additional layer between parent and child will be created.
child - the potential new child of parent
strongRelation - if true, then it must be possible to add child directly to parent, if false the relation must be valid after calling ensureToolbarLayer(DockStation, Dockable).
Returns:
true if a combination between child and parent is possible

isToolbarGroupPart

boolean isToolbarGroupPart(bibliothek.gui.Dockable dockable)
Tells whether dockable represents a group of toolbar components, e.g. a group of buttons. Also a single toolbar component can be understood to be a group of components.

Parameters:
dockable - some dockable that is drag and dropped
Returns:
true if dockable represents a group of toolbar components

isToolbarPart

boolean isToolbarPart(bibliothek.gui.Dockable dockable)
Tells whether dockable represents a toolbar. A toolbar can either be a single item like a button, a group of such items, or a real toolbar.

Parameters:
dockable - the element to test
Returns:
true if dockable represents a toolbar or a part of a toolbar