Menu

Drombler / Blog: Recent posts

Drombler FX: Version 1.0 released

I've recently released the version v1.0 of Drombler
FX
- the modular application framework
for JavaFX.

With this release I changed the version policy. I'm using now the major
version part as well to make it easier to distinguish between major
requirement changes such as the Java version :

  • v1.x : Java SE 8 and JavaFX 8 based
  • v2.x (future) : Java SE 11 and JavaFX 11 based (likely)... read more
Posted by SourceForge Robot 2020-01-09

Drombler FX: Version 0.12 and 0.13 released

Since introducing a modular StatusBar and ProgressMonitor earlier this year, I've released v0.12 and v.013 of Drombler FX - the modular application framework for JavaFX.

In this releases some of the Drombler FX/ ACP start-up code has been moved to Drombler Commos.
This allows also non-Drombler FX/ ACP applications, such as the Drombler JStore Client Agent, to reuse start-up code such as: ... read more

Posted by SourceForge Robot 2018-10-15

Drombler JStore News: JRE REST service and JAP packaging

The work on the Drombler JStore, the next generation of Java application deployments, goes on.

The way an application is identitfied has been changed to reuse the Maven GA(V) coordinates: groupId + artifactId
The packaging format is fixed (currently it's called "jap") and together with a version an application package can be uniquely identified.

There are now 4 REST services: ... read more

Posted by SourceForge Robot 2018-09-23

The next generation of Java application deployments

A lot is going on in the Java world. So let's first have a look at where we currently are.

Oracle discontinues Java Web Start with Java 11

After discontinuing the Applet technology, which required browser plug-ins, Oracle now announced that they will also discontinue the Java Web Start technoloy.

Java Web Start, however, was a great way to easily deploy Java applications. It made sure Java application deployments don't fall too far behind the instant deployment feature of web applications - a point which already let many companies to choose web applications over Java based applications.

With Java Web Start gone, it will become harder again to compete with web applications, if we don't find a good alternative (please read on).
... read more

Posted by SourceForge Robot 2018-06-16

Drombler FX v0.11: modular StatusBar and ProgressMonitor

I recently released v0.11 of Drombler FX - the modular application framework for JavaFX.

This release comes with the integration of two new JavaFX controls.

StatusBar

The first is a rather simple one: a StatusBar. It maintains three lists of elements: leftElements, centerElements and rightElements. The elements are layed out accordingly.
The control is Skinnable and Styleable and can also be used in non-OSGi JavaFX applications. As you might guess, the main intention of this control is to show the user additional information at the bottom of your application.

Drombler FX provides declarative, modular integration of this StatusBar:
@StatusBarElement(horizontalAlignment = HorizontalAlignment.CENTER, position = 20) public class SampleStatusBarElement extends BorderPane { }
The annotated Node sub-class will be added to the according StatusBar elements list at the specified position.

If two adjacent StatusBar elements are positioned in different thousand groups (e.g. position = 910 and position = 1120), a Separator gets automatically registered between them.

For more information see the new StatusBar tutorial trail.
... read more

Posted by SourceForge Robot 2018-02-17

Drombler FX: Version 0.10 released

I recently released v0.10 of Drombler FX - the modular application framework for JavaFX.

This version is mainly a bug fix release and especially fixes some issues on Macs.

Please note that the Drombler FX Maven Plugin has been rewritten. The tasks have been split up into several goals, which are bound to the relevant phase of the default lifecycle. The plugin documentation will be updated in the next version.

The project now provides a "How to Contribute"-page. Projects like this one need to be build by a community working together to be really successful. There are several ways how you can contribute to this project.
Contributions are highly welcome! ... read more

Posted by SourceForge Robot 2017-07-12

Drombler FX: Version 0.9 released

I recently released v0.9 of Drombler FX - the modular application framework for JavaFX.

This version is mainly a maintenance release but also provides a new hook for a custom menu item sorting strategy, which can be used for programmatically registered menus. ... read more

Posted by SourceForge Robot 2017-01-11

Drombler FX: Version 0.8 released

I recently released v0.8 of Drombler FX - the modular application framework for JavaFX.

This version comes with two new major features: Single Instance Application and an initial version of a Data Framework which integrates with the Docking Framework.
... read more

Posted by SourceForge Robot 2016-10-26

Drombler FX: Version 0.7 released

I recently released v0.7 of Drombler FX - the modular application framework for JavaFX.

It has been a while since the last release but a lot of work has been undertaken.

Drombler moved from SourceForge.net to GitHub.
This includes:

  • You can find all Drombler repositories on the Drombler GitHub organization site.
  • All Drombler repositories have been migrated from Mercurial to Git
  • The Gitflow has been configured for all repositories. You can find the current development in the develop branches (default branch) and the released versions in the master branch.
  • The static pages as well as the Wiki pages haven been migrated to GitHub Pages.
  • The tutorial has been migrated from the Wiki pages to Asciidoc files which are also published to the GitHub Pages. The Asciidoc files allow to
    • compile the included samples first, to make sure the correct version of the API is used and that there is no typo
    • keep different versions of the tutorial for different releases
    • publish the tutorial in different formats
    • easily style the tutorial 
  • The issues have been migrated to the issue system provided by GitHub.

    Experiments with CDI & OSGi

A lot of work has been done in experiments to integrate CDI and OSGi.

Unfortunately, among several issues ... read more

Posted by SourceForge Robot 2015-11-23

Drombler Commons: Conventions to simplify FXML loading

Correctly loading a FXML file in JavaFX usually requires quite some boilerplate code.

In my projects I came up with a new naming convention:

If a class "mypackage.<name>" loads a FXML file, then the FXML file should be in the same package and be named "__<name>.fxml".

One advantage is, that when following this naming convention it's quite easy to see, which FXML loader/ fx:root-controller and FXML file belong together.

Another advantage is, that when using a utility method, the loading code for eg. a fx:root-based mypackage/MyPane.fxml file (a construct I can highly recommend) such as:

...
can be simplified to this:

package mypackage; import org.drombler.commons.fx.fxml.FXMLLoaders; ... public class MyPane extends SomePane { public MyPane() { FXMLLoaders.loadRoot(this); } ... }
This code will: ... read more

Posted by SourceForge Robot 2015-06-16

Drombler Commons: Conventions to simplify FXML loading

Correctly loading a FXML file in JavaFX usually requires quite some boilerplate code.

In my projects I came up with a new naming convention:

If a class "mypackage.<name>" loads a FXML file, then the FXML file should be in the same package and be named "__<name>.fxml".

One advantage is, that when following this naming convention it's quite easy to see, which FXML loader/ fx:root-controller and FXML file belong together.

Another advantage is, that when using a utility method, the loading code for eg. a fx:root-based mypackage/MyPane.fxml file (a construct I can highly recommend) such as:

...
can be simplified to this:

package mypackage; import org.drombler.commons.fx.fxml.FXMLLoaders; ... public class MyPane extends SomePane { public MyPane() { FXMLLoaders.loadRoot(this); } ... }
This code will: ... read more

Posted by SourceForge Robot 2015-03-31

Drombler FX: Version 0.6 released

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

This is mainly a bug fix release.

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

Please note that there is currently a critical bug in the Docking Framework because of a bug in JavaFX. That bug should be fixed in the Java SE/ JavaFX 8u40 release however (expected release date: March 2015).

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 2015-02-27

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 2014-12-21

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