FontAwesomeFX 8.14 released

I just released FontAwesomeFX 8.14 to Bintray.

This release contains some major fixes:

  • Fixed glyph size changing issue on mouse over
  • Fixed Issues #44 “CSS -glyph-size broken”
FontAwesomeFX 8.14
compile 'de.jensd:fontawesomefx-fontawesome:4.7.0-3'
compile 'de.jensd:fontawesomefx-icons525:3.0.0-2'
compile 'de.jensd:fontawesomefx-materialdesignfont:1.7.22-2'
compile 'de.jensd:fontawesomefx-materialicons:2.2.0-3'
compile 'de.jensd:fontawesomefx-octicons:4.3.0-3'
compile 'de.jensd:fontawesomefx-weathericons:2.0.10-3'
they are all depending on:
compile 'de.jensd:fontawesomefx-commons:8.14'
optional:
compile 'de.jensd:fontawesomefx-controls:8.14'

Also I updated the FontAwesomeFX GlyphsBrowser and the examples in respect to this release!

You can find the FontAwesomeFX bintray package here.

Source code available at Bitbucket

Please report issues here

Minor Update of FontAwesomeFX 8.13 packages

Updated font packs available!
Issues fixed when using dedicated fonts in JavaFX applications (thanks to Dirk Lemmermann (@dlemmermann) for reporting):

FontAwesomeFX 8.13
compile 'de.jensd:fontawesomefx-fontawesome:4.7.0-2'
compile 'de.jensd:fontawesomefx-icons525:3.0.0-1'
compile 'de.jensd:fontawesomefx-materialdesignfont:1.7.22-1'
compile 'de.jensd:fontawesomefx-materialicons:2.2.0-2'
compile 'de.jensd:fontawesomefx-octicons:4.3.0-2'
compile 'de.jensd:fontawesomefx-weathericons:2.0.10-2'

Some people also reported font loading issues with 32bit OpenJDK.
This might be related to this bug in FTFactory.java
http://mail.openjdk.java.net/pipermail/openjfx-dev/2016-March/018776.html
Many thanks to Andrea Vacondio (@Torakiki610) for investigation!

You can find the FontAwesomeFX bintray package here.

Source code available at Bitbucket

Please report issues here

MQTT.fx 1.3.1 is here!

MQTTfx_icon_256

Here’s the latest MQTT.fx (minor/bugfix) release: MQTT.fx 1.3.1!
Coming with a fixed styling of detaching panes and also some dark theme improvements.

As always you can download latest binaries/installers at mqttfx.org.

Please Report bugs and feature requests  via the issue tracker.

MQTT.fx 1.3.0 is released!

MQTTfx_icon_256

Here’s the latest MQTT.fx release: MQTT.fx 1.3.0!
I continued to spend some effort on stability and performance along with some UI additions.

As always you can download latest binaries/installers at mqttfx.org.

Please Report bugs and feature requests  via the issue tracker.

Release Notes

  • [New] Settings: Option to set buffer sizes (per topic & received messages)
  • [New] Settings: Option to set max characters of logging output console and scripting output console
  • [New] Settings: Support for dark,light and custom themes
  • [New] Bundled with JRE 1.8.0_112
  • [Fixed] memory leak in logging output console and scripting output console
  • [Fixed] Issue: autoscroll enable/disable

Performance and memory saving improvements

You can now set the size (max. characters) for the scripting output console as well as for the logging output:
mqttfx130_max_characters

And you can now set the buffer sizes for received messages and the messages history per topic:
mqttfx130_buffer_settings

Support for Color Themes

I have added an option to change the color theme of MQTT.fx.
The choice is: Light, Dark (experimental) and Custom:

mqttfx130_light_theme

mqttfx130_dark_theme

mqttfx130_custom_theme

You can start a new custom theme by choosing “Create custom CSS template” which will create a (light) color theme css template. You will be prompted with a dialog showing the actual location of the created template. A click on “Edit” opens the selected CSS file in your preferred Editor.

FontAwesomeFX 8.13 released

Just released FontAwesomeFX 8.13 to Bintray.

Revisited and updated Icon Fonts:

Font Version What's new?
FontAwesome 4.7.0 7 new icons (many thanks to Steffen for his pull-request)
525Icons 3.0 Font updated on 30-10-2016
Material Design Font 1.7.22 73 new icons
FontAwesomeFX 8.13
compile 'de.jensd:fontawesomefx-fontawesome:4.7.0'
compile 'de.jensd:fontawesomefx-icons525:3.0.0'
compile 'de.jensd:fontawesomefx-materialdesignfont:1.7.22'
compile 'de.jensd:fontawesomefx-materialicons:2.2.0-1'
compile 'de.jensd:fontawesomefx-octicons:4.3.0-1'
compile 'de.jensd:fontawesomefx-weathericons:2.0.10-1'
they all depend on:
compile 'de.jensd:fontawesomefx-commons:8.13'
optional:
compile 'de.jensd:fontawesomefx-controls:8.13'
Demo apps
de.jensd.fx.glyphs.fontawesome.demo.FontAwesomeIconsDemoApp
de.jensd.fx.glyphs.materialdesignicons.demo.MaterialDesignIconsDemoApp
de.jensd.fx.glyphs.materialicons.demo.MaterialIconsDemoApp
de.jensd.fx.glyphs.octicons.demo.OctIconsDemoApp
de.jensd.fx.glyphs.weathericons.demo.WeatherIconsDemoApp
de.jensd.fx.glyphs.icons525.demo.Icons525DemoApp

You can find the FontAwesomeFX bintray package here.

Source code available at Bitbucket

Please report issues here

fafx813

MQTT.fx 1.2.0 is here!

It’s time for the next MQTT.fx release: MQTT.fx 1.2.0!
Most of the changes are under the hood, but in fact there also some new usability improvements.

MQTTfx_icon_256

As always you can download latest binaries/installers at mqttfx.org.

Please Report bugs and feature requests  via the issue tracker.

Release Notes

  • [New] Payload can now be decoded and exported in JSON format
  • [New] Topic of received messages can now be copied (and pasted)
  • [New] Eclipse Paho 1.1.0 included
  • [New] Bundled with JRE 1.8.0_102
  • [Fixed] Memory leak in terms of received and published messages
  • [Fixed] Issue when clearing the received messages buffer
  • [Fixed] Issue when last choosen import/export location is no longer valid

Display payload as JSON

Introcuding a new payload decoding option:
decodings

Publish unformatted JSON demo message:

publish_json

Display plain JSON message:

receive_json_plain

Display formatted JSON message:

receive_json_formatted

Speaking of decoding payload: next release is going to support custom payload decoder plugins!

Copy Topic

You now can copy (and paste) the topics of received messages:

copy_topic

Introducing fontawesomefx-examples project

Some people asked me about a FontAwesomeFX tutorial.
Now I started a new project: fontawesomefx-examples at GitHub!

basic_1

The examples will always reflect the latest version of FontAwesomeFX (currently 8.12 which can be loaded from Bintray) and I am going to extend it soon to show all stuff which provided by the lib.

FontAweseomFX 8.12 release informations

FontAwesomeFX 8.12 is released!

Just released FontAwesomeFX 8.12 to Bintray.

Revisited and updated all Icon Fonts:

Font Version What's new?
FontAwesome 4.6.3 7 new icons
Material Icons 2.2.0 81 new icons
Material Design Font 1.6.50 193 new icons
Octicons 4.3.0 Icons refined (cleanup/22 icons removed)
525Icons 2.6.0 Font updated on 24-06-2016
FontAwesomeFX 8.12
compile 'de.jensd:fontawesomefx-fontawesome:4.6.3'
compile 'de.jensd:fontawesomefx-materialdesignfont:1.6.50'
compile 'de.jensd:fontawesomefx-materialicons:2.2.0'
compile 'de.jensd:fontawesomefx-octicons:4.3.0'
compile 'de.jensd:fontawesomefx-icons525:2.6.0'
compile 'de.jensd:fontawesomefx-weathericons:2.0-3'
They all depend on
compile 'de.jensd:fontawesomefx-commons:8.12'
Optional
compile 'de.jensd:fontawesomefx-controls:8.12'
Demo apps
de.jensd.fx.glyphs.fontawesome.demo.FontAwesomeIconsDemoApp
de.jensd.fx.glyphs.materialdesignicons.demo.MaterialDesignIconsDemoApp
de.jensd.fx.glyphs.materialicons.demo.MaterialIconsDemoApp
de.jensd.fx.glyphs.octicons.demo.OctIconsDemoApp
de.jensd.fx.glyphs.weathericons.demo.WeatherIconsDemoApp
de.jensd.fx.glyphs.icons525.demo.Icons525DemoApp

fafx812

Here you can find the FontAwesomeFX bintray package.

Source code available at Bitbucket

Please report issues here

FontAwesomeFX 8.11 is here!

Just uploaded FontAwesomeFX 8.11 to Bintray.

Now included:
FontAweseme 4.6.1 with 23 additional icons

and a new kid on the block:

525icons

525icons Font coming with (…surprise!) 525 icons on board.
Due to naming conventions and restrictions 525icons related stuff is called “icons525” in FontAwesomeFX, e.g. de.jensd.fx.glyphs.icons525.Icons525.

FontAwesomeFX 8.11

compile ‘de.jensd:fontawesomefx-fontawesome:4.6.1-2’
compile ‘de.jensd:fontawesomefx-materialdesignfont:1.4.57-2’
compile ‘de.jensd:fontawesomefx-materialicons:2.1-2’
compile ‘de.jensd:fontawesomefx-octicons:3.3.0-2’
compile ‘de.jensd:fontawesomefx-weathericons:2.0-2’
compile ‘de.jensd:fontawesomefx-icons525:2.0-2’

They all depend on

compile ‘de.jensd:fontawesomefx-commons:8.11’

Optional

compile ‘de.jensd:fontawesomefx-controls:8.11’

Demo apps

Did you know there is a little test app included in each font artifact?

de.jensd.fx.glyphs.fontawesome.demo.FontAwesomeIconsDemoApp
de.jensd.fx.glyphs.materialdesignicons.demo.MaterialDesignIconsDemoApp
de.jensd.fx.glyphs.materialicons.demo.MaterialIconsDemoApp
de.jensd.fx.glyphs.octicons.demo.OctIconsDemoApp
de.jensd.fx.glyphs.weathericons.demo.WeatherIconsDemoApp
de.jensd.fx.glyphs.icons525.demo.Icons525DemoApp

525icons2

Here you can find the bintray package.

Sources are here at Bitbucket

Report issues here

Button of Choice: Use ToggleButtons as RadioButtons

For MQTT.fx I wanted to use ToggleButtons to e.g. choose the de
coding of a MQTT Message or the QoS Level:

decode

qos

 

I found out that in context of a ToggleGroup ToggleButtons behave different than RadioButtons in terms of selection/deselection: unlike RadioButtons ToggleButtons can still be set to unselected state.

 

A RadioButton extends ToggleButton and overrides fire() (which is invoked when a user gesture indicates that an event for this ButtonBase should occur aka “Button was clicked”):
RadioButton:

@Override public void fire() {
  // we don't toggle from selected to not selected if part of a group
  if (getToggleGroup() == null || !isSelected()) {
    super.fire();
  }
}

ToggleButton:

@Override public void fire() {
  setSelected(!isSelected());
  fireEvent(new ActionEvent());
}

In a ToogleGroup ToggleButtons should behave like RadioButtons, so IMHO this is a bug worth a pull request for ToggleButton 😉

One way to handle this is for sure to create a custom extension of ToggleButton implementing fire() in respect to the RadioButton.
But I like more to add behavior to existing controls.
This is my tweak to modify default behavior by adding filters to all ToogleButtons of a ToggleGroup consuming unwanted MouseEvents:

public class JavaFXUtil {

    private static JavaFXUtil me;

    private JavaFXUtil() {
    }

    public static JavaFXUtil get() {
        if (me == null) {
            me = new JavaFXUtil();
        }
        return me;
    }

    public EventHandler<MouseEvent> consumeMouseEventfilter = (MouseEvent mouseEvent) -> {
        if (((Toggle) mouseEvent.getSource()).isSelected()) {
            mouseEvent.consume();
        }
    };

    public void addAlwaysOneSelectedSupport(final ToggleGroup toggleGroup) {
        toggleGroup.getToggles().addListener((Change<? extends Toggle> c) -> {
            while (c.next()) {
                for (final Toggle addedToggle : c.getAddedSubList()) {
                    addConsumeMouseEventfilter(addedToggle);
                }
            }
        });
        toggleGroup.getToggles().forEach(t -> {
            addConsumeMouseEventfilter(t);
        });
    }

    private void addConsumeMouseEventfilter(Toggle toggle) {
        ((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_PRESSED, consumeMouseEventfilter);
        ((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_RELEASED, consumeMouseEventfilter);
        ((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_CLICKED, consumeMouseEventfilter);
    }

}
public class ButtonDemoController {
    @FXML
    private ToggleGroup g2;

    @FXML
    private ToggleGroup g3;

    public void initialize() {
        JavaFXUtil.get().addAlwaysOneSelectedSupport(g2);
        JavaFXUtil.get().addAlwaysOneSelectedSupport(g3);
    }

}

buttonofchoice

Example code at GitHub.