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, ConfDesigner is licensed under BSD licenses. ConfDesigner is based on the Netbeans Graph Library.
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.
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. E.g.
@ConfCategory(value = {"search", "parallel"})
class ParallelSearchDecoder implements Configurable{
...
}
In ConfDesigner the categories are used to set up another component-selection-tree (beside the usual package-based one)
improved node-layout
snap2grid
level of details for nodes in order to speed up the application
distributed computing support
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
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
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
The CTRL-key needs to be pressed for zooming and in order to connect nodes which is confusing and not necessary