Package com.vlsolutions.swing.docking

The VL Docking Framework for JFC "Swing" applications.

Interface Summary

DockableInterface describing a component (AWT/Swing) that can be managed by the DockingDesktop.
DockableContainerA DockableContainer is the base interface of GUI components used to display Dockable components.
DockableDragSourceAn interface implemented by visual components used for drag and drop operations on a DockableContainer.
DockableResolverAn interface used to find a dockable (when read from an input stream like XML) when the only information given is its DockKey id.
DockDropReceiverAn interface implemented by components that can accept docking action with mouse drag and drop.
FloatingDockableContainerThe interface describing a Floating window used to display one or more dockables

Objects implementing this interface must be instances of JDialog , as the pack(), setVisible(), setLocation(), dispose() etc.

SingleDockableContainerA SingleDockableContainer is a DockableContainer that can display a single Dockable component.
TabbedDockableContainerInterface describing a container that can be used to display more than one Dockable in a Tabbed Pane fashion.

Class Summary

AnchorConstraintsA constraint used to specify how a dockable is tied (anchored) to its containing parent .
AnchorManagerA helper class used to specify and enforce constraints within a container (DockingPanel or CompoundDockingPanel).
AutoHideBorderLayoutA Layout Manager for auto-hide borders.
AutoHideButtonThe button used to show Dockables in auto-hide borders.
AutoHideButtonPanelA Swing panel used as a toolbar for autohide buttons.
AutoHideExpandPanelA component used to show the currently expanded view.
AutoHidePolicyThis class holds preferences on default autohiding behaviour.
BorderSplitterAn utility class used to delegate the border drag/drop scanning for docking ( since the same code is used in many DockDropReceivers).
CompoundDockableDescribes a Dockable that can contain sub-dockables.
CompoundDockingPanelA specialized container used to nest dockables inside that sub-part of the desktop.
DefaultDockableContainerFactoryDefault implementation of the DockableContainerFactory.
DetachedDockViewA DockView suitable for detached dockables (in their own window).
DockableActionCustomizerAn objet that can provide actions relative to a dockable.
DockableContainerFactoryAn abstract factory used by the DockingDesktop to create instance of Dockable containers.
DockablePanelA basic implementation of Dockable.
DockableStateGeneral information about the current state of a dockable component.
DockableStoreButtonA Button that can be used to store a dockable (for example to allow moving a dockable between two workspaces).
DockGroupThis class describes a logical group of Dockables.
DockingBorderLayoutA layout adapted to autohide panels.
DockingConstantsConstants used by the DockingDesktop to position Dockables.
DockingConstants.HideTypesafe enumeration describing an auto-hide operation on the DockingDesktop.
DockingConstants.SplitTypesafe enumeration describing a split operation on the DockingDesktop.
DockingContextA context that can be shared by multiple docking desktops.
DockingDesktop The DockingDesktop is the main class of the VLDocking Framework.
DockingPanelThis class is responsible for the containment of a Dockable component.
DockingPreferencesThis is the centralized settings repository for managing docking look and feel.
DockingSelectorDialogA Helper class providing information about the visibility of user components.
DockingUtilitiesUtility 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...
DockTabbedPaneA JTabbedPane customized for integration with the docking framework.
DockViewDefaultImplementation of the SingleDockableContainer.
DockViewAsTabThis component is used to display single dockables like if they were in a tabbed pane.
DockViewAsTab.TabHeader
DockViewTitleBarA title bar, associated to a DockView (container of a single user component).
FloatingDialogThe floating jdialog for floatable dockables.
FloatingDialog.Resizer
FloatingDialog.TitlePanelClass used as a title for dragging the window around
MaximizedDockViewA dockView suitable for maximized dockables
MaximizedDockViewAsTabA maximized view to use with the TabFactory.
MaximizedDockViewAsTab.MaximizedTabHeader
RelativeDockablePositionThis class is an immutable object used to remember the relative positionning of docked components.
ShadowBorderA border using a shadow on right-bottom sides.
SplitContainerA Specialized JSplitPane which accepts drag and drop of DockableContainer.
TabbedContainerActionsAn utility class providing default implementation of usefull actions for pop-up menus in tab container selectors.
TabbedDockViewA DockView that can be nested into a TabbedDockableContainer
TabFactoryA factory that replaces DockViews (with title headers) by tabbed panes with a single tab.

The VL Docking Framework for JFC "Swing" applications.

Goals.

Audience.

For API Users

Basic Description

Docking capabilities

The DockingDesktop class.

JInternalFrameJDesktopPane

DockableContainer

The Dockable interface

Dockablecomponents that want to benefit of the docking features

Alternatively, you can use DockablePanel which is a JPanel container implementing Dockable.

The DockableContainer, SingleDockableContainer and TabbedDockableContainer interfaces.

The DockKey class


Getting Started

www.vlsolutions.com/en/documention/docking/tutorial

Creating a small sample application :

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;
}
}
}

www.vlsolutions.com/en/documention/docking/tutorial

Browsing the API


Extending the API

www.vlsolutions.com


© Copyright 2004-2006 VLSolutions. All Rights Reserved.
www.vlsolutions.com : Java Components - Smart Client Applications