if ( ( (ReportElementHandle) source ).getRoot( ) instanceof LibraryHandle && SessionHandleAdapter.getInstance( ) .getReportDesignHandle( ) instanceof ReportDesignHandle ) { return false; } return true;
return ( (ReportElementHandle) source ).canDrop( );
	protected boolean canDrop( Object source )	{		if ( source == null )		{			return false;		}		if ( source instanceof StructuredSelection )		{			return canDrop( ( (StructuredSelection) source ).toArray( ) );		}		if ( source instanceof Object[] )		{			Object[] array = (Object[]) source;			if ( array.length == 0 )			{				return false;			}			// If the container can drop, the children will be skipped			for ( int i = 0; i < array.length; i++ )			{				if ( DNDUtil.checkContainerExists( array[i], array ) )					continue;				if ( canDrop( array[i] ) )					return true;			}			return false;		}		source = DNDUtil.unwrapToModel( source );		if ( source instanceof SlotHandle )		{			SlotHandle slot = (SlotHandle) source;			DesignElementHandle handle = slot.getElementHandle( );			return slot.getContents( ).size( ) > 0					&& ( handle instanceof ListHandle || handle instanceof ListGroupHandle );		}		if ( source instanceof EmbeddedImageHandle )		{			return true;		}		if ( source instanceof CellHandle )		{			// CellHandle is subclass of ReportElementHandle			return ( (CellHandle) source ).getContent( ).getContents( ).size( ) > 0;		}		if ( source instanceof MasterPageHandle )		{			return false;		}		else if ( source instanceof ReportElementHandle )		{			if ( ( (ReportElementHandle) source ).getRoot( ) instanceof LibraryHandle					&& SessionHandleAdapter.getInstance( )							.getReportDesignHandle( ) instanceof ReportDesignHandle )			{				return false;			}			return true;		}		else			return false;		// return (source instanceof ReportElementHandle		// // && (SessionHandleAdapter.getInstance( ).getReportDesignHandle()		// instanceof LibraryHandle)		// && !( source instanceof MasterPageHandle ));	}