public class DefaultToolbarStrategy extends 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 |
|---|---|
Dockable |
ensureToolbarLayer(DockStation station,
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(Dockable dockable)
Tells what orientation should be applied to the parent of
dockable. |
boolean |
isToolbarGroupPart(Dockable dockable)
Tells whether
dockable represents a group of toolbar
components, e.g. a group of buttons. |
boolean |
isToolbarGroupPartParent(DockStation parent,
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. a button. |
boolean |
isToolbarPart(Dockable dockable)
Tells whether
dockable represents a toolbar. |
public Dockable ensureToolbarLayer(DockStation station, Dockable dockable)
ToolbarStrategyDockable 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 ToolbarStrategystation - some DockStation which is going to become a direct or indirect parent of childdockable - some Dockable that is going to be a direct or indirect child of parentparent 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(Dockable dockable)
dockable.dockable - some item that is droppedpublic boolean isToolbarGroupPartParent(DockStation parent, Dockable child, boolean strong)
ToolbarStrategyparent is a valid choice for the
dockable child, assuming that child represents a component
of a toolbar, e.g. a button.isToolbarGroupPartParent in interface ToolbarStrategyparent - 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 parentstrong - 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(Dockable dockable)
ToolbarStrategydockable 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 ToolbarStrategydockable - some dockable that is drag and droppedtrue if dockable represents a group of toolbar componentspublic boolean isToolbarPart(Dockable dockable)
ToolbarStrategydockable 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 ToolbarStrategydockable - the element to testtrue if dockable represents a toolbar or a part of a toolbarCopyright © 2018. All rights reserved.