The FreeHEP Application Framework

The FreeHEP application framework provides a set of framework classes for building applications. The framework is organized into 4 layers, each building on the layer below.

  1. Application - A framework for general purpose GUI applications.
  2. MDIApplication - extends Application to provide support for "MDI style" applications.
  3. Studio - Extends MDIApplication to provide support for plugins, which can be dynamically loaded and extend the functionality of the application.
  4. Data Studio - Extends the functionality of studio to provide support for data analysis specific functionality, including Data Interface Modules's.

The entire package is still under development and should not be considered stable.


The Application package (org.freehep.application) provides the following capabilities. In many cases the individual functions are provided by other parts of the freehep library, but the application package brings these capabilities all together in one place. The application package makes some assumptions about the application design, but provides many ways in which it can be customized.

As an alternative to customization by overriding methods, much of the application functionality can be controlled using the application property file.

Property Purpose Default User overide Legal values
version Version # 1.0 no  
fullVersion Version description {title} {version} no  
confirmQuit Ask before quit? maybe yes never|maybe|always
confirmQuitMessage Confirm quit message Do you really want to quit? yes  
confirmQuitTitle Title for confirm quit dialog Confirm Quit yes  
showSplash Should splash screen appear at startup true yes true|false
splashTitle Title for splash screen {title} yes  
splashImage Image for  splash screen {aboutImage} yes  
numberOfInitializationStages Automatically set after first application invokation 10 yes  
lookAndFeel Look and Feel System yes System|Java|<name>
title Application title {appName} yes  
icon Application icon null yes  
topLevelToolBar Name of default tool bar in XML file null yes  
topLevelMenuBar Name of default menu bar in XML file null yes  
topLevelPopupMenu Name of default popup menu in XML file null yes  
showToolBar Is tool bar visible true yes true|false
showStatusBar Is status bar visible true yes true|false
window Position/size of top level window   yes  
SAXParser Class for XML parser org.apache.xerces.parsers.SAXParser yes  
menuXML Name of XML file which defines menus {appName}.menus yes  

For a demonstration of the application framework see the IconBrowser demo.

MDI Application

The MDI application package (org.freehep.application.mdi) provides support for:


While MDI applications are typically customized by subclassing, Studio applications are typically extended by the use of one or more plugins.