How beautiful a Java UI can be

20 JavaFX real-world applications

Alexander Casall
specialFC

In November 2015 Dirk Lemmermann (Freelancer) and I (Alexander Casall) had a JavaOne session about JavaFX Real World Applications. We showed a bunch of apps that we made for our customers or where we had contributions in development. This article summarizes the talk by showing the applications that we’ve talked about. In addition, I asked some other JavaFX developers if they want to contribute their apps to this blog post.

Thank you Dirk Lemmermann, Jan Gassen, Rob Terpilowski, Sean Phillips, Angelica Leite,Denny Israel and Manuel Mauky for contributing information about their applications. Before we started talking about the applications, I asked the contributors some questions regarding JavaFX:

What do you consider to be the highlights of JavaFX after having used it? 

What is your general opinion about JavaFX?

JavaFX, Swing, SWT, HTML5 – Who wins – or better yet, when to use what?

How satisfied are you with the work of Oracle on JavaFX ?

What do you miss about working with JavaFX?

Answers of: Dirk Lemmermann

Answers of: Jan Gassen

Answers of: Rob Terpilowski

Answers of: Sean Phillips

Let’s have a look at the applications that we and our contributors created.

CuratorOR Caliop EIZO GmbH

contributed by Dirk Lemmermann.

Area of use Hospitals / Surgery

Dirk CuratorOR Caliop, developed by EIZO GmbH in Germany, is an application that will be installed in hospitals’ operating rooms. It is being installed in wall-mounted consoles equipped with a Windows PC running Java 8. The consoles also include additional hardware for routing video input signals to various monitors / displays and hardware for recording video signals (video and screenshots). The operating room personnel uses Caliop to look up patient data, to document the surgery, and to store the produced documents in the central hospital database.

One of the more interesting aspects of this project was the fact that JavaFX was able to take a very detailed and sophisticated HTML mock-up and implement it 1 to 1. We were also very happy about the built-in media player which allowed us to show the recorded videos directly inside the JavaFX UI with only a few lines of code. We were able to fulfill all customer requirements with JavaFX.

 

1

2

Navigator Lynden

contributed by Rob Terpilowski

Area of use Dispatching

Rob Lynden, Inc. is a freight and logistics company based in the Seattle and Anchorage areas.”Lynden Navigator”, the application developed by us, has two sets of target users within the company.

We have freight terminals across the lower 48 states and in Alaska and Hawaii, as well as in Canada. Navigator was developed to give managers at those terminals the ability to see information regarding the freight that is scheduled to arrive at their facility, as well as the freight that is scheduled to depart from their facility. This information will help managers to allocate their resources -both human and equipment (trucks, trailers, etc.)- more efficiently.

The second set of users of the Navigator application are customer service personnel. Since the Navigator application is built on the NetBeans Rich Client Platform, we were able to develop the customer service functionality as a NetBeans plug-in and easily integrate it with the Planning portion of the application mentioned above. This plug-in will give customer service the ability to search for freight in a variety of ways, including by shipment number, customer name, address, etc. The application will then display the complete history for a selected freight item as it has moved through our system. Users can also print or email documents related to the shipment, including Bills of Lading or Delivery Receipts. New functionality for this portion of the application has been developed using JavaFX for the UI components while maintaining the existing Swing UI components that have remained in place for the other application plug-ins.

fms

The bottom area is JavaFX, the upper area is Swing

Atlas Trader

contributed by Rob Terpilowski

Area of use Finance

Rob To place our trades with our commodity broker “Quantitative Brokers”, our software called “Atlas Trader”, would allow the user to select which commodity (Gold, Oil, Wheat, etc.) they want to purchase or sell, as well as specify various attributes about the order such as number of contracts to purchase, time to submit the order, as well as the amount of time the order should be given to execute. Information is then relayed to the broker utilizing the Financial Information Exchange (FIX) API. The broker relays various updates about the order back to the application which gives feedback to the user on the status of the order.

 

21

3 (1)

t1

QuoteMonitor

contributed by Rob Terpilowski

Area of use Finance

For monitoring the prices of commodities that we were holding and tracking our profit and loss in real time we created the “Quote Monitor” application which would be able to monitor prices in real-time and send out alerts if the profit/loss amounts hit predetermined levels. This application interfaced with Interactive Brokers Java API in order to retrieve commodity prices in real-time from the various commodity exchanges.

41

Template Editor IAV

contributed by Denny Israel

Area of use Analysis of vehicle fleet data

The next application was made by our company (Saxonia Systems AG) for IAV, one of our customers. The client is called Template Editor and is part of the IAV AMeDA platform. The platform is a data analysis system for huge amounts of vehicle fleet data. The client is used to configure analysis which gets performed on the platform.

The client contains a template engine to render masks. The engine uses a combination of FXML files and metadata templates which is evaluated at runtime to transform user-input to XML files. Those written XML files are the configuration files which get deployed to IAV AMeDA platform for data analysis. The mechanism is very generic and new templates can be easily added by defining an FXML and an XML file.

The analysis configuration is then stored in a ZIP file and uploaded to the analysis platform which performs the analysis with data of whole vehicle fleets. Prior to the uploading, the analysis is tested locally with a small amount of data directly within the Template Editor. The user can review the results of the test executions and adjust his configuration if necessary.

fehler_in_analyse

zaehler

templates

 

Results of local analysis, a configuration template and the list of all configurations.

FORUM Carl Zeiss Meditec AG

Area of use Medical

contributed by Alexander Casall

The following client is developed by our (Saxonia Systems AG) customer Carl Zeiss Meditec AG. It is an archive software for clinical patient data in ophthalmology. It’s a mix of Swing and JavaFX and it is still in migration. The possibility to mix both technologies was very important for the ability to release new versions until the migration is done. As you can see in the screenshots, Swing and JavaFX were mixed multiple times, which results in challenges regarding the synchronization of the EDT and the JavaFX thread, focus problems, problems with shortcut handling and look and feel differences.

clinical-screen-fullscreen-fx

clinical-screen-initial-fx

clinical-screen-popup-fx

clinical-screen-retinawp-fx

clinical-screen-tng_vh-fx

clinical-screen-workingarea-fx

AIDA German AIDS Foundation

contributed by Manuel Mauky

Area of use Office

The “Deutsche AIDS Stiftung” (eng. German AIDS Foundation) is helping people that are affected by AIDS or HIV by providing financial support and supporting projects in this field among others. To do this, the foundation needs to handle scanned documents and applications, administrate persons and personal data and manage financial transactions. For this purpose, a new JavaFX application is created as a replacement and enhancement for an old desktop application.

The application is created with the mvvmFX framework. We are using CDI as dependency injection container and JPA for persistence. Interesting tasks were the fast loading and processing of large TIFF documents and the auto-saving of the application state to the database without a specific user interaction.

Bildschirmfoto-2016-01-12-um-09.39.13

htmlEditor

 

MuseoID Museum Palaeontology of URCA

contributed by Angelica Leite

Area of use Office

The software assists the Museum of Paleontology in Santana do Cariri. It manages the collection of fossils and museum activities.

MuseuID offers the following features:

  • registration of visitors
  • management of assets
  • collection of research data
  • graphical reports about visits

Some features such as authentication and identification are integrating RFID technologies. In addition, the application provides statistics and spreadsheets that can be exported.

login

dashboard

auth captura catalog emprestimo identi pesquisa relatorios visitas

 

HRC-Matic AISO

contributed by Dirk Lemmermann.

Area of use Office

HRC-Matic is being used by registries in Switzerland to register new businesses and to administrate the master data of existing businesses. It is a pure database application with a strong focus on keyboard navigation. The users have to be able to quickly enter a lot of data about businesses. This is still a weak point in JavaFX but AISO was able to find a solution.

hrc1 hrc2 hrc3 hrc4

NEOS – New Eurovision Operations System EBU

contributed by Dirk Lemmermann.

Area of use Television

NEOS is being used by EBU to ensure TV and radio transmissions travel from one location to another. „Ensuring“ means that all required resources for the transmission will actually be available at the time of the transmission. Resources include satellites, satellite dishes, fiber optic networks, multiplexers, and so on. The application has 150 concurrent users and is implemented as a client / server solution. The JavaFX client communicates via REST service calls with the server and its database.

Bildschirmfoto-2015-12-19-um-12.28.15 (1) Bildschirmfoto-2015-12-19-um-12.28.54 Bildschirmfoto-2015-12-19-um-12.36.12

Network Capacity Optimization Emirates Airline

contributed by Dirk Lemmermann.

Area of use Aviation

Emirates Airline is one of the biggest airlines in the world and they selected JavaFX as the client technology for their new application „Network Capacity Optimization“. This software allows the Network Planning Department to integrate various requests into the existing flight schedule. Possible requests are: new flight, cancelled flight, modified flight, etc. Several scenarios can be created and then compared with each other to find the best solution for the request. The application had complex requirements for the schedule visualization which could be satisfied by utilizing the commercial FlexGanttFX framework.

Gantt-Split-4up HomePage

MINT TRMS Mint Software Systems

contributed by Dirk Lemmermann.

Area of use Training

MINT TRMS is used by Airlines to schedule and administrate the training for its personnel.Training requirements are captured and allocated to the available resources. This is a very important topic in the aviation domain, as only qualified personnel is allowed to maintain or fly aircrafts. This client / server application had complex lazy loading requirements which could all be solved by using JavaFX.

formbuilder-design mintpage reportbuilder-design reportbuilder-query reportbuilder-result

eteoBoard Saxonia Systems AG

contributed by Alexander Casall

eteoBoard is a digital Scrum Board which synchronizes the connected clients in real time. Therefore, we’ve written an synchronization engine called SynchronizeFX which synchronizes JavaFX properties between multiple clients. We use eteoBoard in our own software development projects to help our distributed teams optimize their workflow.

 

Center Device CenterDevice GmbH

contributed by Jan Gassen

CenterDevice is a cloud service that allows customers to quickly search through their documents and to share them with others. With the CenterDevice desktop client, we created an application to automatically upload large amounts of documents to CenterDevice. Additionally, collections of documents can by synced from the cloud to local storage. Downloaded documents can then be edited and uploaded as a new version. Apart from that, the desktop client allows for searching through the documents in CenterDevice.

centerDevice centerDevice1 centerDevice2

Deep Space Trajectory Explorer Nasa

contributed by Sean Phillips (a.i. solutions)

Area of use Space

The DSTE is software developed internally by a.i. solutions and leveraged as a design tool at the Johnson Space Center for trajectory design for the upcoming manned habitat missions to be located in orbit within the Earth-Moon system. The DSTE facilitates rapid trajectory design across a vast potential data space, supporting any Planetary and Moon centered ballistic trajectory in the solar system along with their respective Lagrange point Halo, Lyapunuv and Manifold families. Custom JavaFX tools have been built that provide high performance, interactive analysis for large (1M points) multi-dimensional data sets.

space1 space2 space3

 

AMMOS Asteroid Explorer Nasa

contributed by Sean Phillips (a.i. solutions)

Area of use Space

The AMMOS Asteroid Explorer is an extension of the DSTE designed specifically to visualize and compare trajectories that feature a small non-spherical celestial body as a central body. This was developed as part of a design study for the NASA Jet Propulsion Laboratory on ways to visualize and manage this new developing design space.

space4

Using JavaFX 3D scatterplot to select and view trajectories around asteroids

space5

Visualization of Asteroid Itokawa centered “Drag Along” trajectories

GEONS Ground System Software (GGSS) Nasa

contributed by Sean Phillips (a.i. solutions)

Area of use Space

2013 Duke’s Choice Award winner. Featured at the 2013 JavaOne Community Keynote.
The GGSS provides Orbit Determination and Telemetry analysis and QA for the NASA Magnetospheric MultiScale (MMS) mission. The software is deployed operationally at the Goddard Space Flight Center (GSFC) as part of a larger Flight Dynamics Ground System. The GGSS uses a hybrid of the NetBeans Platform with interactive JavaFX visualizations to provide automation and rapid data exploration by both operators and analysts.

2 (1)

1 (1)

 

James Webb Space Telescope (JWST) Flight Dynamics Ground System (FDGS) Nasa

contributed by Sean Phillips (a.i. solutions)

Area of use Space

The JWST mission, scheduled for launch in 2018, will require maneuver generation, contact analysis and station keeping at the Sun-Earth L2 deep space location. a.i. solutions is currently developing the FDGS software for this. The NetBeans Platform is used as the operational automation and JavaFX is the technology used primarily for visualization. These visualizations are important for daily analysis and QA of spacecraft maneuvering performance.

4 (1)

5 (1)

 

Trading App

More information http://de.slideshare.net/TomSchindl/java-fx-ap-is

Area of use Trading

The following application is a trading application based on e(fx)clipse developed by 360T. I found it on Slideshare, so I can’t provide detailed information about the use case. If you are interested in some technical details, I recommend you to check out the presentation that I mentioned above.

CUk030kWwAAAiYq

 

 

PSI Advanced Scheduling and Monitoring / ASM PSI

Area of use Manufacturing Execution Systems

PSI ASM is used in manufacturing to schedule and monitor manufacturing processes. It allows its user to quickly gather an inside look into the current activities of a manufacturing site.

PSIasm_05 PSIasm_04 PSIasm_03 PSIasm_02 PSIasm_01

 

Author
Alexander Casall
Alexander Casall is a developer at Saxonia Systems AG, with a focus on multi-touch applications using JavaFX.

Comments
comments powered by Disqus