Bug 124336 Template report items corrupt report design
Steps: 1-Create a new blank report 2-Drop an element on the report (any element will do: label, chart, ...) 3-Right click and choose create template report item 4-Enter a description and click OK 5-Double click on the element (it reverts to a simple report item) 6- Perform steps 3 to 5 several times 7- The report only shows one item, but if you click on XML Source you will see several entries (as many as you repeated the steps), although there should be only one <template-parameter-definition name="NewTemplateParameterDefinition" id="5"> <property name="allowedType">Label</property> <text-property name="description">aa</text-property> <default> <label id="6"> <text-property name="text">aaa</text-property> </label> </default> </template-parameter-definition> <template-parameter-definition name="NewTemplateParameterDefinition1" id="9"> <property name="allowedType">Label</property> <text-property name="description">ff</text-property> <default> <label id="10"> <property name="refTemplateParameter">NewTemplateParameterDefinition</property> <text-property name="text">aaa</text-property> </label> </default> </template-parameter-definition> <template-parameter-definition name="NewTemplateParameterDefinition2" id="13"> <property name="allowedType">Label</property> <text-property name="description">ii</text-property> <default> <label id="14"> <property name="refTemplateParameter">NewTemplateParameterDefinition1</property> <text-property name="text">aaa</text-property> </label> </default> </template-parameter-definition>
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/command/TemplateCommand.java
}
					module.makeUniqueName( definition );
					return definition;
				}
			}
		}
		return null;
	}
	/**
	 * Creates a template element and replace the content element with this
	 * created template element. In this method, create a template definition
	 * based on the given content element and add it to the report design first.
	 * Then, let the created template element refer the added template parameter
	 * definition.
	 * 
	 * @param base
	 *            the base report item or data set element to be transformed to
	 *            a template element
	 * @param slotID
	 *            the slot of the container
	 * @param name
	 *            the given name of the created template element
	 * @return the created template element
	 * @throws SemanticException
	 *             if the content can not be transformed to a template element,
	 *             current module is not a repor design and can not support
	 *             template elements, or the replacement fails
	 */
	public TemplateElement createTemplateElement( DesignElement base,
			int slotID, String name ) throws SemanticException