Drombler / Blog: Recent posts

Using ControlsFX in a Drombler FX application

Earlier this year I've contributed a patch to ControlsFX to provide OSGi meta data in the Manifest file.

This patch allows ControlsFX to be used more or less out-of-the-box in an OSGi environment such as Drombler FX.

I'm writing "more or less out-of-the-box" since you still need an additional configuration in a Drombler FX application to be able to use ControlsFX.

The latest Drombler FX release provides some documentation in the sample generated by the Drombler FX Maven Archetype about this additional configuration.

You can find this in the generated test-application project in the file src/main/app/conf/config.properties.

You basically have to uncomment some lines there, which looks then like this:

org.osgi.framework.system.packages.extra=${jfx-${jfx.specification.version}}, ${jfx-${jfx.specification.version}-impl} jfx-8-impl=com.sun.javafx, \ com.sun.javafx.collections, \ com.sun.javafx.css, \ com.sun.javafx.css.converters, \ com.sun.javafx.event, \ com.sun.javafx.runtime, \ com.sun.javafx.scene.control, \ com.sun.javafx.scene.control.behavior, \ com.sun.javafx.scene.control.skin, \ com.sun.javafx.scene.traversal, \ com.sun.javafx.tk, \ com.sun.javafx.webkit, \ com.sun.webkit
The reason you need this additional configuration is that ControlsFX uses some non-published, internal JavaFX implementation classes and the OSGi environment with the configuration provided by Drombler FX is hiding these classes by default. Adding the necessary packages to org.osgi.framework.system.packages.extra allows ControlsFX to use these classes as well.

Note however that with this configuration these packages are available not only to ControlsFX but to any OSGi bundle in the application. Generally it's strongly discouraged to rely on non-published internal classes as they can change even with any minor release. Backwards compatibility is not maintained for these classes! Using this configuration the OSGi environment cannot protect your own OSGi bundles from using the classes of these packages.

The configuration has been tested with org.controlsfx:controlsfx:8.0.6 and org.controlsfx:controlsfx:8.0.6_20.

... read more

Posted by SourceForge Robot 7 days ago

Drombler FX: Version 0.5 released

I recently released Drombler FX v0.5. Drombler FX is a modular Rich Client Platform for JavaFX based on OSGi and Maven (POM-first).

With this release the Docking Framework becomes more lightweight. You don't have to extend any particular Drombler specific class anymore but can extend from any Node such as a layout pane. The DockablePane has been removed from the API.

With this release also icons in Editor Dockings are supported: ... read more

Posted by SourceForge Robot 2014-10-20

Drombler FX: JavaFX 8 support

I recently released Drombler FX v0.4. Drombler FX is a modular Rich Client Platform for JavaFX based on OSGi and Maven (POM-first).

With this release Drombler FX as well as Drombler ACP and Drombler Commons support and require JavaFX 8/ Java SE 8.

You can find the complete list of fixed issues here: http://issues.drombler.org/milestone/0.4

There's a Getting Started page which explains how to create, build and run a Drombler FX sample application with a few simple steps.

Drombler FX uses Apache Felix as its OSGi container by default.
As an application framework it makes sure JavaFX and OSGi will get started properly and it provides the main window.

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.
  ... read more

Posted by SourceForge Robot 2014-05-21

Drombler FX: Version 0.3 released

I recently released Drombler FX v0.3. Drombler FX is a modular Rich Client Platform for JavaFX based on OSGi and Maven (POM-first).

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.
BorderPane borderPane = new BorderPane(); DockingPane dockingPane = new DockingPane(); ContextManager contextManager = new ContextManager(); DockingManager dockingManager = new DockingManager(dockingPane, contextManager); ... borderPane.setCenter(dockingPane);
Register a Docking Area:
DockingAreaDescriptor leftAreaDescriptor = new DockingAreaDescriptor(); leftAreaDescriptor.setId("left"); leftAreaDescriptor.setParentPath(Arrays.asList(20, 20)); leftAreaDescriptor.setPosition(20); leftAreaDescriptor.setPermanent(false); LayoutConstraintsDescriptor leftLayoutConstraintsDescriptor = new LayoutConstraintsDescriptor(); leftLayoutConstraintsDescriptor.setPrefWidth(200.0); leftAreaDescriptor.setLayoutConstraints(leftLayoutConstraintsDescriptor); dockingPane.getDockingAreaDescriptors().add(leftAreaDescriptor);
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"):
DockablePreferencesManager dockablePreferencesManager = new SimpleDockablePreferencesManager(); DockablePreferences leftDockablePreferences = new DockablePreferences(); leftDockablePreferences.setAreaId("left"); leftDockablePreferences.setPosition(20); dockablePreferencesManager.registerDefaultDockablePreferences(LeftTestPane.class, leftDockablePreferences);
Add a DockablePane (here: LeftTestPane) to the DockingPane:
LeftTestPane leftTestPane = new LeftTestPane(); leftTestPane.setTitle("Left"); dockingPane.getDockables().add(new DockableEntry(leftTestPane, dockablePreferencesManager.getDockablePreferences(leftTestPane)));
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: ... read more

Posted by SourceForge Robot 2014-05-11

Drombler Commons: Date and Time Controls use Java SE 8 APIs

I recently released Drombler Commons v0.2. In this release I've ugraded the _Date and Time Controls _and DataRenderers, which I've released earlier this year, to use the latest version of  the new Date and Time API (JSR-310) provided by the Java SE 8 Early Access Release rather than the outdated version from the initial ThreeTen project.

In this process I've renamed some packages and classes to match the packages and classes of the new Date & Time API, which have been renamed since the last Drombler Commons release.

The aggregated Javadoc of all components can be found here: http://www.drombler.org/DromblerCommons/docs/site/0.2/apidocs/

The source code can be found here.

The components are available from Maven Central (along with the sources and javadoc artifacts). You can use the following dependencies:

For Drombler Commons - FX - Core:
org.drombler.commons drombler-commons-fx-core 0.2
For Drombler Commons - FX - Date and Time (requires Java SE 8):
org.drombler.commons drombler-commons-fx-time 0.2
link

Posted by SourceForge Robot 2013-12-21

Drombler Commons: JavaFX controls for the new Date & Time API (JSR-310)

I managed to open source and release two more libraries I mainly worked on in spring 2012. They form the first 2 components of this first Early Access version of Drombler Commons: Drombler Commons - FX - Core and Drombler Commons - FX - Date and Time.

Drombler Commons - FX - Core

This component contains various JavaFX utility classes.

Note that this component is still very experimental as I'm trying to figure out what works best with JavaFX.

Among others it contains: ... read more

Posted by SourceForge Robot 2013-11-07

Drombler FX: Version 0.2 released

I recently released Drombler FX v0.2. Drombler FX is a modular Rich Client Platform for JavaFX based on OSGi and Maven (POM-first).

For this release, a lot of work has been done in the stabilization of the Docking Framework.

In addition, the icon property gets now respected when registering a Dockable Pane:
... read more

Posted by SourceForge Robot 2013-11-07

Drombler FX: building modular JavaFX applications with OSGi and Maven

If you have ever learned to use a modular Rich Client Platform such as the NetBeans Platform (Swing based) or Eclipse RCP (SWT based) it's likely you wouldn't want to write rich clients in any other than in a modular way.

And so I'm happy to announce the availabilty of a first Early Access version of Drombler FX_. _Drombler FX _is a modular Rich Client Platform for _JavaFX based on: ... read more

Posted by SourceForge Robot 2013-04-18

Drombler Commons: JavaFX controls for the new Date & Time API (JSR-310)

I managed to open source and release two more libraries I mainly worked on in spring 2012. They form the first 2 components of this first Early Access version of Drombler Commons: Drombler Commons - FX - Core and Drombler Commons - FX - Date and Time.

Drombler Commons - FX - Core

This component contains various JavaFX utility classes.

Note that this component is still very experimental as I'm trying to figure out what works best with JavaFX.

Among others it contains: ... read more

Posted by SourceForge Robot 2013-04-18

Drombler FX: building modular JavaFX applications with OSGi and Maven

The first Early Access version of Drombler FX has been released.

You can read more about it here: http://puces-blog.blogspot.ch/2012/12/drombler-fx-building-modular-javafx.html

Posted by Puce 2012-12-11 Labels: Drombler FX Java JavaFX OSGi Maven