See: Description
Interface | Description |
---|---|
Dockable |
Interface describing a component (AWT/Swing) that can be managed by the
DockingDesktop.
|
DockableContainer |
A DockableContainer is the base interface of GUI components used to
display
Dockable components. |
DockableDragSource |
An interface implemented by visual components used for drag and drop operations
on a DockableContainer.
|
DockableResolver |
An interface used to find a dockable (when read from an input stream like XML)
when the only information given is its DockKey id.
|
DockDropReceiver |
An interface implemented by components that can accept docking action with mouse drag and drop.
|
DragControler |
This interface defines the features required for a drag controler.
|
FloatingDockableContainer |
The interface describing a Floating window used to display one or more dockables
|
SingleDockableContainer |
A SingleDockableContainer is a DockableContainer that can display
a single
Dockable component. |
TabbedDockableContainer |
Interface describing a container that can be used to display more than
one Dockable in a Tabbed Pane fashion.
|
Class | Description |
---|---|
AnchorConstraints |
A constraint used to specify how a dockable is tied (anchored) to its containing parent .
|
AnchorManager |
A helper class used to specify and enforce constraints within a container
(DockingPanel or CompoundDockingPanel).
|
AutoHideBorderLayout |
A Layout Manager for auto-hide borders.
|
AutoHideButton |
The button used to show Dockables in auto-hide borders.
|
AutoHideButtonPanel |
A Swing panel used as a toolbar for autohide buttons.
|
AutoHideExpandPanel |
A component used to show the currently expanded view.
|
AutoHidePolicy |
This class holds preferences on default autohiding behaviour.
|
BorderSplitter |
An utility class used to delegate the border drag/drop scanning for docking (
since the same code is used in many DockDropReceivers).
|
CompoundDockable |
Describes a Dockable that can contain sub-dockables.
|
CompoundDockingPanel |
A specialized container used to nest dockables inside that sub-part of the
desktop.
|
DefaultDockableContainerFactory |
Default implementation of the DockableContainerFactory.
|
DetachedDockView |
A DockView suitable for detached dockables (in their own window).
|
DockableActionCustomizer |
An objet that can provide actions relative to a dockable.
|
DockableContainerFactory |
An abstract factory used by the
DockingDesktop to create instance
of Dockable containers. |
DockablePanel |
A basic implementation of Dockable.
|
DockableState |
General information about the current state of a dockable component.
|
DockableStoreButton |
A Button that can be used to store a dockable (for example to allow moving a dockable
between two workspaces).
|
DockGroup |
This class describes a logical group of Dockables.
|
DockingBorderLayout |
A layout adapted to autohide panels.
|
DockingConstants |
Constants used by the DockingDesktop to position Dockables.
|
DockingConstants.Hide |
Typesafe enumeration describing an auto-hide operation on the DockingDesktop.
|
DockingConstants.Split |
Typesafe enumeration describing a split operation on the DockingDesktop.
|
DockingContext |
A context that can be shared by multiple docking desktops.
|
DockingDesktop |
The DockingDesktop is the main class of the VLDocking Framework.
|
DockingPanel |
This class is responsible for the containment of a Dockable component.
|
DockingPreferences |
This is the centralized settings repository for managing docking look and feel.
|
DockingSelectorDialog |
A Helper class providing information about the visibility of user components.
|
DockingUtilities |
Utility class implementing search/replace algorithms used by the framework.
|
DockKey |
Provides a unique identification for a Dockable and runtime properties, like icon, name,
tooltip, preferred audohide-zone...
|
DockTabbedPane |
A JTabbedPane customized for integration with the docking framework.
|
DockView |
DefaultImplementation of the SingleDockableContainer.
|
DockViewAsTab |
This component is used to display single dockables like if they were in a tabbed pane.
|
DockViewTitleBar |
A title bar, associated to a DockView (container of a single user component).
|
DragControlerFactory |
A Basic factory providing a lightweight and heavyweight implementation of the
DragControler interface
|
DragControlerGlassPane |
A glasspane use to paint drag / drop shape on top of the desktop
|
FloatingDialog |
The floating jdialog for floatable dockables.
|
MaximizedDockView |
A dockView suitable for maximized dockables
|
MaximizedDockViewAsTab |
A maximized view to use with the TabFactory.
|
RelativeDockablePosition |
This class is an immutable object used to remember the relative positionning
of docked components.
|
ShadowBorder |
A border using a shadow on right-bottom sides.
|
SplitContainer |
A Specialized JSplitPane which accepts drag and drop of DockableContainer.
|
TabbedContainerActions |
An utility class providing default implementation of usefull actions for pop-up
menus in tab container selectors.
|
TabbedDockView |
A DockView that can be nested into a TabbedDockableContainer
|
TabFactory |
A factory that replaces DockViews (with title headers) by tabbed panes with a single tab.
|
Enum | Description |
---|---|
AutoHidePolicy.ExpandMode |
A set of constants for expanding a button on rollover, or on click
|
DockableContainerFactory.ParentType | |
DockableState.Location |
Possible locations of a dockable
|
This javadoc is targetted to :
You will find in this documentation references of those targets, indicating you if you have to read such document or not, depending on your goals (developping a "User Application" or extending the API).
The VL Docking Framework is a set of Swing Components that is used to enhance any Swing Application by providing Docking capabilities to user components :
A user component can be any Swing JComponent (usualy a JPanel or a JScrollPane).
Docking functions are built upon the following classes :
DockingDesktop
: the root container of a docking-enabled application
Dockable
: an interface implemented (usually) by components that need
docking capabilities.
DockableContainer
s : specialized containers with drag and drop extensions
(come in two flavors, SingleDockableContainer and TabbedDockabeContainer).
DockKey
: a JavaBeans object fully describing the dockable (use for save/load, and for
DockableContainers customization) : name, icon, tooltip, docking features.
DockingDesktop
class. There is usually only one DockingDesktop associated to a Window.
For developpers used to JInternalFrame
API, the DockingDesktop is equivalent
to the JDesktopPane
: a layered pane capable of managing and displaying
multiple components, with overlapping when needed.
The desktop is composed of :
Dockable
.
The central zone contains a DockableContainer
that can be
recursively splitted in two (horizontally or vertically) to add
more DockableContainers. Each split acts
as a JSplitPane, and can be resized by the end-user or with the API.
Dockable
interface Dockable
is implemented by dockable component providers or, simply
by components that want to benefit of the docking features.
If you already have a working application (without docking) and want to use the docking framework, take your GUI major components, have them implement the Dockable interface (only 2 methods) and you will be able to add them to the docking desktop.
Alternatively, you can use DockablePanel which is a JPanel container implementing Dockable.
DockableContainer
, SingleDockableContainer
and
TabbedDockableContainer
interfaces.DockKey
classA DockKey is used in 3 situations :
DockingDesktop
needs a unique key to identify a dockable
(for read/write operations)
DockableContainer
displaying a Dockable
wants
information about the dockable : a name, an icon, ...
So keep in mind that each dockable must have a unique DockKey (it's a kind of primary key) and that the key, as a javabean, is used to decorate the dockable container.
Listeners : most DockKey properties are bound, and changing their value will have an immediate effect on the DockingDesktop : for example, you can change the icon property of a key and it will be propagated to the DockableContainer's title bar of its dockable.
import com.vldocking.swing.docking.*; import javax.swing.*; import java.awt.*; public class DemoFrame extends JFrame { // our docking desktop DockingDesktop desk = new DockingDesktop(); public DemoFrame(){ setDefaultCloseOperation(DISPOSE_ON_CLOSE); getContentPane().add(desk); // first, create 4 dockable buttons (inner class below) DockableButton button1 = new DockableButton("Dockable 1"); DockableButton button2 = new DockableButton("Dockable 2"); DockableButton button3 = new DockableButton("Dockable 3"); DockableButton button4 = new DockableButton("Dockable 4"); // first button at center desk.addDockable(button1); // second and third button splitted vertically on the left of center // first parameter is the "reference", second is the added dockable desk.split(button1, button2, DockingConstants.SPLIT_LEFT); desk.split(button2, button3, DockingConstants.SPLIT_BOTTOM); // add the fourth button as a tab on the 3rd : desk.createTab(button3, button4, 1); SwingUtilities.invokeLater( new Runnable() { public void run() { setSize(800,600); validate(); setVisible(true); // realize on the event dispatch thread } }); } public static void main(String [] args){ new DemoFrame(); } // our basic dockable object class DockableButton extends JButton implements Dockable { DockKey key; public DockableButton(String label){ super(label); this.key = new DockKey(label); // most simple dockkey constructor setPreferredSize(new Dimension(200,200)); } public DockKey getDockKey() { return key; } public Component getComponent() { return this; } } }
But of course, there's more in the docking framework than this. For example you can also :
The subset of classes of this package needed to understand and use the Docking Framework is limited to the following classes :
This API has been developed with extension in mind.
To Fully understand its principles, you will have to browse the entire javadoc and read the API extension tutorial on VLDocking google code.
© Copyright 2004-2013 Lilian Chamontin. All Rights Reserved.