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