XML specification of the chart customizer

Example   Example of XML File

 

<!-- Customizer Form for IlvChart.Area -->

 <form bundles="ChartAreaForm">

   <group title="AppearanceGroup">

     <group title="ColorsGroup">

       <property name="foreground"

        displayedName="foregroundDisplayedName"

        tooltip="foregroundTooltip"/>

       <property name="opaque"

        displayedName="opaqueDisplayedName"

        tooltip="opaqueTooltip"/>

       <property name="backgroundPaint"

        displayedName="backgroundDisplayedName"

        tooltip="backgroundTooltip">

        <enabled>

         <when property="opaque" value="true"/>

        </enabled>

       </property>

       <property name="border"

        displayedName="borderDisplayedName"

        tooltip="borderTooltip"/>

       <property name="font"

        displayedName="fontDisplayedName"

        tooltip="fontTooltip"/>

     </group>

   </group>

 </form>

The GUI elements are specified between <form> and </form> elements.

For internationalization purposes, you can pass a resource bundle to the <form> element.

The resource bundle is used to retrieve all texts (labels, tooltips) that should be displayed in the chart customizer. Furthermore, the specification consists of groups ( <group> ) and properties ( <property> ).

The <group> element specifies a section in the chart customizer. Usually, a group has a title that indicates the purpose of the section. Groups can be nested, that is, a group can contain other groups. Finally, a group consists of a list of properties. In the chart customizer, you can consider a group as a panel with a titled order that groups together a collection of controls (buttons, fields, and boxes).

The <property> element specifies a property of the corresponding chart renderer that should be customized. For example, to customize the foreground color of the chart area, specify <property name="foreground"/>.

There is only a limited set of properties for each IlvRuleCustomizerLogic, you cannot specify arbitrary properties that do not exist. In the chart customizer, the <property> element produces a control element (button, text field, check box, list box, and so on) that allows you to edit this property. For example, the specification <property name="foreground"/> in the example above creates a color editor control that allows you to change the foreground color of a chart area. This control appears with a label in the chart customizer. You can specify the label and the tooltip of the control as follows:

 

<property name="foreground" displayedName="foregroundDisplayedName"

tooltip="foregroundTooltip"/>

The keys foregroundDisplayedName and foregroundTooltip are looked up in the resource bundle of the chart customizer form. If the keys are not found, the string foregroundDisplayedName is used as label, and the string foregroundTooltip is used as tooltip.

It might happen that a control of a property should only be enabled if another property has a certain value. This is possible with subspecifications in the properties. For example, the following specification means that the control of the backgroundPaint should only be enabled if the opaque property has the value true.

 

<property name="backgroundPaint">

 <enabled>

  <when property="opaque" value="true"/>

 </enabled>

</property>

XML Tags and Attributes Available in the Specification of a chart customizer describes all XML tags that are available in the specification of a chart customizer.

XML Tags and Attributes Available in the Specification of a chart customizer

Element

Attribute

Description

form

 

Root element.

Defines the chart customizer.

 

bundles

Optional, but recommended.

Defines a list of resource bundles that provide string resources for the form.

The items of the list are separated by a comma and are relative path names. These path names are resolved into full path names using the URL of the form as a reference or the URL resolvers added to the application.

 

title

Optional, but recommended.

Defines a title for the entire chart customizer.

group

 

Parent: form or group.

Defines a group of any combinations of property, help and group elements.

 

title

Optional, but recommended.

Defines the title of the group. Typically, this will be shown either as the name of a tab in a tabbed pane or in the title border of a BorderedPanel.

 

awtLayoutManager

Optional.

Defines the fully-qualified class name of the layout manager to be used for this group instead of the default one in AWT/Swing chart customizers. It must be a public class (accessible in the classpath) implementing java.awt.LayoutManager and providing a default constructor or a constructor taking a java.awt.Container argument (the target panel).

 

dummy

Optional.

If the value is true, the GUI does not show any border around the group nor a title.

 

overlaid

Optional.

If the value is true, the elements contained in this group (subgroups or properties) are displayed in overlaid mode. Typically, this attribute is set when you want only one set of elements to be visible, depending on certain conditions. See also the visible element.

property

 

Parent: form or group.

This element defines one property (usually corresponding to a JavaBean property, but not necessarily) of the customized target.

 

name

Required.

Defines the name of the property. Typically, this is the name of the JavaBean property, but in complex situations it can be a different identifier. This must not be internationalized.

 

targetId

Optional.

Defines an identifier for the target to which the property belongs. Typically, this is used in complex chart customizers where subtargets have their own properties. This must not be internationalized.

 

displayedName

Optional, but recommended.

Defines the string that appears as a label near the GUI component and allows you to customize the property.

 

tooltip

Optional, but recommended.

Defines the string that appears as a tooltip over the GUI component and allows you to customize the property.

 

minValue

Optional for numeric properties, ignored for non-numeric. Defines the minimum value that the user is allowed to enter. If both minValue and maxValue are specified, the GUI will typically show a slider in addition to the text field and the spinner.

 

maxValue

Optional for numeric properties, ignored for non-numeric.

Defines the maximum value that the user is allowed to enter. If both minValue and maxValue are specified, the GUI will typically show a slider in addition to the text field and the spinner.

 

incValue

Optional for numeric properties, ignored for non-numeric.

Defines the increment for the spinner usually associated with the text field.

 

choices

Optional for tagged properties, ignored otherwise.

Defines the list of values to be presented to the user, typically in a combination box. Its value must be a comma-separated list of strings (for example, the names of the combo items) and values. For example: MyResource.FirstItem.Name=3,MyResource.SecondItem.Name=4. Note that, by default, this is retrieved from the property descriptor. You only need the attribute if you want to override this information.

 

displayedNullValue

Optional for properties of non-primitive type, ignored otherwise. Defines the string representation of the null value of the property. For example, it can be "null", "(null)", "(none)", "(unspecified)", or an empty string. If the attribute is not specified, the text is retrieved from propertyEditor.getAsText.

 

index

Optional for indexed properties, ignored otherwise.

It is used when the chart customizer needs to allow the customization of a given element of the array of an indexed property.

 

preferredWidth

Optional.

Defines a preferred width of the GUI control used for the property, to be used instead of the default one. You can specify either the value directly, or a resource key.

 

preferredHeight

Optional.

Defines a preferred height of the GUI control used for the property, to be used instead of the default one. You can specify either the value directly, or a resource key.

 

propertyEditor

Optional.

Defines the fully-qualified class name of the property editor to be used for this property instead of the default one. It must be a public class (accessible in the classpath) implementing java.beans.PropertyEditor and providing a default constructor.

help

 

Parent: form, group, or property.

Defines help contents for its parent element. This can be either a text area directly embedded in the chart customizer, or a button allowing to open a standalone help window to display an HTML file.

 

text

Optional.

Defines the string to be shown embedded in the chart customizer, typically as a text area.

 

title

Optional.

Defines the string to be shown as title of the help window instead of the default title. Ignored if the text attribute is present (that is, for help text in a text area embedded in the chart customizer).

 

page

Optional.

Defines the relative URL of an HTML help page. Ignored if the text attribute is present.

 

buttonIcon

Optional.

Defines the relative URL of the image to be shown instead of the default icon used to open a standalone help window. Ignored if the text attribute is present.

 

tooltip

Optional, but recommended.

Defines the string that is shown as tooltip over the GUI component (text area or button for opening a standalone help window.)

enabled

 

Parent: group or property.

Defines a condition for enabling/disabling a group or a property depending on the value of one or several properties of the target, or depending on some external conditions. It must have the following subelements: when, or, and, or not.

visible

 

Parent: group or property.

Defines a condition for controlling the visibility of a group or of a property depending on the value of one or several properties of the target, or depending on some external conditions. It must have the following subelements: when, or, and, or not.

when

 

Parent: enabled, visible, or, and, or not.

Defines the rules for enabling/disabling or changing the visibility of a group or a property depending on the value of one or several properties of the target, or depending on some external conditions. It must have either the attribute condition, or the attribute property associated with value.

 

condition

Required if property associated with value are not present. Defines the identifier of a condition that is implemented in Java code.

 

property

Required if condition is not present.

Defines the name of the property. The enabled/disabled state or the visibility depends on the value of this property. For properties where a targetId is not specified, use the name attribute. Otherwise, use the targetId attribute.

 

value

Required if condition is not present.

Defines the value of the property specified by the property attribute.

and

 

Parent: enabled, visible, and, or, or not.

Defines an and logical operation for its subelements. It must have the following subelements: when, or, and, or not.

or

 

Parent: enabled, visible, and, or, or not.

Defines an or logical operation for its subelements. It must have the following subelements: when, or, and, or not.

not

 

Parent: enabled, visible, and, or, or not

Defines a not logical operation for its subelements. It must have the following subelements: when, or, and, or not.