Java 类org.eclipse.gef.editparts.LayerManager 实例源码

项目:ermasterr    文件:TableViewGraphicalNodeEditPolicy.java   
@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);
}
项目:ermaster-k    文件:TableViewGraphicalNodeEditPolicy.java   
@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);
}
项目:PDFReporter-Studio    文件:CellMoveHandle.java   
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;
}
项目:erflute    文件:TableViewGraphicalNodeEditPolicy.java   
@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);
}
项目:ermaster-nhit    文件:TableViewGraphicalNodeEditPolicy.java   
@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);
}
项目:gef-gwt    文件:GraphicalViewerImpl.java   
/**
 * @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;
}
项目:gef-gwt    文件:DragEditPartsTracker.java   
/**
 * 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;
}
项目:birt    文件:DeferredGraphicalViewer.java   
/**
 * @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;
}
项目:d-case_editor    文件:CopyToEpsRunnable.java   
/**
 * 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);
    }
}
项目:Open_Source_ECOA_Toolset_AS5    文件:ImageSaveUtil.java   
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();
    }
项目:NEXCORE-UML-Modeler    文件:DirectEditorManager.java   
/**
     * @see org.eclipse.gef.tools.DirectEditManager#eraseFeedback()
     */
    @Override
    protected void eraseFeedback() {
//        if (getEditPart().getParent() != null) {
//            LayerManager.Helper.find(getEditPart()).getLayer(LayerConstants.FEEDBACK_LAYER).getChildren().clear();
//        }

        if( null != getEditPart() && null != getEditPart().getParent() ) {
            List<Object> feedbackList = LayerManager.Helper.find(getEditPart()).getLayer(LayerConstants.FEEDBACK_LAYER).getChildren();
            if(null != feedbackList && !feedbackList.isEmpty()){
                super.eraseFeedback();
            }
        }

        IWorkbench workbench;
        IWorkbenchWindow workbenchWindow = null;
        IWorkbenchPage workbenchPage = null;
        IEditorPart editorPart = null;
        workbench = PlatformUI.getWorkbench();
        if(null != workbench){
            workbenchWindow = workbench.getActiveWorkbenchWindow();
        }
        if(null != workbenchWindow){
            workbenchPage = workbenchWindow.getActivePage();
        }
        if(null != workbenchPage){
            editorPart = workbenchPage.getActiveEditor();
        }
        if(null != editorPart){
            if(editorPart instanceof AbstractDiagramEditor){
                Diagram diagram = ((AbstractDiagramEditor)editorPart).getDiagram();
                if(DiagramType.SEQUENCE_DIAGRAM.equals( diagram.getType() ) ){
                    List<Object> removeChildren = LayerManager.Helper.find(getEditPart()).getLayer(LayerConstants.FEEDBACK_LAYER).getChildren();
                    if(null != removeChildren && !removeChildren.isEmpty()){
                        super.eraseFeedback();
                    }
                }
            }
        }
    }
项目:NEXCORE-UML-Modeler    文件:ActivityPartitionDirectEditorManager.java   
/**
     * @see org.eclipse.gef.tools.DirectEditManager#eraseFeedback()
     */
    @Override
    protected void eraseFeedback() {
//        super.eraseFeedback();

        List<Object> feedbackList = LayerManager.Helper.find(getEditPart()).getLayer(LayerConstants.FEEDBACK_LAYER).getChildren();
        if(null != feedbackList && !feedbackList.isEmpty()){
            super.eraseFeedback();
        }
    }
项目:statecharts    文件:DirectEditManagerEx.java   
/**
 * Asks the source edit part to erase source feedback.
 */
protected void eraseFeedback() {
    if (showingFeedback) {
        LayerManager.Helper.find(getEditPart())
                .getLayer(LayerConstants.FEEDBACK_LAYER)
                .remove(getCellEditorFrame());
        cellEditorFrame = null;
        getEditPart().eraseSourceFeedback(getDirectEditRequest());
        showingFeedback = false;
    }
}
项目:SecureBPMN    文件:ActivitiMultiPageEditor.java   
private void createDiagramPage() {

    try {
      diagramEditor = new ActivitiDiagramEditor();
      int index = addPage(diagramEditor, getEditorInput());
      setPageText(index, ActivitiMultiPageEditor.DIAGRAM_PANE_TILE);
      GraphicalViewer graphicalViewer = (GraphicalViewer) diagramEditor.getAdapter(GraphicalViewer.class);
      if (graphicalViewer != null && graphicalViewer.getEditPartRegistry() != null) {
        ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) graphicalViewer.getEditPartRegistry().get(LayerManager.ID);
        IFigure gridFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.GRID_LAYER);
        gridFigure.setVisible(false);
      }
    } catch (PartInitException e) {
      ErrorDialog.openError(getSite().getShell(), "Error creating nested Activiti Diagram editor", null, e.getStatus());
    }
  }
项目:SecureBPMN    文件:ActivitiDiagramEditor.java   
@Override
public void createPartControl(Composite parent) {
  super.createPartControl(parent);
  GraphicalViewer graphicalViewer = (GraphicalViewer) getAdapter(GraphicalViewer.class);
   if (graphicalViewer != null && graphicalViewer.getEditPartRegistry() != null) {
     ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) graphicalViewer.getEditPartRegistry().get(LayerManager.ID);
     IFigure gridFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.GRID_LAYER);
     gridFigure.setVisible(false);
   }
}
项目:PDFReporter-Studio    文件:CellMoveHandle.java   
@Override
protected void paintBorder(Graphics graphics) {
    graphics.setForegroundColor(ColorConstants.darkGray);
    Rectangle r = getBounds().getCopy();
    IFigure ofig = getOwner().getFigure();

    Rectangle rown = ofig.getBounds().getCopy();
    if (offset != 0)
        rown = rown.resize(offset, offset);

    ofig.translateToAbsolute(rown);
    IFigure feedback = LayerManager.Helper.find(getOwner()).getLayer(LayerConstants.FEEDBACK_LAYER);
    feedback.translateToRelative(rown);

    int off2 = Y_OFFSET / 2;

    if (row) {
        int y2 = r.y + off2;
        int x1 = rown.x + VLINEWIDTH / 2;
        int x2 = rown.x + rown.width - VLINEWIDTH / 2 + 1;
        drawHBorder(graphics, off2, y2, rown.x + off2, rown.x + rown.width - off2 + 1, x1, x2);

        drawHBorder(graphics, off2, r.y + r.height - off2, rown.x + off2, rown.x + rown.width - off2 + 1, x1, x2);
    }
    // if (col) {
    graphics.drawLine(r.x + off2, rown.y + off2, r.x + off2, rown.y + rown.height - off2 + 1);
    graphics.drawLine(r.x + r.width - off2, rown.y + off2, r.x + r.width - off2, rown.y + rown.height - off2 + 1);
    // }
}
项目:erflute    文件:Activator.java   
@Override
public void run() {
    GC figureCanvasGC = null;
    GC imageGC = null;
    try {
        final ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) viewer.getRootEditPart();
        rootEditPart.refresh();
        final IFigure rootFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);
        final EditPart editPart = viewer.getContents();
        editPart.refresh();
        final ERDiagram diagram = (ERDiagram) editPart.getModel();
        final Rectangle rootFigureBounds = ExportToImageAction.getBounds(diagram, rootEditPart, rootFigure.getBounds());
        final Control figureCanvas = viewer.getControl();
        figureCanvasGC = new GC(figureCanvas);

        img = new Image(Display.getCurrent(), rootFigureBounds.width + 20, rootFigureBounds.height + 20);
        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.setAntialias(SWT.OFF);

        final Graphics imgGraphics = new SWTGraphics(imageGC);
        imgGraphics.setBackgroundColor(figureCanvas.getBackground());
        imgGraphics.fillRectangle(0, 0, rootFigureBounds.width + 20, rootFigureBounds.height + 20);
        imgGraphics.translate(ExportToImageAction.translateX(rootFigureBounds.x),
                ExportToImageAction.translateY(rootFigureBounds.y));
        rootFigure.paint(imgGraphics);
    } finally {
        if (figureCanvasGC != null) {
            figureCanvasGC.dispose();
        }
        if (imageGC != null) {
            imageGC.dispose();
        }
    }
}
项目:OpenSPIFe    文件:ZoomSweepTool.java   
@Override
protected void addFeedback(IFigure figure) {
    LayerManager lm = (LayerManager)getCurrentViewer().getEditPartRegistry().get(LayerManager.ID);
    if (lm != null) {
        lm.getLayer(TimelineConstants.LAYER_FEEDBACK_DATA).add(figure);
    }
}
项目:OpenSPIFe    文件:ZoomSweepTool.java   
@Override
protected void removeFeedback(IFigure figure) {
    LayerManager lm = (LayerManager)getCurrentViewer().getEditPartRegistry().get(LayerManager.ID);
    if (lm != null) {
        lm.getLayer(TimelineConstants.LAYER_FEEDBACK_DATA).remove(figure);
    }
}
项目:OpenSPIFe    文件:TimelineFeedbackManager.java   
public TimelineFeedbackManager(TimelineViewer timelineViewer, EPlan plan,
                               AbstractEditPolicy policy) {
    this.timelineViewer = timelineViewer;
    this.editPolicy = policy;
    layerManager = (LayerManager)timelineViewer.getEditPartRegistry().get(LayerManager.ID);
    feedbackLayerData = layerManager.getLayer(TimelineConstants.LAYER_FEEDBACK_DATA);
    map = new HashMap<Rectangle, InvalidRangeRectangleFigure>();
   planAdvisorMember = PlanAdvisorMember.get(plan);
   timelineViewer.getControl().addDragDetectListener( this );
   timelineViewer.getControl().addMouseListener( this );
}
项目:gef-gwt    文件:RulerEditPart.java   
public IFigure getGuideLayer() {
    LayerManager lm = (LayerManager) diagramViewer.getEditPartRegistry()
            .get(LayerManager.ID);
    if (lm != null)
        return lm.getLayer(LayerConstants.GUIDE_LAYER);
    return null;
}
项目:gef-gwt    文件:AbstractTool.java   
/**
 * Convenience method to add the given figure to the feedback layer.
 * 
 * @param figure
 *            the feedback being added
 */
protected void addFeedback(IFigure figure) {
    LayerManager lm = (LayerManager) getCurrentViewer()
            .getEditPartRegistry().get(LayerManager.ID);
    if (lm == null)
        return;
    lm.getLayer(LayerConstants.FEEDBACK_LAYER).add(figure);
}
项目:gef-gwt    文件:AbstractTool.java   
/**
 * Convenience method to removes a figure from the feedback layer.
 * 
 * @param figure
 *            the figure being removed
 */
protected void removeFeedback(IFigure figure) {
    LayerManager lm = (LayerManager) getCurrentViewer()
            .getEditPartRegistry().get(LayerManager.ID);
    if (lm == null)
        return;
    lm.getLayer(LayerConstants.FEEDBACK_LAYER).remove(figure);
}
项目:gef-gwt    文件:DirectEditManager.java   
/**
 * Asks the source edit part to erase source feedback.
 */
protected void eraseFeedback() {
    if (showingFeedback) {
        LayerManager.Helper.find(getEditPart())
                .getLayer(LayerConstants.FEEDBACK_LAYER)
                .remove(getCellEditorFrame());
        cellEditorFrame = null;
        getEditPart().eraseSourceFeedback(getDirectEditRequest());
        showingFeedback = false;
    }
}
项目:birt    文件:ReportPrintGraphicalViewerOperation.java   
public ReportPrintGraphicalViewerOperation( GraphicalViewer g,
        Drawable drawable, Device device, Rectangle region )
{
    this.device = device;
    this.region = region;
    this.drawable = drawable;
    this.viewer = g;

    LayerManager lm = (LayerManager) viewer.getEditPartRegistry( )
            .get( LayerManager.ID );
    IFigure f = lm.getLayer( LayerConstants.PRINTABLE_LAYERS );

    this.printSource = f;
}
项目:birt    文件:EditorRulerEditPart.java   
public IFigure getGuideLayer( )
{
    LayerManager lm = (LayerManager) diagramViewer.getEditPartRegistry( )
            .get( LayerManager.ID );
    if ( lm != null )
        return lm.getLayer( LayerConstants.GUIDE_LAYER );
    return null;
}
项目:birt    文件:ReportElementEditPart.java   
private IFigure getHandleLayer( )
{
    super.getLayer( LayerConstants.HANDLE_LAYER );
    LayerManager manager = (LayerManager) getViewer( ).getEditPartRegistry( )
            .get( LayerManager.ID );
    return manager.getLayer( LayerConstants.HANDLE_LAYER );
}
项目:birt    文件:ShowDragInfomationProcessor.java   
public void removeLabelFigue()
{
    if (labelFigure != null)
    {
        LayerManager lm = (LayerManager) editpart.getViewer( )
                .getEditPartRegistry().get(LayerManager.ID);
        if (lm == null)
            return;
        lm.getLayer(LayerConstants.FEEDBACK_LAYER).remove(  labelFigure );
        labelFigure = null;
    }
}
项目:birt    文件:ShowDragInfomationProcessor.java   
protected void addFeedback(IFigure figure) {
    LayerManager lm = (LayerManager) editpart.getViewer( )
            .getEditPartRegistry().get(LayerManager.ID);
    if (lm == null)
        return;
    lm.getLayer(LayerConstants.FEEDBACK_LAYER).add(figure);
}
项目:subclipse    文件:SaveImageDialog.java   
protected void okPressed() {
        settings.put(LAST_OUTPUT, fileTypeCombo.getSelectionIndex());

        BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
            public void run() {
                GraphicalViewer viewer = editor.getViewer();
                ScalableRootEditPart rootEditPart = (ScalableRootEditPart)viewer.getEditPartRegistry().get(LayerManager.ID);
                IFigure rootFigure = ((LayerManager)rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);
                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;
                String extension;
                if (fileTypeCombo.getText().equals("JPEG")) extension = "jpg";
                else extension = fileTypeCombo.getText().toLowerCase();
                String fileName = null;
                if (!fileText.getText().trim().endsWith("." + extension))
                    fileName = fileText.getText().trim() + "." + extension;
                else
                    fileName = fileText.getText().trim();
                int imageType = SWT.IMAGE_BMP;
                switch (fileTypeCombo.getSelectionIndex()) {
                case BMP:
                    imageType = SWT.IMAGE_BMP;
                    break;
                case JPEG:
                    imageType = SWT.IMAGE_JPEG;
                    break;  
                case PNG:
                    imageType = SWT.IMAGE_PNG;
                    break;                  
                default:
                    break;
                }               
                imgLoader.save(fileName, imageType);

                figureCanvasGC.dispose();
                imageGC.dispose();
                img.dispose();
            }       
        });     

        super.okPressed();
    }
项目:ermasterr    文件:RelationBendpointEditPolicy.java   
/**
 * {@inheritDoc}
 */
@Override
protected void showMoveBendpointFeedback(final BendpointRequest bendpointrequest) {
    final Relation relation = (Relation) getHost().getModel();
    final RelationEditPart editPart = (RelationEditPart) getHost();

    if (relation.getSource() == relation.getTarget()) {
        if (bendpointrequest.getIndex() != 1) {
            return;
        }
        final Point point = bendpointrequest.getLocation();
        getConnection().translateToRelative(point);
        final Bendpoint rate = getRate(point);
        rate.setRelative(true);

        final float rateX = (100f - (rate.getX() / 2)) / 100;
        final float rateY = (100f - (rate.getY() / 2)) / 100;

        final ERTableEditPart tableEditPart = (ERTableEditPart) editPart.getSource();
        final Rectangle bounds = tableEditPart.getFigure().getBounds();

        final Rectangle rect = new Rectangle();
        rect.x = (int) (bounds.x + (bounds.width * rateX));
        rect.y = (int) (bounds.y + (bounds.height * rateY));
        rect.width = bounds.width * rate.getX() / 100;
        rect.height = bounds.height * rate.getY() / 100;

        relation.setSourceLocationp(100, (int) (100 * rateY));

        relation.setTargetLocationp((int) (100 * rateX), 100);

        final LayerManager manager = (LayerManager) tableEditPart.getRoot();
        final IFigure layer = manager.getLayer(LayerConstants.PRIMARY_LAYER);
        getFeedbackLayer().setBounds(layer.getBounds());

        final List children = getFeedbackLayer().getChildren();
        children.clear();
        getFeedbackLayer().repaint();

        final ZoomManager zoomManager = ((ScalableFreeformRootEditPart) getHost().getRoot()).getZoomManager();
        final double zoom = zoomManager.getZoom();

        final Polyline feedbackFigure = new Polyline();
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom), (int) (rect.y * zoom)));
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom), (int) ((rect.y + rect.height) * zoom)));
        feedbackFigure.addPoint(new Point((int) ((rect.x + rect.width) * zoom), (int) ((rect.y + rect.height) * zoom)));
        feedbackFigure.addPoint(new Point((int) ((rect.x + rect.width) * zoom), (int) (rect.y * zoom)));
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom), (int) (rect.y * zoom)));

        feedbackFigure.setLineStyle(SWT.LINE_DASH);

        feedbackFigure.translateToRelative(feedbackFigure.getLocation());

        addFeedback(feedbackFigure);

    } else {
        super.showMoveBendpointFeedback(bendpointrequest);
    }

}
项目:ermasterr    文件:ImageInfo.java   
public static ImageInfo createImage(final GraphicalViewer viewer, final int format, final String path) {
    GC figureCanvasGC = null;
    GC imageGC = null;

    try {
        final ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) viewer.getRootEditPart();
        rootEditPart.refresh();
        final IFigure rootFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);

        final EditPart editPart = viewer.getContents();
        editPart.refresh();
        final ERDiagram diagram = (ERDiagram) editPart.getModel();

        final Rectangle rootFigureBounds = getBounds(diagram, rootEditPart, rootFigure.getBounds());

        final Control figureCanvas = viewer.getControl();
        figureCanvasGC = new GC(figureCanvas);

        final Image img = new Image(Display.getCurrent(), rootFigureBounds.width + 20, rootFigureBounds.height + 20);
        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.setAntialias(SWT.OFF);
        // imageGC.setInterpolation(SWT.HIGH);

        final Graphics imgGraphics = new SWTGraphics(imageGC);
        imgGraphics.setBackgroundColor(figureCanvas.getBackground());
        imgGraphics.fillRectangle(0, 0, rootFigureBounds.width + 20, rootFigureBounds.height + 20);

        final int translateX = translateX(rootFigureBounds.x);
        final int translateY = translateY(rootFigureBounds.y);

        imgGraphics.translate(translateX, translateY);

        rootFigure.paint(imgGraphics);

        final Map<TableView, Location> tableLoacationMap = getTableLocationMap(rootEditPart, translateX, translateY, diagram);

        final ImageInfo imageInfo = new ImageInfo(img, tableLoacationMap);
        imageInfo.setFormat(format);
        imageInfo.setPath(path);

        return imageInfo;

    } finally {
        if (figureCanvasGC != null) {
            figureCanvasGC.dispose();
        }
        if (imageGC != null) {
            imageGC.dispose();
        }
    }
}
项目:ermaster-k    文件:RelationBendpointEditPolicy.java   
/**
 * {@inheritDoc}
 */
@Override
protected void showMoveBendpointFeedback(BendpointRequest bendpointrequest) {
    Relation relation = (Relation) getHost().getModel();
    RelationEditPart editPart = (RelationEditPart) this.getHost();

    Category currentCategory = getDiagram().getCurrentCategory();

    if (relation.getSource() == relation.getTarget()) {
        if (bendpointrequest.getIndex() != 1) {
            return;
        }
        Point point = bendpointrequest.getLocation();
        this.getConnection().translateToRelative(point);
        Bendpoint rate = this.getRate(point);
        rate.setRelative(true);

        float rateX = (100f - (rate.getX() / 2)) / 100;
        float rateY = (100f - (rate.getY() / 2)) / 100;

        ERTableEditPart tableEditPart = (ERTableEditPart) editPart
                .getSource();
        Rectangle bounds = tableEditPart.getFigure().getBounds();

        Rectangle rect = new Rectangle();
        rect.x = (int) (bounds.x + (bounds.width * rateX));
        rect.y = (int) (bounds.y + (bounds.height * rateY));
        rect.width = (int) (bounds.width * rate.getX() / 100);
        rect.height = (int) (bounds.height * rate.getY() / 100);

        relation.setSourceLocationp(currentCategory, 100, (int) (100 * rateY));

        relation.setTargetLocationp(currentCategory, (int) (100 * rateX), 100);

        LayerManager manager = (LayerManager) tableEditPart.getRoot();
        IFigure layer = manager.getLayer(LayerConstants.PRIMARY_LAYER);
        this.getFeedbackLayer().setBounds(layer.getBounds());

        List children = this.getFeedbackLayer().getChildren();
        children.clear();
        this.getFeedbackLayer().repaint();

        ZoomManager zoomManager = ((ScalableFreeformRootEditPart) this
                .getHost().getRoot()).getZoomManager();
        double zoom = zoomManager.getZoom();

        Polyline feedbackFigure = new Polyline();
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom),
                (int) (rect.y * zoom)));
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom),
                (int) ((rect.y + rect.height) * zoom)));
        feedbackFigure.addPoint(new Point(
                (int) ((rect.x + rect.width) * zoom),
                (int) ((rect.y + rect.height) * zoom)));
        feedbackFigure
                .addPoint(new Point((int) ((rect.x + rect.width) * zoom),
                        (int) (rect.y * zoom)));
        feedbackFigure.addPoint(new Point((int) (rect.x * zoom),
                (int) (rect.y * zoom)));

        feedbackFigure.setLineStyle(SWT.LINE_DASH);

        feedbackFigure.translateToRelative(feedbackFigure.getLocation());

        this.addFeedback(feedbackFigure);

    } else {
        super.showMoveBendpointFeedback(bendpointrequest);
    }

}
项目:ermaster-k    文件:ImageInfo.java   
public static ImageInfo createImage(GraphicalViewer viewer, int format,
        String path) {
    GC figureCanvasGC = null;
    GC imageGC = null;

    try {
        ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) viewer
                .getRootEditPart();
        rootEditPart.refresh();
        IFigure rootFigure = ((LayerManager) rootEditPart)
                .getLayer(LayerConstants.PRINTABLE_LAYERS);

        EditPart editPart = viewer.getContents();
        editPart.refresh();
        ERDiagram diagram = (ERDiagram) editPart.getModel();

        Rectangle rootFigureBounds = getBounds(diagram, rootEditPart,
                rootFigure.getBounds());

        Control figureCanvas = viewer.getControl();
        figureCanvasGC = new GC(figureCanvas);

        Image img = new Image(Display.getCurrent(),
                rootFigureBounds.width + 20, rootFigureBounds.height + 20);
        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.setAntialias(SWT.OFF);
        // imageGC.setInterpolation(SWT.HIGH);

        Graphics imgGraphics = new SWTGraphics(imageGC);
        imgGraphics.setBackgroundColor(figureCanvas.getBackground());
        imgGraphics.fillRectangle(0, 0, rootFigureBounds.width + 20,
                rootFigureBounds.height + 20);

        int translateX = translateX(rootFigureBounds.x);
        int translateY = translateY(rootFigureBounds.y);

        imgGraphics.translate(translateX, translateY);

        rootFigure.paint(imgGraphics);

        Map<TableView, Location> tableLoacationMap = getTableLocationMap(
                rootEditPart, translateX, translateY, diagram);

        ImageInfo imageInfo = new ImageInfo(img, tableLoacationMap);
        imageInfo.setFormat(format);
        imageInfo.setPath(path);

        return imageInfo;

    } finally {
        if (figureCanvasGC != null) {
            figureCanvasGC.dispose();
        }
        if (imageGC != null) {
            imageGC.dispose();
        }
    }
}
项目:ForgedUI-Eclipse    文件:ImageSaveUtil.java   
private static void saveEditorContentsAsImage(IEditorPart editorPart,
        GraphicalViewer viewer, String saveFilePath, int format) {
    /*
     * 1. First get the figure whose visuals we want to save as image. So we
     * would like to save the rooteditpart which actually hosts all the
     * printable layers.
     * 
     * NOTE: ScalableRootEditPart manages layers and is registered
     * graphicalviewer's editpartregistry with the key LayerManager.ID ...
     * well that is because ScalableRootEditPart manages all layers that are
     * hosted on a FigureCanvas. Many layers exist for doing different
     * things
     */
    Map editPartRegistry = viewer.getEditPartRegistry();
    LayerManager rootEditPart = (LayerManager) editPartRegistry.get(LayerManager.ID);
    IFigure rootFigure = rootEditPart.getLayer(LayerConstants.PRINTABLE_LAYERS);

    for (Object obj : editPartRegistry.values()) {
        if (obj instanceof ScreenEditPart){
            rootFigure = ((ScreenEditPart)obj).getFigure();
            break;
        }
    }
    Rectangle rootFigureBounds = rootFigure.getBounds();

    /*
     * 2. Now we want to get the GC associated with the control on which all
     * figures are painted by SWTGraphics. For that first get the SWT
     * Control associated with the viewer on which the rooteditpart is set
     * as contents
     */
    Control figureCanvas = viewer.getControl();
    GC figureCanvasGC = new GC(figureCanvas);

    /*
     * 3. Create a new Graphics for an Image onto which we want to paint
     * rootFigure
     */
    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);

    /*
     * 4. Draw rootFigure onto image. After that image will be ready for
     * save
     */
    rootFigure.paint(imgGraphics);

    /* 5. Save image */
    ImageData[] imgData = new ImageData[1];
    imgData[0] = img.getImageData();

    ImageLoader imgLoader = new ImageLoader();
    imgLoader.data = imgData;
    imgLoader.save(saveFilePath, format);

    /* release OS resources */
    figureCanvasGC.dispose();
    imageGC.dispose();
    img.dispose();
}
项目:NEXCORE-UML-Modeler    文件:SaveToImageAction.java   
/**
     * @see org.eclipse.jface.action.Action#run()
     */
    public void run() {

        if (getSelectedObjects().size() < 1)
            return;

        Object obj = getSelectedObjects().get(0);

        if (!(obj instanceof EditPart))
            return;

        ScalableFreeformRootEditPart root = (ScalableFreeformRootEditPart) ((EditPart) obj).getRoot();
        ;
        ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) root.getViewer();

        FileDialog dlg = new FileDialog(viewer.getControl().getShell(), SWT.SAVE);

        dlg.setFilterNames(new String[] { "JPEG Files (*.jpg)", "PNG Files (*.png)", "Bitmap Files (*.bmp)" });
        dlg.setFilterExtensions(new String[] { "*.jpg", "*.png", "*.bmp" });

        String fileName = dlg.open();

        if (fileName == null)
            return;

        LayerManager lm = (LayerManager) viewer.getEditPartRegistry().get(LayerManager.ID);
        IFigure figure = lm.getLayer(LayerConstants.PRINTABLE_LAYERS);
//        IFigure backgroundfigure = lm.getLayer(LayerConstants.FEEDBACK_LAYER);

//        Display display = getWorkbenchPart().getSite().getWorkbenchWindow().getWorkbench().getDisplay();

//        Image img = new Image(display, figure.getSize().width, figure.getSize().height);
//        GC gc = new GC(img);
//        SWTGraphics graphics = new SWTGraphics(gc);
//
//        figure.setLocation(new Point(0, 0));
//        backgroundfigure.setLocation(new Point(0, 0));
//        try {
//            root.getZoomManager().setZoom(0.001);
//            figure.paint(graphics);
//            backgroundfigure.paint(graphics);
//        } finally {
//            root.getZoomManager().setZoom(1);
//            figure.paint(graphics);
//            gc.dispose();
//            graphics.dispose();
//        }

        Diagram diagram = (Diagram) ((EditPart) obj).getModel();
        DiagramImageUtil diagramUtil = new DiagramImageUtil(diagram);
        Display.getDefault().syncExec(diagramUtil);
        Image img = diagramUtil.getDiagramImage();

        ImageLoader loader = new ImageLoader();
        if (img == null) {
            img = new Image(null, figure.getSize().width, figure.getSize().height);
        }
        loader.data = new ImageData[] { img.getImageData() };

        if (fileName.toLowerCase().endsWith("jpg")) {
            loader.save(fileName, SWT.IMAGE_JPEG);
        } else if (fileName.toLowerCase().endsWith("png")) {
            loader.save(fileName, SWT.IMAGE_PNG);
        } else {
            loader.save(fileName, SWT.IMAGE_BMP);
        }
    }
项目:statecharts    文件:DirectEditManagerEx.java   
private void showCellEditorFrame() {
    LayerManager.Helper.find(getEditPart())
            .getLayer(LayerConstants.FEEDBACK_LAYER)
            .add(getCellEditorFrame());
    placeBorder();
}
项目:SecureBPMN    文件:ImageExportMarshaller.java   
private void marshallImage() {
  try {

    // Retrieve GraphicalViewer from the save handler
    final GraphicalViewer graphicalViewer = ActivitiDiagramEditor.getActiveGraphicalViewer();

    if (graphicalViewer == null || graphicalViewer.getEditPartRegistry() == null)
      return;
    final ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) graphicalViewer.getEditPartRegistry().get(LayerManager.ID);
    final IFigure rootFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);
    final IFigure gridFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.GRID_LAYER);
    final Rectangle rootFigureBounds = rootFigure.getBounds();

    final boolean toggleRequired = gridFigure.isShowing();

    final Display display = Display.getDefault();

    final Image img = new Image(display, rootFigureBounds.width, rootFigureBounds.height);
    final GC imageGC = new GC(img);
    final SWTGraphics grap = new SWTGraphics(imageGC);

    // Access UI thread from runnable to print the canvas to the image
    display.syncExec(new Runnable() {

      public void run() {
        if (toggleRequired) {
          // Disable any grids temporarily
          gridFigure.setVisible(false);
        }
        // Deselect any selections
        graphicalViewer.deselectAll();
        rootFigure.paint(grap);
      }
    });

    ImageLoader imgLoader = new ImageLoader();
    imgLoader.data = new ImageData[] { img.getImageData() };

    ByteArrayOutputStream baos = new ByteArrayOutputStream(imgLoader.data.length);

    imgLoader.save(baos, SWT.IMAGE_PNG);

    imageGC.dispose();
    img.dispose();

    // Access UI thread from runnable
    display.syncExec(new Runnable() {

      public void run() {
        if (toggleRequired) {
          // Re-enable any grids
          gridFigure.setVisible(true);
        }
      }
    });

    final byte[] bytes = baos.toByteArray();
    final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
    saveResource(getRelativeURIForDiagram(diagram, FILENAME_PATTERN), bais, this.monitor);

  } catch (Exception e) {
    e.printStackTrace();
    addProblemToDiagram(diagram, "An exception occurred while creating the image: " + e.getCause(), null);
  }
}
项目:PDFReporter-Studio    文件:JDRulerEditPart.java   
public IFigure getGuideLayer() {
    LayerManager lm = (LayerManager) diagramViewer.getEditPartRegistry().get(LayerManager.ID);
    if (lm != null)
        return lm.getLayer(LayerConstants.GUIDE_LAYER);
    return null;
}
项目:erflute    文件:ExportToImageAction.java   
public static Image createImage(GraphicalViewer viewer) {
    Image img = null;
    GC figureCanvasGC = null;
    GC imageGC = null;
    try {
        final ScalableFreeformRootEditPart rootEditPart =
                (ScalableFreeformRootEditPart) viewer.getEditPartRegistry().get(LayerManager.ID);
        rootEditPart.refresh();
        final IFigure rootFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);

        final Object diagram = extractDiagram(viewer);
        final Rectangle rootFigureBounds = getBounds(diagram, rootEditPart, rootFigure.getBounds());

        final Control figureCanvas = viewer.getControl();
        figureCanvasGC = new GC(figureCanvas);

        img = new Image(Display.getCurrent(), rootFigureBounds.width + 20, rootFigureBounds.height + 20);
        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.setAntialias(SWT.OFF);
        // imageGC.setInterpolation(SWT.HIGH);

        final Graphics imgGraphics = new SWTGraphics(imageGC);
        imgGraphics.setBackgroundColor(figureCanvas.getBackground());
        imgGraphics.fillRectangle(0, 0, rootFigureBounds.width + 20, rootFigureBounds.height + 20);

        imgGraphics.translate(translateX(rootFigureBounds.x), translateY(rootFigureBounds.y));

        rootFigure.paint(imgGraphics);

        return img;

    } finally {
        if (figureCanvasGC != null) {
            figureCanvasGC.dispose();
        }
        if (imageGC != null) {
            imageGC.dispose();
        }
    }
}