/** * {@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(); }
@Override public void dragStart(DragSourceEvent dragsourceevent) { super.dragStart(dragsourceevent); Object target = this.getTargetModel(dragsourceevent); if (target != null && target == this.dragSourceViewer.findObjectAt( new Point(dragsourceevent.x, dragsourceevent.y)) .getModel()) { TemplateTransfer transfer = (TemplateTransfer) this.getTransfer(); transfer.setObject(this.createTransferData(dragsourceevent)); } else { dragsourceevent.doit = false; } }
@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(); }
/** * 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 ) ); }
/** * @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$ } } }
@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; } }
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); }
/** * {@inheritDoc} */ @Override public void createControl(Composite parent) { this.sash = new SashForm(parent, SWT.VERTICAL); // コンストラクタで指定したビューワの作成 this.viewer.createControl(this.sash); // EditPartFactory の設定 ERDiagramOutlineEditPartFactory editPartFactory = new ERDiagramOutlineEditPartFactory(); this.viewer.setEditPartFactory(editPartFactory); // グラフィカル・エディタのルート・モデルをツリー・ビューワにも設定 this.viewer.setContents(this.diagram); Canvas canvas = new Canvas(this.sash, SWT.BORDER); // サムネイル・フィギュアを配置する為の LightweightSystem this.lws = new LightweightSystem(canvas); this.resetView(this.registry); AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener( this.viewer, TemplateTransfer.getInstance()); this.viewer.addDragSourceListener(dragSourceListener); this.diagram.refreshOutline(); }
private void initDragAndDrop(GraphicalViewer viewer) { AbstractTransferDragSourceListener dragSourceListener = new ERDiagramTransferDragSourceListener( viewer, TemplateTransfer.getInstance()); viewer.addDragSourceListener(dragSourceListener); AbstractTransferDropTargetListener dropTargetListener = new ERDiagramTransferDropTargetListener( viewer, TemplateTransfer.getInstance()); viewer.addDropTargetListener(dropTargetListener); }
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); }
@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; } }
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$ } }
public void dragOver( DropTargetEvent event ) { super.dragOver( event ); if ( !handleValidateDrag( TemplateTransfer.getInstance( ).getTemplate( ) ) ) { event.detail = DND.DROP_NONE; } }
/** * @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 ); }
/** * @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$ } } }
/** * @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; }
/** * @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$ } }
/** * @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; } }
private void initDropTarget() { final AbstractTransferDropTargetListener dropTargetListener = new ERDiagramOutlineTransferDropTargetListener(graphicalViewer, TemplateTransfer.getInstance()); graphicalViewer.addDropTargetListener(dropTargetListener); }
private Object getTargetModel() { final TemplateTransfer transfer = (TemplateTransfer) getTransfer(); return transfer.getObject(); }
private void initDropTarget() { AbstractTransferDropTargetListener dropTargetListener = new ERDiagramOutlineTransferDropTargetListener( this.graphicalViewer, TemplateTransfer.getInstance()); this.graphicalViewer.addDropTargetListener(dropTargetListener); }
private Object getTargetModel() { TemplateTransfer transfer = (TemplateTransfer) this.getTransfer(); return transfer.getObject(); }
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 ); } }
public boolean validateDrop( Object target, int operation, int location, Object transfer, TransferData transferType ) { return TemplateTransfer.getInstance( ).isSupportedType( transferType ); }