ConfDesigner
Encyclopedia
ConfDesigner is a graphical environment written in Java
, which eases the design of complex system configurations.
Because of being part of the Sphinx4 Speech Recognizer, ConfDesinger is licensed under BSD licenses
. ConfDesinger is based on the Netbeans Graph Library.
Nevertheless, ConfDesigner can be used without any installation using Java Webstart. Although only Java5 or higher is required to run the application locally, Java6 or higher is required to run it via Webstart.
In ConfDesigner the categories are used to setup another component-selection-tree (beside the usual package-based one)
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, which eases the design of complex system configurations.
Because of being part of the Sphinx4 Speech Recognizer, ConfDesinger is licensed under BSD licenses
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....
. ConfDesinger is based on the Netbeans Graph Library.
WebStart
The best way to get in touch with ConfDesigner is to check out its sources. It is located in $SPHINX_ROOT/tools/confdesigner.Nevertheless, ConfDesigner can be used without any installation using Java Webstart. Although only Java5 or higher is required to run the application locally, Java6 or higher is required to run it via Webstart.
Component Categories
In order to add a Configurable to one or several arbitrary categories, it's just necessary to annotate the class (or one of its parent-classes, or one of its implementing interfaces, or one of the interfaces being implemented by one of its parent classes. Eg.
@ConfCategory(value = {"search", "parallel"})
class ParallelSearchDecoder implements Configurable{
...
}
In ConfDesigner the categories are used to setup another component-selection-tree (beside the usual package-based one)
Planned
- improved node-layout
- snap2grid
- level of details for nodes in order to speed up the application
- distributed computing support
In Process (upcoming Beta3)
- copy, cut, paste & delete for subgraphs
- optional snap2grid
- reimplementation of property panel (in order to support default properties and non-defined properties)
- improved connection routing
- better node-layout
Beta2
- ConfDesigner can be started directly via "java -jar confdesigner.jar" (because of added jar-Manifest)
- Command line interface
- Automatic range checking for basic properties (int, double, string) based on the property-annotations
- quick-search: find nodes within a system configuration graph
- tab-support: edit several system configurations within on designer-instance
- project-support: bundle sets of system configurations
- User-defined component-categories (to use them, just annotate the class with the ConfCategory-annotation).
- Image-exporting of configuration-graphs
- Various usability improvements (improved key bindings, fit-to-view, linking this website into the help-menu)
- Background Labels, which are intended to help to get some additional structure into a system graph
- fixed: deletion of models and connections
- fixed: rerouting of connections
Beta1
- Supports all current Sphinx4 property types (including arbitrary large component lists)
- Loads and saves Sphinx4-configuration files
- In place editing of component names
- Automatic graph layouting
- Graph serialization
- Automatic class path parsing in order to find all available Configurables
- Completely instantiation free modeling
- System instantiation and evaluation directly within the designer, including online configuration changes
Known Issues
- The CTRL-key needs to be pressed for zooming and in order to connect nodes which is confusing and not necessary