Bug 160429 Drag the datasource and dataset and produce an error gradation in data explorer
Details: Drag the datasource and dataset and produce an error gradation in data explorer Step: 1.New 4 datasource named d1, d2, d3, d4. 2.Drag the datasource in data explorer to change the gradation. (1) Drag d1 between d2 and d3. (2) Drag d2 between d3 and d4. (3) Drag d4 between d2 and d3. (4) Drag d4 to the top. (5) Drag d3 between d1 and d2. (6) Drag d3 to the top. Actual result: (1) d1 will be move to bottom. (2) d2 will be move to bottom. (3) d4 will not be move to anywhere. (4) d4 will not be move to anywhere. (5) d3 will be move to bottom. (6) d3 will be move to bottom. Excepted result: The datasource will be move to the correct station.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/api/ModuleHandle.java
* @param newVar
	 *            the new embedded image
	 * @throws SemanticException
	 *             if the old image is not found or the name of new one is
	 *             empty.
	 */
	public void replaceImage( EmbeddedImage oldVar, EmbeddedImage newVar )
			throws SemanticException
	{
		replaceObjectInList( IMAGES_PROP, oldVar, newVar );
	}
	/**
	 * Replaces an old object in the structure list with the given new one.
	 * 
	 * @param propName
	 *            the name of the property that holds a structure list
	 * @param oldVar
	 *            an existed object in the list
	 * @param newVar
	 *            a new object
	 * @throws SemanticException
	 *             if the old object is not found or the name of new one is
	 *             empty.
	 */
	private void replaceObjectInList( String propName, Object oldVar,
			Object newVar ) throws SemanticException
	{
		ElementPropertyDefn propDefn = module.getPropertyDefn( propName );
		PropertyCommand cmd = new PropertyCommand( module, getElement( ) );
		cmd.replaceItem( new CachedMemberRef( propDefn ), (Structure) oldVar,