(enlarge to see more details)
This video shows a widget for displaying three characteristics (velocity vs. distance) in a LineChart node and a tabbed TableView node. The two nodes provide different views on the same data.
The widget comes with the following features:
- hovering over a data point in the chart will show a popup with the x and y values.
- selecting a data point in the chart will select the corresponding data item in the table view and vice versa.
- when a data item was edited in the table view, the chart will update immediately.
- three colour pickers allow for changing the line colours in the chart.
- import and export data from sources like CSV, Excel, HDF5 (to be done).
These features were implemented using JavaFX bindings, events, animations, and CSS styling.
If you’re interested in the 3D features of JavaFX and if you want to see more of this in the future, we’d like to hear from you:
The following video shows a custom control in JavaFX that lets you select items from a list and position them in a grid. The items represent UI widgets, that is, JavaFX controls, with a defined size on the grid. The grid represents a page on which these widgets will be shown.
Another thing we’ve been working on is going to see the light of day soon: a graph editor for JavaFX. The current beta version provides the following main features:
- create draggable, resizable nodes and connections between them
- add multiple input or output connectors to a node
- create joints inside a connection
- add custom skins for nodes, connections, connectors, and joints
- enhanced user experience through comprehensive styling during drag-and-drop actions
Internally, we use an EMF model to represent the UI objects and their state. The model is in sync with the UI at all times.
Here’s a short video of our current development version:
After investing some serious brain power in the dynamic sizing of the breadcrumbs in a navigation bar (described in this post), I forgot to provide a closer look at the outcome.
Here’s a short video of this custom control written in JavaFX: