Movie Management on the NetBeans Platform
By Geertjan on Sep 30, 2009
Here's a screenshot of part of the application in action (click to enlarge it):
Most of the description that follows is paraphrased from e-mails I received from Frederic.
InfoTerminal Configurator is an application that runs 24 hours a day and 7 days a week. It is used in theater foyers, as well as on a theater's front facade, to display data such as the currently playing movies, running hours, and movie synopsis. It is meant to replace all paper representations, meaning that the application has to take account of there being a number of different display outputs for the data it manages. For example, close to entrance doors of each movie hall within the theater the application displays the currently playing movie, hall number, and when the movie finishes.
All the data is automatically updated from the movie theater database. The product is integrated into another product, which handles the remaining parts related to the running of a movie theater: selling tickets, movie planning, sales reporting, and similar typical business needs in this sector. The system itself is pretty independent—once the machines are in place and running, they discover the database through broadcasted messages on the Lan, and can be discovered by the server through the same mechanism, while also being available for access and configuration at the same time. Powering them is the only step that needs to be done manually on site, with everything else being done remotely, i.e., everything from the configuration of displays (orientation, resolution) to the programming of the movies to be displayed.
The programming of movies in the system can be done pretty easily—you select a machine, create a project, open it, add modules to a timeline, set the duration for each of them, set the skin parameters, then drag-and-drop the project to a display and that's it.
An underlying concern was to let the application be straightforward to control. The displaying of movies handles the stacking too, which means that at any time you can decide to add scrolling messages over anything else, or most commonly, a clock module is overlaid. Once you are OK with the display, you simply drag-and-drop the project to another machine, then drop it to its display, and so on. Sending media images or videos is also done through drag-and-drop. You simply drop the media to the machine you want and then the program takes control of sending it asynchronously (so you can keep on working) or storing it in a wait list, if other media is already being sent. Media is verified before sending, then verified on the target machine, before being accepted. That, in turn, reduces the scenario where the file goes wrong when on-air.