Bug 153040 Template definition should be removed after the report item is deleted
Steps to reproduce: 1.New a report, extends lib.label 2.Convert the label to template report item, and revert it back to the report item 3.Delete the label 4.Remove the included library Expected result: Library can be removed Actual result: A BIRT exception occurred. Plug-in Provider:Eclipse.org Plug-in Name:BIRT Model Plug-in ID:org.eclipse.birt.report.model Version:2.1.0.v20060808-0630 Error Code:Error.LibraryException.LIBRARY_HAS_DESCENDENTS Error Message:The library "Lib" can no be dropped because it has descendents "NewLabel" in the current module.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/command/ContentCommand.java
import org.eclipse.birt.report.model.metadata.ElementPropertyDefn;
import org.eclipse.birt.report.model.metadata.ElementRefValue;
import org.eclipse.birt.report.model.metadata.PropertyDefn;
import org.eclipse.birt.report.model.metadata.PropertyType;
import org.eclipse.birt.report.model.metadata.SlotDefn;
import org.eclipse.birt.report.model.metadata.StructRefValue;
/**
 * This class adds, deletes and moves content elements. Adding a content element
 * to a container is the only way to add a new element to the design. Similarly,
 * removing an element from its container is the only way to delete an element
 * from the design.
 * <p>
 * Note: be sure to use the move operation if your intent is to move an element
 * from one place to another. Do not use a drop followed by an add. The move
 * command verifies that the move can be done before starting the action. If you
 * instead do a drop followed by an add, you'll end up with the element deleted
 * if it cannot be added into its new location.
 * 
 */
public class ContentCommand extends AbstractElementCommand
{
	/**
	 * Constructs the content command with container element.
	 * 
	 * @param module
	 *            the module
	 * @param container
	 *            the container element
	 */
	public ContentCommand( Module module, DesignElement container )