|
||||||||||
| 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.
DockableContainers : 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 | |||||||||