# The XML Parameter File

This section explains how to modify the tool palette to personalize and extend the editor with new components.
By default he Joone Editor will look for the file org/joone/data/layers.xml as the parameter file, but this behaviour can be overridden by specifying the parameter file as a parameter to the run command:

java org.joone.edit.JoonEdit /some_path/your_parameter_file.xml
The layers.xml file provided with Joone includes all the available component types in the Joone project although some of the less-used ones are commented out.

## The <buttons> … </buttons> Section

This section contains all the buttons that are present in the toolbar.

<layer type="…" class="…” image="…" />

This section describes a layer. Its parameters are:

type: | The name of the layer that will be shown when the mouse passes over it.
class: | The name of the class (complete with the package ‘xxx.yyy.zzz.classname’). The class must extend the org.joone.engine.Layer class and must be in the JVM classpath.
image: | The name of the image of the toolbar button. The name of the file should be: “org.joone.images.” + image_name + “.gif”, so the searched file name will be: /org/joone/images/image_name.gif (only gif images are allowed in the actual version of the editor).

<input_layer type="…" class="…" image="…" />

This section describes an input layer. All parameters are the same as above. The input layer class must extend the org.joone.io.StreamInputSynapse and must be in the classpath.

<input_switch type="…" class="…" image="…" />

This section describes an input switch layer. All parameters are the same as above. The input switch layer class must extend the org.joone.engine.InputSwitchSynapse and must be in the classpath.

<learning_switch type="…" class="…" image="…" />

This section describes a learning switch layer.

All parameters are the same as above. The learning switch layer class must extend the org.joone.engine.learning.LearningSwitch and must be in the classpath.

<output_layer type="…" class="…" image="…" />

This section describes an output layer. All parameters are the same as above. The output layer class must extend the org.joone.io.StreamOutputSynapse and must be in the classpath.

<output_switch type="…" class="…" image="…" />

This section describes an output switch layer. All parameters are the same as above. The output switch layer class must extend the org.joone.engine.OutputSwitchSynapse and must be in the classpath.

<teacher_layer type="…" class="…" image="…" />

This section describes a teacher layer. All parameters are the same as above. The teacher layer class must extend the org.joone.engine.learning.TeachingSynapse and must be in the classpath.

<input_plugin type="…" class="…" image="…" />

This section describes an input plugin for the data pre-processing. All parameters are the same as above. The input plugin class must extend the org.joone.util.ConverterPlugin class and must be in the classpath.

<output_plugin type="…" class="…" image="…" />

This section describes an output plugin for the data post-processing. All parameters are the same as above. The input plugin class must extend the org.joone.util.OutputConverterPlugin class and must be in the classpath.

<monitor_plugin type="…" class="…" image="…" />

This section describes a monitor plugin to control the behaviour of the training process. All parameters are the same as above. The monitor plugin class must extend the org.joone.util.MonitorPlugin class and must be in the classpath.

<synapse type="…" class="…" label="…" image="…" />

This section describes a synapse to connect two layers together. This tag has the same properties as the other components, plus a ‘label’ property to set the label shown in the little box. The label is not mandatory but its use is recommended to visually distinguish various types of synapse displayed in the drawing area. If no label is specified, the synapses will be drawn as an arrow. The synapse component must extend the org.joone.engine.Synapse class.

## The <options> … </options> Section

This section contains all the parameters that control the behaviour of the GUI editor. Currently it contains the following tags:

<refreshing_rate value="nnn" />

This parameter controls the refreshing rate of the fields shown in the control panel during the training. To speed up the training process, set this value to a high value (100 or more).

<http_proxy host="hostname" port="nnnn" userid="userid" passw="password" />

This tag is useful to permit the access to the Internet also in presence of a firewall proxy (used by the URLInput and YahooFinance input components).
The parameters are self-explicative.

## Separators

Small spaces can be inserted between toolbar buttons by inserting separator tags at the required position in the layers file thus:

<separator/>

## Temporarily Removing Items

Any item can be temporarily removed from the toolbar by enclosing the item in comment tags <!-- and -->. For example, to temporarily remove a separator from the toolbar, edit the separator tag…
<separator/>
…to…
<!--<separator/>-->
…or alternatively…
<!--<separator/-->