20 JavaFX real-world applications

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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.