Java源码示例:org.eclipse.gef.dnd.TemplateTransfer

示例1
/**
 * {@inheritDoc}
 */
@Override
public void createControl(final Composite parent) {
    sash = new SashForm(parent, SWT.VERTICAL);

    // コンストラクタで指定したビューワの作成
    viewer.createControl(sash);

    // EditPartFactory の設定
    final ERDiagramOutlineEditPartFactory editPartFactory = new ERDiagramOutlineEditPartFactory();
    viewer.setEditPartFactory(editPartFactory);

    // グラフィカル・エディタのルート・モデルをツリー・ビューワにも設定
    viewer.setContents(diagram);

    final Canvas canvas = new Canvas(sash, SWT.BORDER);
    // サムネイル・フィギュアを配置する為の LightweightSystem
    lws = new LightweightSystem(canvas);

    resetView(registry);

    final AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener(viewer, TemplateTransfer.getInstance());
    viewer.addDragSourceListener(dragSourceListener);

    diagram.refreshOutline();
}
 
示例2
@Override
public void createControl(Composite parent) {
    this.sash = new SashForm(parent, SWT.VERTICAL);
    viewer.createControl(sash);
    editPartFactory = new ERDiagramOutlineEditPartFactory();
    editPartFactory.setQuickMode(quickMode);
    viewer.setEditPartFactory(editPartFactory);
    viewer.setContents(diagram);
    if (!quickMode) {
        final Canvas canvas = new Canvas(sash, SWT.BORDER);
        lws = new LightweightSystem(canvas);
    }
    resetView(registry);
    final AbstractTransferDragSourceListener dragSourceListener =
            new ERDiagramTransferDragSourceListener(viewer, TemplateTransfer.getInstance());
    viewer.addDragSourceListener(dragSourceListener);

    expandVirturalDiagramTree();
}
 
示例3
/**
 * Validates drag source from palette, layout, or data view
 * 
 * @param dragObj
 * @return validate result
 */
private boolean handleValidateDrag( Object dragObj )
{
	if ( DNDService.getInstance( )
			.validDrop( TemplateTransfer.getInstance( ).getTemplate( ),
					getTargetEditPart( ),
					DND.DROP_DEFAULT,
					new DNDLocation( getDropLocation( ) ) ) )
	{
		return true;
	}
	return dragObj != null
			&& ( handleValidatePalette( dragObj )
					|| handleValidateOutline( dragObj )
					|| handleValidateInsert( dragObj ) || handleValidateLibrary( dragObj ) );
}
 
示例4
/**
 * @see ViewerDropAdapter#dragOver(DropTargetEvent)
 * 
 */
public void dragOver( DropTargetEvent event )
{
	super.dragOver( event );
	if ( event.detail == DND.DROP_NONE )
		return;
	if ( !validateTarget( getCurrentTarget( ) )
			|| !validateTarget( getCurrentTarget( ),
					TemplateTransfer.getInstance( ).getTemplate( ) ) )
	{
		event.detail = DND.DROP_NONE;
		if ( Policy.TRACING_DND_DRAG )
		{
			System.out.println( "DND >> Drag over " + event.getSource( ) ); //$NON-NLS-1$
		}
	}
}
 
示例5
@Override
public void dragStart(DragSourceEvent dragsourceevent) {
	super.dragStart(dragsourceevent);

	Object target = this.getTargetModel(dragsourceevent);

	if (target != null) {
		// && target == dragSourceViewer.findObjectAt(
		// new Point(dragsourceevent.x, dragsourceevent.y))
		// .getModel()) {
		TemplateTransfer transfer = (TemplateTransfer) this.getTransfer();
		transfer.setObject(target);

	} else {
		dragsourceevent.doit = false;
	}
}
 
示例6
@Override
public void dragStart(final DragSourceEvent dragsourceevent) {
    super.dragStart(dragsourceevent);

    final Object target = getTargetModel(dragsourceevent);

    if (target != null && target == dragSourceViewer.findObjectAt(new Point(dragsourceevent.x, dragsourceevent.y)).getModel()) {
        final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
        transfer.setObject(createTransferData(dragsourceevent));

    } else {
        dragsourceevent.doit = false;
    }
}
 
示例7
private void initDragAndDrop(final GraphicalViewer viewer) {
    final AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener(viewer, TemplateTransfer.getInstance());
    viewer.addDragSourceListener(dragSourceListener);

    final AbstractTransferDropTargetListener dropTargetListener = new ERDiagramTransferDropTargetListener(viewer, TemplateTransfer.getInstance());

    viewer.addDropTargetListener(dropTargetListener);
}
 
示例8
protected void initDragAndDrop(GraphicalViewer viewer) {
    final AbstractTransferDragSourceListener dragSourceListener =
            new ERDiagramTransferDragSourceListener(viewer, TemplateTransfer.getInstance());
    viewer.addDragSourceListener(dragSourceListener);
    final AbstractTransferDropTargetListener dropTargetListener =
            new ERDiagramTransferDropTargetListener(viewer, TemplateTransfer.getInstance());
    viewer.addDropTargetListener(dropTargetListener);
}
 
示例9
@Override
public void dragStart(DragSourceEvent dragsourceevent) {
    super.dragStart(dragsourceevent);

    final Object target = getTargetModel(dragsourceevent);
    if (target != null) {
        final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
        transfer.setObject(target);
    } else {
        dragsourceevent.doit = false;
    }
}
 
示例10
public void dragStart( DragSourceEvent event )
{
	boolean doit = !getViewer( ).getSelection( ).isEmpty( );
	if ( doit )
	{
		IStructuredSelection selection = (IStructuredSelection) getViewer( ).getSelection( );
		List objectList = selection.toList( );
		selectionList.clear( );
		for ( int i = 0; i < objectList.size( ); i++ )
		{
			if ( objectList.get( i ) instanceof ReportResourceEntry )
				selectionList.add( ( (ReportResourceEntry) objectList.get( i ) ).getReportElement( ) );
			else
				selectionList.add( objectList.get( i ) );
		}
		Object[] objects = selectionList.toArray( );
		if ( validateType( objects ) )
		{
			for ( int i = 0; i < objects.length; i++ )
				if ( !validateTransfer( objects[i] ) )
				{
					doit = false;
					break;
				}
		}
		else
			doit = false;
		if ( doit )
			TemplateTransfer.getInstance( ).setTemplate( objects );
	}
	event.doit = doit;
	if ( Policy.TRACING_DND_DRAG && doit )
	{
		System.out.println( "DND >> Drag starts." ); //$NON-NLS-1$
	}
}
 
示例11
public void dragOver( DropTargetEvent event )
{
	super.dragOver( event );
	if ( !handleValidateDrag( TemplateTransfer.getInstance( ).getTemplate( ) ) )
	{
		event.detail = DND.DROP_NONE;
	}
}
 
示例12
/**
 * @see ViewerDropAdapter#validateDrop(Object, int, TransferData)
 */
public boolean validateDrop( Object target, int op, TransferData type )
{

	//		if(target!=null){
	//			Object adapter = ElementAdapterManager.getAdatper( target, IElementDropAdapter.class );
	//			if(adapter!=null){
	//				IElementDropAdapter dropAdapter = (IElementDropAdapter)adapter;
	//				return dropAdapter.validateDrop( target, getCurrentOperation( ), getCurrentLocation( ), null, type );
	//			}
	//		}

	return TemplateTransfer.getInstance( ).isSupportedType( type );
}
 
示例13
/**
 * @see DragSourceAdapter#dragFinished(DragSourceEvent)
 */
public void dragFinished( DragSourceEvent event )
{
	if ( event.doit )
	{
		TemplateTransfer.getInstance( ).setTemplate( null );
		if ( Policy.TRACING_DND_DRAG )
		{
			System.out.println( "DND >> Drag finished." ); //$NON-NLS-1$
		}
	}
}
 
示例14
/**
	 * @see DragSourceAdapter#dragSetData(DragSourceEvent)
	 */
	public void dragSetData( DragSourceEvent event )
	{
//		IStructuredSelection selection = (IStructuredSelection) getViewer( ).getSelection( );
//		Object[] objects = selection.toList( ).toArray( );

		// fix bug 116180
		Object[] objects = selectionList.toArray( );
		if ( TemplateTransfer.getInstance( ).isSupportedType( event.dataType ) )
			event.data = objects;
	}
 
示例15
/**
 * @see DragSourceAdapter#dragStart(DragSourceEvent)
 */
public void dragStart( DragSourceEvent event )
{
	boolean doit = !getViewer( ).getSelection( ).isEmpty( );
	if ( doit )
	{
		IStructuredSelection selection = (IStructuredSelection) getViewer( ).getSelection( );
		selectionList = selection.toList( );
		Object[] objects = selection.toList( ).toArray( );
		if ( validateType( objects ) )
		{
			for ( int i = 0; i < objects.length; i++ )
				if ( !validateTransfer( objects[i] ) )
				{
					doit = false;
					break;
				}
		}
		else
			doit = false;
		if ( doit )
			TemplateTransfer.getInstance( ).setTemplate( objects );
	}
	event.doit = doit;
	if ( Policy.TRACING_DND_DRAG && doit )
	{
		System.out.println( "DND >> Drag starts." ); //$NON-NLS-1$
	}
}
 
示例16
/**
 * @see DragSourceAdapter#dragSetData(DragSourceEvent)
 */
public void dragSetData( DragSourceEvent event )
{
	IStructuredSelection selection = (IStructuredSelection) getViewer( )
			.getSelection( );
	Object[] objects = selection.toList( ).toArray( );

	if ( TemplateTransfer.getInstance( ).isSupportedType( event.dataType ) )
	{
		event.data = objects;
	}
}
 
示例17
/**
 * {@inheritDoc}
 */
@Override
public void createControl(Composite parent) {
	this.sash = new SashForm(parent, SWT.VERTICAL);

	// �R���X�g���N�^�Ŏw�肵���r���[���̍쐬
	this.viewer.createControl(this.sash);

	editPartFactory = new ERDiagramOutlineEditPartFactory();
	editPartFactory.setQuickMode(quickMode);

	this.viewer.setEditPartFactory(editPartFactory);

	// �O���t�B�J���E�G�f�B�^�̃��[�g�E���f�����c���[�E�r���[���ɂ��ݒ�
	this.viewer.setContents(this.diagram);

	if (!quickMode) {
		Canvas canvas = new Canvas(this.sash, SWT.BORDER);
		// �T���l�C���E�t�B�M���A��z�u����ׂ� LightweightSystem
		this.lws = new LightweightSystem(canvas);
	}

	this.resetView(this.registry);

	AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener(
			this.viewer, TemplateTransfer.getInstance());
	this.viewer.addDragSourceListener(dragSourceListener);
}
 
示例18
protected void initDragAndDrop(GraphicalViewer viewer) {
	AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener(
			viewer, TemplateTransfer.getInstance());
	viewer.addDragSourceListener(dragSourceListener);

	AbstractTransferDropTargetListener dropTargetListener = new ERDiagramTransferDropTargetListener(
			viewer, TemplateTransfer.getInstance());

	viewer.addDropTargetListener(dropTargetListener);
}
 
示例19
private void initDropTarget() {
    final AbstractTransferDropTargetListener dropTargetListener = new ERDiagramOutlineTransferDropTargetListener(graphicalViewer, TemplateTransfer.getInstance());

    graphicalViewer.addDropTargetListener(dropTargetListener);
}
 
示例20
private Object getTargetModel() {
    final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
    return transfer.getObject();
}
 
示例21
private Object getTargetModel() {
    final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
    return transfer.getObject();
}
 
示例22
private void initDropTarget() {
    final AbstractTransferDropTargetListener dropTargetListener =
            new ERDiagramOutlineTransferDropTargetListener(graphicalViewer, TemplateTransfer.getInstance());
    graphicalViewer.addDropTargetListener(dropTargetListener);
}
 
示例23
private Object getTargetModel() {
    final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
    return transfer.getObject();
}
 
示例24
private Object getTargetModel() {
    final TemplateTransfer transfer = (TemplateTransfer) getTransfer();
    return transfer.getObject();
}
 
示例25
protected void showLayoutTargetFeedback( Request request )
{

	boolean isCrossTabElement = false;

	if ( request instanceof ChangeBoundsRequest )
	{
		List editParts = ( (ChangeBoundsRequest) request ).getEditParts( );
		if ( editParts.size( ) > 0 )
		{
			isCrossTabElement = editParts.get( 0 ) instanceof CrosstabCellEditPart;
		}
	}

	if ( !isCrossTabElement )
	{
		Object template = TemplateTransfer.getInstance( ).getTemplate( );
		if ( template instanceof Object[]
				&& ( (Object[]) template ).length > 0 )
		{
			Object dragObject = ( (Object[]) template )[0];
			if ( dragObject instanceof DimensionHandle
					|| dragObject instanceof MeasureHandle
					|| dragObject instanceof LevelHandle )
			{
				isCrossTabElement = true;
			}
		}
	}

	if ( isCrossTabElement )
	{
		Transposer transposer = new Transposer( );
		transposer.setEnabled( !isHorizontal( ) );
		Rectangle r = transposer.t( getAbsoluteClientBounds( (GraphicalEditPart) getHost( ) ) );
		Point p = transposer.t( getLocationFromRequest( request ) );
		boolean before = p.x <= r.x + ( r.width / 2 );

		Point p1 = new Point( before ? r.x : r.x + r.width, r.y - 2 );
		p1 = transposer.t( p1 );

		Point p2 = new Point( before ? r.x : r.x + r.width, r.y
				+ r.height
				+ 7 );
		p2 = transposer.t( p2 );

		setTargetFeedbackPoints( p1, p2 );

	}
	else
	{
		super.showLayoutTargetFeedback( request );
	}
}
 
示例26
public boolean validateDrop( Object target, int operation, int location,
		Object transfer, TransferData transferType )
{
	return TemplateTransfer.getInstance( ).isSupportedType( transferType );
}
 
示例27
private void initDropTarget() {
	AbstractTransferDropTargetListener dropTargetListener = new ERDiagramOutlineTransferDropTargetListener(
			this.graphicalViewer, TemplateTransfer.getInstance());

	this.graphicalViewer.addDropTargetListener(dropTargetListener);
}
 
示例28
private Object getTargetModel() {
	TemplateTransfer transfer = (TemplateTransfer) this.getTransfer();
	return transfer.getObject();
}
 
示例29
private Object getTargetModel() {
	TemplateTransfer transfer = (TemplateTransfer) this.getTransfer();
	return transfer.getObject();
}