In October 2009 I announced the JavaFXpert RIA Exemplar Challenge, which was to:
"Create an application in JavaFX that exemplifies the appearance and behavior of a next-generation enterprise RIA (rich internet application)".
I am pleased to announce that the winning entry, the Beechcraft Cargoloader, was submitted by Abhilshit Soni. Here's a screen capture of Abhi's entry:
Abhilshit Soni is a 24 year old Software Engineer living in Mumbai, India. He holds a Bachelor of Technology in BioInformatics and is currently working with Zycus as a Software Engineer in the Product Engineering Team. He has been involved in developing web-based enterprise applications based on Java EE and Spring technologies for almost three years.
About Abhi's Application
According to Abhi, his Beechcraft Loader application "tries to solve a typical engineering problem of loading cargo containers into a Cargo aircraft. It needs a proper way in which your aircraft should be loaded with containers so that the resultant center of gravity of the aircraft is stable. For big cargo carriers like Boeing 747-400F or Airbus A380 there are set of calculations defined in their weight and balance handbook which are always calculated to ensure that center of gravity of the aircraft is and will be stable in all the conditions. This application tries to calculate the same for a relatively smaller Aircraft called BeechCraft 1900C by the Hawker-Beechcraft Corporation. The cargo aircraft manufacturer describes the operational center of gravity limits (varying based on the total aircraft weight) for a particular aircraft which can be viewed by the "Aircraft weight" vs "center of gravity" chart. The aim is to load aircraft in such a way that your current center of gravity falls between these operational limits, otherwise your aircraft is either nose heavy or tail heavy. This application considers only Beechcraft 1900C for cargo loading with a specific set of containers . All the equations and Aircraft master data are obtained from Chapter 7 of the FAA Aircraft Weight and Balance Handbook. The application currently does not cover all the functional use cases, like calculating lateral Center of Gravity and many other functional validations which are out of scope as of now".
Instructions for Using the Application
You can take the application for a test flight via Java Web Start by visiting Abhi's blog. Here are some pre-flight instructions from Abhi:
- Drag a cargo container from the cargo panel on the left side.
- Place it on any of the sections on bechcraft 1900C main deck in the upper center.
- See the change in center of gravity in the data table.
- Also see the change in weight v/s CG chart, and the weight coverage pie chart, in the lower right and left respectively.
- To remove a dropped container double click it.
- Change the container's position by by dragging from old position to new position.
- To reset the plan click 'Reset Container' button on the toolbar in the center just below the Main deck.
- To enable/disable Drag and Drop animation toggle 'Disable Animation' button on the toolbar in the center just below the Main deck.
- To quick view/hide cargo weights toggle the "View Weights " button on the toolbar in the center just below the Main deck
- Click on Weight Coverage chart or Weight vs CG chart to get a larger image.
- The yellow dot in the Weight v/s CG chart represents the current center of gravity, and the polygons drawn in the chart are the operational limits provided by the aircraft manufacturer.
- Check out Help and About buttons for more info about the application.
Each of the participants were asked how their entry exemplifies the appearance and behavior of a next-generation enterprise RIA. Here is Abhi's response:
"To an end user the enterprise RIA is more about the way user sees the information shown in the application. All that an end user expects from an enterprise RIA is to access the information in the fastest and coolest looking way. The definition of coolest may be interpreted as drag drop interfaces, animation and effects, different data viewing formats, but not at the cost of performance. By using JavaFX I have tried to achieve the same to an extent by adding drag-drop spot data update in multiple formats like grid and charts, and also onclick zooms, animations and effects with performance as priority."
Also, per the contest rules, Abhi has submitted the source code of this application to the JFXtras open source project in the samples repository.
Congratulations to Abhi, and thanks to everyone who submitted an entry to this RIA Exemplar Challenge!