|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
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. |
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 Summary | |
---|---|
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). |
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. |
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.vlsolutions.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 www.vlsolutions.com.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |