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
* property values. Property values are of two key types: normal and intrinsic.
 * Normal properties are stored in the {@link #propValues}member on this class.
 * Intrinsic properties are stored in member variables.
 * <p>
 * Normal properties have two states: <em>set</em> and <em>unset</em>. A
 * property is set on element E if a value for that property appears in the
 * propValues list for element E; otherwise it is unset on element E.
 * <p>
 * Elements inherit property values from their parent elements. So, if property
 * P is unset on element E, E will inherit the value of P from its parent
 * element.
 * <p>
 * The <em>local value</em> of a property for an element E indicates whether
 * or not the property is set on that specific element. The local value is
 * generally of interest only to low-level code. The XML design file shows only
 * the local property values for an element.
 * <p>
 * The <em>effective value </em> of a property provides the value computed
 * using the property search which includes the ancestor elements, styles,
 * context, system-defaults, and other information. The effective value is
 * generally what the user cares about, and is what appears in the property
 * sheet and other UI.
 * <p>
 * Members and classes in the property value system include:
 * <p>
 * <ul>
 * <li>The {@link #propValues}member stores the property values set on this
 * element.</li>
 * <li>The {@link #setProperty( String, Object )}method sets a property value
 * on this element.</li>