Bug 120215 BPS 40 - DE changes
1. all report elements' properties will be overidable with an expression. The binding expression will have access to report parameter, and static BIRT report objects only. 2) DE will provide api to get property binding expression for a given property on a report element handle. It's up to the engine to evaluate the property binding expression when the report gets executed. DE API changes -------------------------- a) DesignElementHandle will support the following two methods. - String (expression) GetPropertyBinding ( propertyName ) - void SetPropertyBinding( propertyName , String (expression) ) // Note get and set property methods are wrapper classes which actually use reportDesignHandle methods to retrive and set the property binding. b) rom.def changes Property bindings contains a list of binding expressions. ReportDesign element will be enhanced to support a new property called. <Property canInherit="false" detailType="propertyBinding" displayNameID="Element.Module.propertyBindings" isList="true" name="propertyBindings" type="structure"/> A new datatype - <Structure name="propertybinding"> <Member name="name" since="2.0" type="name"/> <Member name="id" returnType="any" since="2.0" type="string"/> // Use the unique id used to identify an element. <Member name="value" returnType="string" since="2.0" type="expression"/> </Structure>
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/core/DesignElement.java
* Elements have an optional name. The name may be required by some element
	 * types. If so, the derived element class should enforce the use of the
	 * name. The name is non-localizable.
	 * <p>
	 * The name often occurs in a name space. Derived classes must enforce the
	 * name space rules. This class simply maintains the name itself.
	 */
	protected String name = null;
	/**
	 * Elements are structured in a hierarchy. The implementation of the
	 * container-to-child relationship must be defined in derived classes. This
	 * base class defines the child-to-container relationship.
	 */
	protected DesignElement container = null;
	/**
	 * Slot in the container in which this element resides.
	 */
	protected int containerSlotID = NO_SLOT;
	/**
	 * Listeners are the objects that want to be notified of events. Contents
	 * are of type Listener. Created only when needed.
	 */
	protected ArrayList listeners = null;
	/**
	 * Values for non-intrinsic property values. The contents are of type
	 * Object.
	 */
	protected Map propValues = new HashMap( );
	/**
	 * Definitions for user-defined properties. Contents are of type