public class DefaultToolbarStrategy extends java.lang.Object implements ToolbarStrategy
ToolbarStrategy
.
Reminder: the toolbar API defines one dockable ComponentDockable
and
three dockstation layers: ToolbarDockStation
,
ToolbarGroupDockStation
and ToolbarContainerDockStation
.
A ComponentDockable
can be put in the three layers. A
ToolbarDockStation
acts exactly the same. A
ToolbarGroupDockStation
can be put only in a
ToolbarGroupDockStation
(with some constraints, but this
constraints are handled by the station itself) or in
ToolbarContainerDockStation
.
About the layers (and not about the question to know if a station accept a particular dockable), in the layer hierarchy, a station can only contains the immediate lower dockable:
ToolbarContainerDockStation
<=
ToolbarGroupDockStation
ToolbarGroupDockStation
<= ToolbarDockStation
ToolbarDockStation
<= ComponentDockable
STRATEGY
Constructor and Description |
---|
DefaultToolbarStrategy() |
Modifier and Type | Method and Description |
---|---|
bibliothek.gui.Dockable |
ensureToolbarLayer(bibliothek.gui.DockStation station,
bibliothek.gui.Dockable dockable)
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. |
protected Orientation |
getOrientation(bibliothek.gui.Dockable dockable)
Tells what orientation should be applied to the parent of
dockable . |
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 strong)
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. |
public bibliothek.gui.Dockable ensureToolbarLayer(bibliothek.gui.DockStation station, bibliothek.gui.Dockable dockable)
ToolbarStrategy
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.child
to any DockStation
.ensureToolbarLayer
in interface ToolbarStrategy
station
- some DockStation
which is going to become a direct or indirect parent of child
dockable
- some Dockable
that is going to be a direct or indirect child of parent
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.protected Orientation getOrientation(bibliothek.gui.Dockable dockable)
dockable
.dockable
- some item that is droppedpublic boolean isToolbarGroupPartParent(bibliothek.gui.DockStation parent, bibliothek.gui.Dockable child, boolean strong)
ToolbarStrategy
parent
is a valid choice for the
dockable child
, assuming that child represents a component
of a toolbar, e.g. a button.isToolbarGroupPartParent
in interface ToolbarStrategy
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
strong
- if true
, then it must be possible to add
child
directly to parent
, if false
the relation
must be valid after calling ToolbarStrategy.ensureToolbarLayer(DockStation, Dockable)
.true
if a combination between child
and parent
is possiblepublic boolean isToolbarGroupPart(bibliothek.gui.Dockable dockable)
ToolbarStrategy
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.isToolbarGroupPart
in interface ToolbarStrategy
dockable
- some dockable that is drag and droppedtrue
if dockable
represents a group of toolbar componentspublic boolean isToolbarPart(bibliothek.gui.Dockable dockable)
ToolbarStrategy
dockable
represents a toolbar. A toolbar can
either be a single item like a button, a
group of such items
, or a real
toolbar.isToolbarPart
in interface ToolbarStrategy
dockable
- the element to testtrue
if dockable
represents a toolbar or a part of a toolbar