/** * Refreshes all outgoing or incoming connections if the super classes's anchors are moved. */ public void anchorMoved(ConnectionAnchor anchor) { ConnectionLayer cLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER); // jk (later): I'm not sure why we are refreshing all the connections; might want to try to reduce the scope. if (cLayer.getConnectionRouter() instanceof UCMConnectionRouter) ((UCMConnectionRouter) cLayer.getConnectionRouter()).refreshConnections(); List toRefresh; // and forks have their outputs rearranged; therefore the connection's source are rearranged. if (getModel() instanceof AndFork) toRefresh = getModelSourceConnections(); else toRefresh = getModelTargetConnections(); // when one anchor is moved, we must inform the others as we are using mutually exclusive locations. for (Iterator iter = toRefresh.iterator(); iter.hasNext();) { NodeConnection element = (NodeConnection) iter.next(); AndForkJoinConnectionAnchor anch = (getAnchor(element)); if (anch != anchor) anch.ancestorMoved(getFigure()); } }
@Override public void eraseTargetFeedback(final Request request) { final LayerManager manager = (LayerManager) getHost().getRoot(); final IFigure layer = manager.getLayer(LayerConstants.PRIMARY_LAYER); getFeedbackLayer().setBounds(layer.getBounds()); final List list = getFeedbackLayer().getChildren(); for (final Iterator iter = list.iterator(); iter.hasNext();) { final Object obj = iter.next(); if (obj instanceof Label) { iter.remove(); } } getFeedbackLayer().repaint(); super.eraseTargetFeedback(request); }
private void showThumbnail() { // RootEditPartのビューをソースとしてサムネイルを作成 ScalableFreeformRootEditPart editPart = (ScalableFreeformRootEditPart) this.graphicalViewer .getRootEditPart(); if (this.thumbnail != null) { this.thumbnail.deactivate(); } this.thumbnail = new ScrollableThumbnail((Viewport) editPart .getFigure()); this.thumbnail.setSource(editPart .getLayer(LayerConstants.PRINTABLE_LAYERS)); this.lws.setContents(this.thumbnail); }
@Override public void eraseTargetFeedback(Request request) { LayerManager manager = (LayerManager) this.getHost().getRoot(); IFigure layer = manager.getLayer(LayerConstants.PRIMARY_LAYER); this.getFeedbackLayer().setBounds(layer.getBounds()); List list = this.getFeedbackLayer().getChildren(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object obj = iter.next(); if (obj instanceof Label) { iter.remove(); } } this.getFeedbackLayer().repaint(); super.eraseTargetFeedback(request); }
/** * @see org.eclipse.gef.editparts.AbstractEditPart#eraseSourceFeedback(org.eclipse.gef.Request) */ public void eraseSourceFeedback(Request request) { if (isActive()) { EditPolicyIterator iter = getEditPolicyIterator(); while (iter.hasNext()) { EditPolicy nextEditPolicy = iter.next(); if(nextEditPolicy instanceof ResizableEditPolicy) { List<Object> feedbackList = getLayer(LayerConstants.FEEDBACK_LAYER).getChildren(); if(null == feedbackList || feedbackList.isEmpty()){ continue; } } nextEditPolicy.eraseSourceFeedback(request); } } }
public boolean containsPoint(int x, int y) { if (!getBounds().contains(x, y)) return false; Rectangle r = getBounds().getCopy(); IFigure ofig = getOwner().getFigure(); Rectangle rown = ofig.getBounds().getCopy(); ofig.translateToAbsolute(rown); IFigure feedback = LayerManager.Helper.find(getOwner()).getLayer(LayerConstants.FEEDBACK_LAYER); feedback.translateToRelative(rown); int offset = getOffset(); if (row && (x >= rown.x && x <= rown.x + rown.width && (y <= offset || y >= r.y + r.height - offset))) return true; if (col && (y >= rown.y && y <= rown.y + rown.height && (x <= offset || x >= r.x + r.width - offset))) return true; return false; }
/** * Initialize overview. */ protected void initializeOverview() { LightweightSystem lws = new J2DLightweightSystem(overview); RootEditPart rep = editor.getGraphicalViewer().getRootEditPart(); if (rep instanceof MainDesignerRootEditPart) { ScalableFreeformRootEditPart root = (ScalableFreeformRootEditPart) rep; thumbnail = new JSSScrollableThumbnail((Viewport) root.getFigure(), (MRoot)getViewer().getContents().getModel()); thumbnail.setSource(root.getLayer(LayerConstants.PRINTABLE_LAYERS)); lws.setContents(thumbnail); disposeListener = new DisposeListener() { public void widgetDisposed(DisposeEvent e) { if (thumbnail != null) { thumbnail.deactivate(); thumbnail = null; } } }; editor.getEditor().addDisposeListener(disposeListener); } lws.setControl(overview); }
@Override public void eraseTargetFeedback(Request request) { final LayerManager manager = (LayerManager) getHost().getRoot(); final IFigure layer = manager.getLayer(LayerConstants.PRIMARY_LAYER); getFeedbackLayer().setBounds(layer.getBounds()); final List<?> list = getFeedbackLayer().getChildren(); for (final Iterator<?> iter = list.iterator(); iter.hasNext();) { final Object obj = iter.next(); if (obj instanceof Label) { iter.remove(); } } getFeedbackLayer().repaint(); super.eraseTargetFeedback(request); }
/** * @see GraphicalViewer#findHandleAt(org.eclipse.draw2d.geometry.Point) */ public Handle findHandleAt(Point p) { LayerManager layermanager = (LayerManager) getEditPartRegistry().get( LayerManager.ID); if (layermanager == null) return null; List list = new ArrayList(3); list.add(layermanager.getLayer(LayerConstants.PRIMARY_LAYER)); list.add(layermanager.getLayer(LayerConstants.CONNECTION_LAYER)); list.add(layermanager.getLayer(LayerConstants.FEEDBACK_LAYER)); IFigure handle = getLightweightSystem().getRootFigure() .findFigureAtExcluding(p.x, p.y, list); if (handle instanceof Handle) return (Handle) handle; return null; }
/** * Returns a list of all the edit parts in the * {@link AbstractTool#getOperationSet() operation set}, plus the * {@link org.eclipse.draw2d.ConnectionLayer}. * * @see org.eclipse.gef.tools.TargetingTool#getExclusionSet() */ protected Collection getExclusionSet() { if (exclusionSet == null) { List set = getOperationSet(); exclusionSet = new ArrayList(set.size() + 1); for (int i = 0; i < set.size(); i++) { GraphicalEditPart editpart = (GraphicalEditPart) set.get(i); exclusionSet.add(editpart.getFigure()); } LayerManager layerManager = (LayerManager) getCurrentViewer() .getEditPartRegistry().get(LayerManager.ID); if (layerManager != null) { exclusionSet.add(layerManager .getLayer(LayerConstants.CONNECTION_LAYER)); } } return exclusionSet; }
public void activate( ) { if ( handles == null ) { handles = getHandleList( ); } // IFigure layer = getLayer( CrosstabTableEditPart.CELL_HANDLE_LAYER ); IFigure layer = getLayer( LayerConstants.HANDLE_LAYER ); int size = handles.size( ); for ( int i = 0; i < size; i++ ) { Figure handle = (Figure) handles.get( i ); layer.add( handle ); } super.activate( ); }
/** * Calculates height of row * * @param part * @param row * @return */ public static int caleVisualHeight( AbstractTableEditPart part, int rowNumber ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( rowNumber <= data.rowHeights.length ) { return data.findRowData( rowNumber ).height; } return 0; }
/** * Calculates the width of column * * @param part * @param Column * @return */ public static int caleVisualWidth( AbstractTableEditPart part, int columnNumber ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( columnNumber <= data.columnWidths.length ) { return data.findColumnData( columnNumber ).width; } return 0; }
/** * @see GraphicalViewer#findHandleAt(org.eclipse.draw2d.geometry.Point) */ public Handle findHandleAt( Point p ) { LayerManager layermanager = (LayerManager) getEditPartRegistry( ).get( LayerManager.ID ); if ( layermanager == null ) return null; List list = new ArrayList( 3 ); // list.add(layermanager.getLayer(LayerConstants.PRIMARY_LAYER)); list.add( layermanager.getLayer( LayerConstants.CONNECTION_LAYER ) ); list.add( layermanager.getLayer( LayerConstants.FEEDBACK_LAYER ) ); IFigure handle = getLightweightSystem( ).getRootFigure( ) .findFigureAtExcluding( p.x, p.y, list ); if ( handle instanceof Handle ) return (Handle) handle; return null; }
/** * Calculates the X value of row * * @param part * @param i * @return */ public static int caleY( AbstractTableEditPart part, int row ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); // if the Layout data is not existed, use the model data instead if ( data == null ) { return 0; } int height = 0; for ( int i = 1; i < row; i++ ) { height = height + data.findRowData( i ).height; } return height; }
/** * Calculates height of row * * @param part * @param row * @return */ public static int caleVisualHeight( TableEditPart part, Object row ) { RowHandleAdapter adapt = HandleAdapterFactory.getInstance( ) .getRowHandleAdapter( row ); IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return adapt.getHeight( ); } int rowNumber = adapt.getRowNumber( ); if ( rowNumber <= data.rowHeights.length ) { return data.findRowData( rowNumber ).height; } return 0; }
public static int caleVisualWidth( TableEditPart part, int columnIndex, Object column ) { ColumnHandleAdapter adapt = HandleAdapterFactory.getInstance( ) .getColumnHandleAdapter( column ); IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return adapt.getWidth( ); } int columnNumber = ( columnIndex <= 0 ) ? adapt.getColumnNumber( ) : columnIndex; if ( columnNumber <= data.columnWidths.length ) { return data.findColumnData( columnNumber ).width; } return 0; }
/** * Calculates the Y value of column * * @param part * @param i * @return */ public static int caleX( AbstractTableEditPart part, int column ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } int height = 0; for ( int i = 1; i < column; i++ ) { height = height + data.findColumnData( i ).width; } return height; }
/** * Get minimum height of row. * * @param part * @param rowNumber * @return */ public static int getMinHeight( AbstractTableEditPart part, int rowNumber ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( rowNumber <= data.rowHeights.length ) { return data.findRowData( rowNumber ).minRowHeight; } return 0; }
/** * Get minimum width of column. * * @param part * @param columnNumber * @return */ public static int getMinWidth( AbstractTableEditPart part, int columnNumber ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( columnNumber <= data.columnWidths.length ) { return data.findColumnData( columnNumber ).minColumnWidth; } return 0; }
/** * Gets the table contents height * * @param part * @return */ public static int getTableContentsHeight( TableEditPart part ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } int height = 0; if ( data.rowHeights == null ) { return height; } int len = data.rowHeights.length; for ( int i = 0; i < len; i++ ) { height = height + data.rowHeights[i].height; } return height; }
/** * Gets the table contents width * * @param part * @return */ public static int getTableContentsWidth( TableEditPart part ) { IFigure figure = part.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } int width = 0; if ( data.columnWidths == null ) { return width; } int len = data.columnWidths.length; for ( int i = 0; i < len; i++ ) { width = width + data.columnWidths[i].width; } return width; }
protected void removeSelectionHandles( ) { if ( handles == null ) return; IFigure layer = getLayer( LayerConstants.HANDLE_LAYER ); for ( int i = 0; i < handles.size( ); i++ ) { Object figure = handles.get( i ); if ( figure instanceof IFigure ) { layer.remove( (IFigure) figure ); } } handles = null; }
protected void removeSelectionHandles( ) { if ( handles == null ) return; IFigure layer = getLayer( LayerConstants.HANDLE_LAYER ); IFigure topLayer = getTopLayer( LayerConstants.HANDLE_LAYER ); for ( int i = 0; i < handles.size( ); i++ ) { Object figure = handles.get( i ); if ( figure instanceof TableHFHandle ) { topLayer.remove( (IFigure) figure ); } else if ( figure instanceof TableSelectionHandle ) { layer.remove( (IFigure) figure ); } else if ( figure instanceof IFigure ) { layer.remove( (IFigure) figure ); } } handles = null; }
private int caleVisualWidth( int columnIndex ) { IFigure figure = source.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( columnIndex <= data.columnWidths.length ) { return data.findColumnData( columnIndex ).width; } return 0; }
private int caleVisualHeight( int rowIndex ) { IFigure figure = source.getLayer( LayerConstants.PRIMARY_LAYER ); TableLayout.WorkingData data = (TableLayout.WorkingData) figure.getLayoutManager( ) .getConstraint( figure ); if ( data == null ) { return 0; } if ( rowIndex <= data.rowHeights.length ) { return data.findRowData( rowIndex ).height; } return 0; }
@Override public void run() { if (file == null) return; log.trace("export product graph as image: {}", file); ScalableRootEditPart editPart = (ScalableRootEditPart) editor.getGraphicalViewer().getRootEditPart(); IFigure rootFigure = editPart.getLayer(LayerConstants.PRINTABLE_LAYERS); Rectangle bounds = rootFigure.getBounds(); Image img = new Image(null, bounds.width, bounds.height); GC imageGC = new GC(img); Graphics graphics = new SWTGraphics(imageGC); rootFigure.paint(graphics); ImageLoader imgLoader = new ImageLoader(); imgLoader.data = new ImageData[] { img.getImageData() }; imgLoader.save(file.getAbsolutePath(), SWT.IMAGE_PNG); }
/** * Outputs a D-Case diagram to a PDF file. * * @param pdfFileName a PDF file name. * @param monitor the progress monitor to use to display progress and receive requests for cancellation. */ @SuppressWarnings("unchecked") private void outputImageFile(String pdfFileName, IProgressMonitor monitor) { try { List<?> editparts = getSelectedObjects(); CopyToImageUtil copyToImageUtil = new CopyToImageUtil(); if (editparts.size() == 1 && editparts.get(0) instanceof DiagramEditPart) { copyToImageUtil.copyToImage((DiagramEditPart) editparts.get(0), new Path(pdfFileName), ImageFileFormat.PDF, monitor); } else { DiagramImageUtils.zOrderSort( (List<GraphicalEditPart>) editparts, LayerManager.Helper.find(getDiagramEditPart()) .getLayer(LayerConstants.PRINTABLE_LAYERS)); copyToImageUtil.copyToImage(getDiagramEditPart(), editparts, new Path(pdfFileName), ImageFileFormat.PDF, monitor); } } catch (CoreException e) { throw new DcaseSystemException(Messages.CopyToEpsRunnable_1, e, MessageTypeImpl.COPY_TO_EPS_FAILED); } }
private static void saveEditorContentsAsImage(IEditorPart editorPart, GraphicalViewer viewer, String saveFilePath, int format) { ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) viewer.getEditPartRegistry().get(LayerManager.ID); IFigure rootFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);// rootEditPart.getFigure(); Rectangle rootFigureBounds = rootFigure.getBounds(); Control figureCanvas = viewer.getControl(); GC figureCanvasGC = new GC(figureCanvas); Image img = new Image(null, rootFigureBounds.width, rootFigureBounds.height); GC imageGC = new GC(img); imageGC.setBackground(figureCanvasGC.getBackground()); imageGC.setForeground(figureCanvasGC.getForeground()); imageGC.setFont(figureCanvasGC.getFont()); imageGC.setLineStyle(figureCanvasGC.getLineStyle()); imageGC.setLineWidth(figureCanvasGC.getLineWidth()); imageGC.setXORMode(figureCanvasGC.getXORMode()); Graphics imgGraphics = new SWTGraphics(imageGC); rootFigure.paint(imgGraphics); ImageData[] imgData = new ImageData[1]; imgData[0] = img.getImageData(); ImageLoader imgLoader = new ImageLoader(); imgLoader.data = imgData; imgLoader.save(saveFilePath, format); figureCanvasGC.dispose(); imageGC.dispose(); img.dispose(); }
public void activate() { super.activate(); ScalableRootEditPart root = (ScalableRootEditPart) getViewer().getRootEditPart(); ConnectionLayer connLayer = (ConnectionLayer) root.getLayer(LayerConstants.CONNECTION_LAYER); GraphicalEditPart contentEditPart = (GraphicalEditPart) root.getContents(); FanRouter router = new FanRouter(); router.setSeparation(100); ShortestPathConnectionRouter spRouter = new ShortestPathConnectionRouter(contentEditPart.getFigure()); router.setNextRouter(spRouter); connLayer.setConnectionRouter(router); GraphSelectionManager.ME.selectionPartChanged(this); }
@Override protected IFigure createFigure() { Figure f = new FreeformLayer(); f.setBorder(new MarginBorder(3)); f.setLayoutManager(new FreeformLayout()); // Create the static router for the connection layer ConnectionLayer connLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER); connLayer.setConnectionRouter(new ManhattanConnectionRouter()); return f; }
private void prepareZoomContributions(GraphicalViewer viewer) { ScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart(); // set clipping strategy for connection layer ConnectionLayer connectionLayer = (ConnectionLayer) root .getLayer(LayerConstants.CONNECTION_LAYER); connectionLayer .setClippingStrategy(new ViewportAwareConnectionLayerClippingStrategy( connectionLayer)); List<String> zoomLevels = new ArrayList<String>(3); zoomLevels.add(ZoomManager.FIT_ALL); zoomLevels.add(ZoomManager.FIT_WIDTH); zoomLevels.add(ZoomManager.FIT_HEIGHT); root.getZoomManager().setZoomLevelContributions(zoomLevels); IAction zoomIn = new ZoomInAction(root.getZoomManager()); IAction zoomOut = new ZoomOutAction(root.getZoomManager()); viewer.setRootEditPart(root); getActionRegistry().registerAction(zoomIn); getActionRegistry().registerAction(zoomOut); //zoom on key strokes: ctrl++ and ctrl-- IHandlerService service = (IHandlerService)getEditorSite().getService(IHandlerService. class); service.activateHandler(zoomIn.getActionDefinitionId(), new ActionHandler(zoomIn)); service.activateHandler(zoomOut.getActionDefinitionId(), new ActionHandler(zoomOut)); // Scroll-wheel Zoom getGraphicalViewer().setProperty( MouseWheelHandler.KeyGenerator.getKey(SWT.MOD1), MouseWheelZoomHandler.SINGLETON); }
public void createEyeViewControl(Composite parent) { Canvas canvas = new Canvas(parent, SWT.NONE); canvas.setLayoutData(new GridData(GridData.FILL_BOTH)); LightweightSystem liSystem = new LightweightSystem(canvas); ScalableFreeformRootEditPart rootEditPart = ((ScalableFreeformRootEditPart) dbToolGefEditor.getGraphicalViewer().getRootEditPart()); ScrollableThumbnail thumbnail = new ScrollableThumbnail((Viewport) rootEditPart.getFigure()); thumbnail.setSource(rootEditPart.getLayer(LayerConstants.SCALABLE_LAYERS)); liSystem.setContents(thumbnail); }
private void configInitData() { getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE, true); getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_ENABLED, true); IFigure gridLayer = rootEditPart.getLayer(LayerConstants.GRID_LAYER); gridLayer.setForegroundColor(GRID_COLOR); getGraphicalViewer().setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.CTRL), MouseWheelZoomHandler.SINGLETON); }
protected void refreshVisuals() { super.refreshVisuals(); ConnectionLayer connectionLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER); connectionLayer.setConnectionRouter(new ShortestPathConnectionRouter(figure)); if ((getViewer().getControl().getStyle() & SWT.MIRRORED) == 0) { connectionLayer.setAntialias(SWT.ON); } Animation.run(400); }