DesignElementHandle newObject = (DesignElementHandle) extendsData.get( DesignerConstants.KEY_NEWOBJECT );
DesignElementHandle newObject = getNewObject();
	public void execute( )	{		DesignElementHandle newObject = (DesignElementHandle) extendsData.get( DesignerConstants.KEY_NEWOBJECT );		if ( DesignerConstants.TRACING_COMMANDS )		{			System.out.println( "CreateCommand >> Starts ... " ); //$NON-NLS-1$		}		try		{			// For all virtual model node keep the SlotHandle			if ( parent instanceof SlotHandle )			{				if ( after != null )				{					int pos = DEUtil.findInsertPosition( ( (SlotHandle) parent ).getElementHandle( ),							(DesignElementHandle) after,							( (SlotHandle) parent ).getSlotID( ) );					( (SlotHandle) parent ).add( newObject, pos );				}				else				{					( (SlotHandle) parent ).add( newObject );				}			}			else if( newObject instanceof DataSourceHandle)//simply add to datasource slot.			{				( (DesignElementHandle) parent ).addElement( newObject,						ReportDesignHandle.DATA_SOURCE_SLOT );			}			else			{				// calculate the position of added element				if ( after != null )				{					int pos = DEUtil.findInsertPosition( (DesignElementHandle) parent,							(DesignElementHandle) after );					int slotID = DEUtil.findSlotID( parent, after );					( (DesignElementHandle) parent ).addElement( newObject,							slotID,							pos );				}				else				{					( (DesignElementHandle) parent ).addElement( newObject,							DEUtil.getDefaultSlotID( parent ) );				}			}			if ( DesignerConstants.TRACING_COMMANDS )			{				System.out.println( "CreateCommand >> Finished. " //$NON-NLS-1$						+ DEUtil.getDisplayLabel( newObject )						+ " created" ); //$NON-NLS-1$			}		}		catch ( SemanticException e )		{			if ( DesignerConstants.TRACING_COMMANDS )			{				System.out.println( "CreateCommand >> Failed" ); //$NON-NLS-1$			}			e.printStackTrace( );		}	}