With this release the Docking Framework and the Context Framework have been moved from the OSGi-based RCP Drombler FX to the Drombler Commons library collection, which can be used inside and outside of an OSGi platform.
This allows you to use these frameworks even if you don't want to use Drombler FX, yet, for some reason.
Note that the declarative, annotation based programming model is still only supported by Drombler FX. But using the libraries from Drombler Commons you can use the Docking Framework programmatically like this:
Add a DockingPane to the scene and initialize the ContextManager and the DockingManager.
The DockingPane splits up its content area into any number of Docking Areas. The Docking Areas can be resized using the dividers. Each Docking Area can hold any number of Dockable Panes, which are layed out as Tabs.
The ContextManager and the DockingManager manage the Acitve Context and the Application Context depending on the currently open and active Dockable Panes.
Register a Docking Area:
Initialize the DockablePreferencesManager and register the default DockablePreferences for each Dockable Pane type (here: LeftTestPane which should be docked into the Docking Area with ID "left"):
Add a DockablePane (here: LeftTestPane) to the DockingPane:
You can find a complete sample here.
Note that the Docking Framework is still in its early stages and advanced features such as drag'n'drop Dockable Panes don't work yet. Currently it supports:
- Register Docking Areas and visualize them by adding TabPanes to a custom multi-SplitPane.
- Add Dockable Panes to Docking Areas using a logical Docking Area ID.
- Calculate the minimal required SplitPanes depending on the sparse definition of Docking Areas and the currently open Dockable Panes.
Here you can find a list of currently known issues and enhancement requests.
Especially have a look at the API issues. Although I took the opportunity and invested a lot of effort to clean up the API in the process of moving the framework from Dromber FX, where the programmatic API was in a hidden package, to Drombler Commons, where a part of the programmatic API has now been published, I'm still not 100% satisfied with the current state. Other opinions are highly welcome!
Please feel free to vote, comment and/ or file new issues.
For more information on the Context Framework have a look at the wiki.
And you can find a complete sample here.
The following table provides you an overview of the different Drombler components, links to the modules, which are available from Maven Central, and links to the Javadocs.
|Drombler FX||Modules||Javadoc||Drombler FX is a modular Rich Client Platform for JavaFX based on:
|Drombler ACP||Modules||Javadoc||Drombler Abstract Client Platform (ACP) is an abstract, GUI-toolkit agnostic, modular Rich Client Platform based on:
|Drombler Commons||Modules||Javadoc||Drombler Commons is a collection of reusable libraries and frameworks. They ship with OSGi meta data but don't require an OSGi environment.|
You can find the complete list of fixed issues here: http://issues.drombler.org/milestone/0.3
Note that since JavaFX 8 isn't 100% backwards compatible with JavaFX 2.x, this release still only works with Java SE 7/ JavaFX 2.x.
I'm already working on upgrading Drombler FX and Drombler Commons to Java SE 8/ JavaFX 8, however, and it will likely make it into the next release. Stay tuned!