Eclipse BIRT Report Object Model (ROM)

DesignElement Element

# Element Overview

Abstract element that represents anything that has properties.

### Details

Display Name: | Design Element
Since: | 1.0
XML Element: | `None`
Extends: | None
Extendable: | No
Abstract: | Yes
Name Space: | None
Name Requirement: | Not Supported
Allows User Properties: | Yes
Has Style: | No

### Property Summary

customXml
  Custom XML associated with an element.
propertyMasks
  List of user-defined property masks.
userProperties
  List of user-defined properties for the element.

### Description

The design element is an internal, abstract element used to implement basic features of ROM elements. It provides the following:

- User-defined property definitions
- Property values as name/value pairs
- Customization of which properties can appear in the UI
- Methods
- Custom XML

The design element provides a framework for customizing properties. The developer can add application-specific properties. These properties appear in the JRP ERD property sheet identically to ROM-defined properties. The developer can identify the property type using a wide variety of choices. JRP ERD automatically displays a property builder UI based on the property type. The developer can also hide JRP ERD or custom-defined properties.

The developer can add custom properties to a component, and can hide ROM-defined properties. Together, these help the developer create highly customized, reusable components tailored to the needs of a given application.

The `DesignElementDefn` object is available to your scripts. It provides the information about the design of an object. Every ROM element has design information, and many have separate run-time information. The design object provides access to the information defined in the XML schema file. It is most useful to get access to user-defined properties and property values so that scripts can customize report behavior.

Not all properties are available for all kinds of elements. See the derived element definitions for details.

Some of the elements derived from this one support inheritance. If so, then the value of the above properties include values inherited up the inheritance chain.

# Property Detail

## customXml Property

Custom XML associated with an element.

### Details

Type: | xml
Since: | 1.0
Required: | No
Display Name: | Custom XML
JavaScript Type: |
Default Value: | None
Inherited: | Yes
Runtime Settable: | No
Property Sheet Visibility: | Visible
Property Sheet Group: | Top

### Description

Applications can associate their own XML with any ROM report element. BIRT ignores this XML other than to make it available to user scripts. User scripts can use this XML to provide custom report behavior.

The XML must be valid. XML elements must be balanced. The XML should use a third-party name space, but the name space is not required.

### See Also

User-defined properties for another way to customize an element.

## propertyMasks Property

List of user-defined property masks.

### Details

Type: | List of PropertyMask Structures
Since: | reserved
Required: | No
Display Name: | Property masks
JavaScript Type: |
Default Value: | None
Inherited: | Yes
Runtime Settable: | No
Property Sheet Visibility: | Hidden
Property Sheet Group: | Top

### Description

Property masks allow the user to customize the set of properties available for a reusable component. Null if no masks are defined. Each item in the array is a `PropertyMask` object.

### See Also

Property Mask structure

## userProperties Property

List of user-defined properties for the element.

### Details

Type: | List of UserProperty Structures
Since: | reserved
Required: | No
Display Name: | User properties
JavaScript Type: |
Default Value: | None
Inherited: | Yes
Runtime Settable: | No
Property Sheet Visibility: | Hidden
Property Sheet Group: | Top

### Description

The list of user-defined properties defined for this element. Null if no user-defined properties are available. Each item in the array is a `UserProperty` object.

As noted above, JRP ERD elements can define custom properties. A property has two parts: a definition and a value. The definition provides the name, type and other descriptive information. The value is something that another developer enters to set the property. For example, suppose the developer defines an "AlertColor" property for a library component. A developer who uses this element might set the value of the property to "Red."

### See Also

User Property Definition structure