Jun 30

MQTT.fx 0.0.16 released

You can download latest binaries at mqttfx.org.
Bugs and feature requests can be reported via the issue tracker.

Release Notes

  • [Changed/New] Issue #14 Now TLS/SSL without client certificate authentication is supported
  • ssl

  • [New] Issue #35 Subscribe to $SYS topics is now supported
  • sys_subscription

  • [New] Improved Error Prevention: Profile Editor now supports validation
  • In facts it’s a mix of ControlsFX Validation and Bean Validation

  • [Fixed] Issue #38 Application crash on startup if one script is wrong
  • Now scripts are not checked during startup time but execution errors are logged and printed to console:

  • [Fixed] Issue #37 java.io.FileNotFoundException if CA Certificate only is set
  • was fixed/implemented together with Issue #14

May 22

MQTT.fx 0.0.15 released

You can download latest binaries at mqttfx.org.
Bugs and feature requests can be reported via the issue tracker.


  • [Fixed] Issue #31 Unsubscribe + Disconnect from a Broker didn’t clean messages from the client.
  • [Changed/New] Bound new Output-Handler to Script execution
    • System.out is not bound to the script console anymore!
    • You should now use “output” instead of System.out in Scripts.
    • e.g.: output.print(“Hello from Script”);
  • script

  • [Changed] JRE 8 update 45 support
  • [Changed] Logging:
    • better readable logging format
    • now using sl4j (with log4j)
  • log

May 11

FontAwesomeFX 8.4 released

FontAwesomeFX 8.4: bug fixes and refactoring:

FIXED: Issue #10: “NPE in updateSize() method”

Issue when using Java 8u20:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at de.jensd.fx.glyphs.GlyphIcon.updateSize(GlyphIcon.java:142)
at de.jensd.fx.glyphs.GlyphIcon.lambda$new$0(GlyphIcon.java:60)

DONE: Issue #12: “Change class names”

Note this if you are using FontAwesomeFX with SceneBuilder!
You will have to re-import the custom components!

FontAwesomIcon is now FontAwesomeIconView
FontAwesomIcons is now FontAwesomeIcon
WeatherIcon is now WeatherIconView
WeatherIcons is now WeatherIcon

DONE:Issue #11: “Constructor with icon parameter”

An additional constructors available:
FontAwesomeIconView(FontAwesomeIcon icon)
WeatherIconView(WeatherIcon icon)

FIXED: Issue #13: “IllegalAccessError on FontAwesomeIcon construction”

Attempting to construct an instance of FontAwesomeIcon results in IllegalAccessError:
java.lang.IllegalAccessError: tried to access method com.sun.javafx.css.parser.CSSParser.()V from class de.jensd.fx.glyphs.GlyphIcon
at de.jensd.fx.glyphs.GlyphIcon.(GlyphIcon.java:218)

Get 8.4:
Download Binaries: Download
Sources available at Bitbucket



Please report issues here

Apr 03

FontAwesomeFX 8.3 is there!

FontAwesomeFX 8.3 comes with extended CSS support.

Introducing two new CSS Properties to set the glyph name and size via stylesheet, while the value for the name and the value for the glyph size follows the common JavaFX CSS type definition:

-glyph-name: <string>
-glyph-size: <size>

You can now set all icon properties via CSS only:

   -glyph-name: "THUMBS_UP";
   -glyph-size: 6em;

   -glyph-name: "THUMBS_DOWN";
   -glyph-size: 6em;
FontAwesomeIcon thumbsUpIcon = new FontAwesomeIcon();

FontAwesomeIcon thumbsDownIcon = new FontAwesomeIcon();


CSS style class support is also very handy when used in SceneBuilder or in FXML:


    <FontAwesomeIcon styleClass="thumbs-up-icon" />
    <FontAwesomeIcon styleClass="thumbs-down-icon" />

Get 8.3:
Download Binaries: Download
Sources available at Bitbucket


Mar 04

FontAwesomeFX 8.2 released

I made some refactorings and have now released FontAwesomeFX 8.2 containing some (more or less) minor changes:

  • Icon enums renamed: ‘*Name’ is now ‘*Icons’ (e.g. ‘FontAwesomeIcons’ instead of ‘FontAwesomeIconName’)
  • added a ‘BLANK’ icon to both FontAwesomeIcons and WeatherIcons which is in fact unicode ‘\u0020′ (SPACE) (@dlemmermann! ;-))
  • GlyphsBuilder: icon(GlyphIconName glyphIconName) is now glyph(GlyphIcons glyph)
  • removed unnecessary code
  • FXML:
    • ‘iconName’ is now ‘glyphName’
    • ‘glyphStyleClass’ is now ‘styleClass': no extra GlyphStyle class just assign the class via Section “JavaFX CSS” -> Style Class.

So if you have already used FontAwesomeFX 8.1 you will also have to adjust your code, sorry for the inconvenience but I think now its a more reasonable wording for future releases!

Some FXML Examples:
2015-03-04 12_49_16-FontAwesomeFX - NetBeans IDE 8.0.2
2015-03-04 12_44_15-glyphs_fxml_demo.fxml
2015-03-04 12_46_09-glyphs_fxml_demo.fxml

2015-03-04 12_49_25-FontAwesomeFX - NetBeans IDE 8.0.2
2015-03-04 12_47_13-glyphs_fxml_demo.fxml
2015-03-04 12_47_25-glyphs_fxml_demo.fxml
2015-03-04 12_45_56-glyphs_fxml_demo.fxml

I planned to make the Icon choice in SceneBuilder more comfortable. I wanted to provide a drop-down instead of need to look up the right name and to put it into the TextField. But unfortunately by now I didn’t make it to get SceneBuilder to work with the Glyphs-choice as enum. It worked very well with just one GlyphIcon on the pane but when a 2nd one is placed SB crashed. But I will continue to try to find out what went wrong – stay tuned.

Get 8.2:
Download Binaries: Download
Sources available at Bitbucket


Feb 23

MQTT.fx – bug fix release

You can download latest binaries at mqttfx.org.
Bugs and feature requests can be reported via the issue tracker.

Version contains some bug fixes (since 0.0.14 release):

  • [Fixed] Issue #27 Disconnection when publishing to a second broker
  • [Fixed] bug when to show only latest messages
  • [Fixed] bug when receiving broker status messages ($SYS-topics)
Feb 18

Introducing: FontAwesomeFX 8.1

I have started a new major of FontAwesomeFX.


First of all the new container for an icon character now extends javafx.scene.text.Text instead of javafx.scene.control.Label (see this post for details, many thanks to Peter Schulz for the hint!).
If you know former versions of FontAwesomeFX you may notice that AwesomeDude is now called GlyphsDude, AwesomeIconsStack is now GlyphsStack and so on. But the most significant change is the option to support basically any Glyph/Web Font by just adding a new implementation GlyphIcon where T implements the GlyphIconName interface and the name -> unicode mapping (as Enum).

Currently 2 icon fonts support are build-in:

(in respect to Dave Gandy http://fortawesome.github.io/Font-Awesome/ (Yes: ‘fortawesome’ its not a typo ;-)))

(in respect to Erik Flowers and Lukas Bischoff http://erikflowers.github.io/weather-icons/)

Usage in FXML


<?import de.jensd.fx.glyphs.fontawesome.*?>
<?import de.jensd.fx.glyphs.weathericons.*?>

<fx:root prefHeight="300.0" prefWidth="600.0" type="VBox" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
        <VBox alignment="CENTER" spacing="10.0">
                <FontAwesomeIcon iconName="STAR" size="12em" glyphStyle="-fx-fill: linear-gradient(#70b4e5 0%, #247cbc 70%, #2c85c1 85%);"/>
                <WeatherIcon iconName="CLOUD" size="12em" glyphStyle="-fx-fill: linear-gradient(#70b4e5 0%, #247cbc 70%, #2c85c1 85%);"/>
                      <FontAwesomeIcon iconName="CIRCLE" size="24em" glyphStyle="-fx-fill: linear-gradient(#70b4e5 0%, #247cbc 70%, #2c85c1 85%);"/>
                      <FontAwesomeIcon iconName="BITBUCKET" size="12em" glyphStyle="-fx-fill: linear-gradient(#ffffff, #d2d2d2); -fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.8) , 4 , 0.0 , 1 , 1 );"/>
                <Insets bottom="20.0" top="20.0" />

Usage in SceneBuilder

Also layered combinations are supported: GlyphStack



Download Binaries: Download
Sources available at Bitbucket


Feb 07

MQTT.fx 0.0.14 released

As always you can download latest binaries at mqttfx.org.
Bugs and feature requests can be reported via the issue tracker.
Also the Update Feature of 0.0.13 should inform you, that there are updates available (See NNOTE 1 at bottom of this page)!

Reviewed Clipboard Messages

  • Order can now be changed by Drag-and-Drop
  • Can be published instantly by click on Button
  • Changes are now stored immediately


All new approach with topics and messages

  • Rendering revisited
  • Colors of topics can now be customized (messages are colored accordingly)
  • Colors of topics are persisted in configuration
  • Topics can now be unsubscribed by click on “-” (messaged will be removed accordingly)
  • Number of received messages per topic is shown
  • Messages also do show the wildcard topics to which they have matched
  • Only longer payloads are expandable now, one-liner are shown as subject
  • “Copy Payload” is now accessible without expanding the payload
  • Improved performance



Support for HTTPS proxy connection options
In respect to Dino Tsoumakis 😉
https proxy

Anything else?

  • Fixed an issue with unrecognized (but allowed) characters in topics

I was asked how to add new Scripts
I mentioned this before in a post (but this was 6 month ago ;-)).

New scripts can be easily made available for execution via the UI.
The app is scanning a folder named “scripts” located at the MQTT.fx working directory:

[USER_HOME]/Library/Application Support/MQTT-FX/scripts



If this folder does not exists it is created by MQTT.fx containing scripts.
Naming convention:

[INDEX] controls the order of the entry in the drop down menu
__ delimiter between index and name
[NAME the name of the menu entry (words are delimit by ‘_’)

E.g.: With these files in the “scripts” folder

the menu looks like this:
scripts menu

NOTE 1: In 0.0.13 the Update Feature has a bug!
The new install packages are loaded but yet not always renamed on Windows and Linux (this is fixed in 0.0.14). You will find the packages ending with postfix “.download”. You have to rename it manually.

NOTE 2: The format of the configuration has changed!
You may have to delete you current configuration and restart MQTT.fx. MQTT.fx will create a new default configuration for you!