Package edu.uci.ics.jung.visualization.transform.shape

Examples of edu.uci.ics.jung.visualization.transform.shape.GraphicsDecorator


        }
        return rc.getMultiLayerTransformer().getTransformer(Layer.VIEW).transform(s).intersects(deviceRectangle);
    }

    protected void paintShapeForVertex(RenderContext<V, E> rc, V v, Shape shape) {
        GraphicsDecorator g = rc.getGraphicsContext();
        Paint oldPaint = g.getPaint();
        Rectangle r = shape.getBounds();
        float y2 = (float) r.getMaxY();
        if (cyclic) {
            y2 = (float) (r.getMinY() + r.getHeight() / 2);
        }

        Paint fillPaint = null;
        if (pickedState != null && pickedState.isPicked(v)) {
            fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r.getMinX(),
                            y2, pickedColor, cyclic);
        } else if (v instanceof Graph) {
            fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r.getMinX(),
                            y2, graphColor, cyclic);
        } else if (v instanceof VertexInfo) {
            VertexInfo vert = (VertexInfo) v;
            if (vert.getIsFailedVertex()) {
                fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                .getMinX(), y2, Color.red, cyclic);
            } else if (vert.isStartState()) {
                fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                .getMinX(), y2, firstStateColor, cyclic);
            } else if (vert.getIsVisited()) {
                if (vert.getIsCurrSeq()) {
                    fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                    .getMinX(), y2, visColor, cyclic);
                } else {
                    fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                    .getMinX(), y2, dispColor, cyclic);
                }
            } else if (vert.getIsDisplayed()) {
                fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                .getMinX(), y2, dispColor, cyclic);
            } else {
                fillPaint = new GradientPaint((float) r.getMinX(), (float) r.getMinY(), backFillColor, (float) r
                                .getMinX(), y2, stanColor, cyclic);
            }
        }
        if (fillPaint != null) {
            g.setPaint(fillPaint);
            g.fill(shape);
            g.setPaint(oldPaint);
        }
        Paint drawPaint = rc.getVertexDrawPaintTransformer().transform(v);
        if (drawPaint != null) {
            g.setPaint(drawPaint);
        }
        Stroke oldStroke = g.getStroke();
        Stroke stroke = rc.getVertexStrokeTransformer().transform(v);
        if (stroke != null) {
            g.setStroke(stroke);
        }
        g.draw(shape);
        g.setPaint(oldPaint);
        g.setStroke(oldStroke);
    }
View Full Code Here


    }
  }
 
  protected void renderGraph(Graphics2D g2d) {
      if(renderContext.getGraphicsContext() == null) {
          renderContext.setGraphicsContext(new GraphicsDecorator(g2d));
        } else {
          renderContext.getGraphicsContext().setDelegate(g2d);
        }
        renderContext.setScreenDevice(this);
      Layout<V,E> layout = model.getGraphLayout();
View Full Code Here

            Point2D p = layout.transform(v);
            p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p);
            float x = (float)p.getX();
            float y = (float)p.getY();

            GraphicsDecorator g = rc.getGraphicsContext();
            boolean outlineImages = false;
            Transformer<V,Icon> vertexIconFunction = rc.getVertexIconTransformer();
           
            if(vertexIconFunction instanceof DemoVertexIconTransformer) {
                outlineImages = ((DemoVertexIconTransformer<V>)vertexIconFunction).isOutlineImages();
            }
            Icon icon = vertexIconFunction.transform(v);
            if(icon == null || outlineImages) {
               
                Shape s = AffineTransform.getTranslateInstance(x,y).
                    createTransformedShape(rc.getVertexShapeTransformer().transform(v));
                paintShapeForVertex(rc, v, s);
            }
            if(icon != null) {
                int xLoc = (int) (x - icon.getIconWidth()/2);
                int yLoc = (int) (y - icon.getIconHeight()/2);
                icon.paintIcon(rc.getScreenDevice(), g.getDelegate(), xLoc, yLoc);
            }
        }
View Full Code Here

    }
   
    @Override
    public void paintIconForVertex(RenderContext<V,E> rc, V v, Layout<V,E> layout) {

        GraphicsDecorator g = rc.getGraphicsContext();
        TransformingGraphics g2d = (TransformingGraphics)g;
        boolean vertexHit = true;
        // get the shape to be rendered
        Shape shape = rc.getVertexShapeTransformer().transform(v);
       
View Full Code Here

        }
        return rc.getMultiLayerTransformer().getTransformer(Layer.VIEW).transform(s).intersects(deviceRectangle);
    }

    protected void paintShapeForVertex(RenderContext<V,E> rc, V v, Shape shape) {
        GraphicsDecorator g = rc.getGraphicsContext();
        Paint oldPaint = g.getPaint();
        Rectangle r = shape.getBounds();
        float y2 = (float)r.getMaxY();
        if(cyclic) {
          y2 = (float)(r.getMinY()+r.getHeight()/2);
        }
       
        Paint fillPaint = null;
        if(pickedState != null && pickedState.isPicked(v)) {
          fillPaint = new GradientPaint((float)r.getMinX(), (float)r.getMinY(), pickedColorOne,
                (float)r.getMinX(), y2, pickedColorTwo, cyclic);
        } else {
          fillPaint = new GradientPaint((float)r.getMinX(), (float)r.getMinY(), colorOne,
            (float)r.getMinX(), y2, colorTwo, cyclic);
        }
        if(fillPaint != null) {
            g.setPaint(fillPaint);
            g.fill(shape);
            g.setPaint(oldPaint);
        }
        Paint drawPaint = rc.getVertexDrawPaintTransformer().transform(v);
        if(drawPaint != null) {
            g.setPaint(drawPaint);
        }
        Stroke oldStroke = g.getStroke();
        Stroke stroke = rc.getVertexStrokeTransformer().transform(v);
        if(stroke != null) {
            g.setStroke(stroke);
        }
        g.draw(shape);
        g.setPaint(oldPaint);
        g.setStroke(oldStroke);
    }
View Full Code Here

        float x = (float) pt.getX();
        float y = (float) pt.getY();

        Component component = prepareRenderer(rc, rc.getVertexLabelRenderer(), label,
            rc.getPickedVertexState().isPicked(v), v);
        GraphicsDecorator g = rc.getGraphicsContext();
        Dimension d = component.getPreferredSize();
        AffineTransform xform = AffineTransform.getTranslateInstance(x, y);
       
      Shape shape = rc.getVertexShapeTransformer().transform(v);
      shape = xform.createTransformedShape(shape);
      if(rc.getGraphicsContext() instanceof TransformingGraphics) {
        BidirectionalTransformer transformer = ((TransformingGraphics)rc.getGraphicsContext()).getTransformer();
        if(transformer instanceof ShapeTransformer) {
          ShapeTransformer shapeTransformer = (ShapeTransformer)transformer;
          shape = shapeTransformer.transform(shape);
        }
      }
      Rectangle2D bounds = shape.getBounds2D();

      Point p = null;
      if(position == Position.AUTO) {
        Dimension vvd = rc.getScreenDevice().getSize();
        if(vvd.width == 0 || vvd.height == 0) {
          vvd = rc.getScreenDevice().getPreferredSize();
        }
        p = getAnchorPoint(bounds, d, positioner.getPosition(x, y, vvd));
      } else {
        p = getAnchorPoint(bounds, d, position);
      }
        g.draw(component, rc.getRendererPane(), p.x, p.y, d.width, d.height, true);
    }
View Full Code Here

   
    /**
     * Paint <code>v</code>'s icon on <code>g</code> at <code>(x,y)</code>.
     */
    protected void paintIconForVertex(RenderContext<V,E> rc, V v, Layout<V,E> layout) {
        GraphicsDecorator g = rc.getGraphicsContext();
        boolean vertexHit = true;
        // get the shape to be rendered
        Shape shape = rc.getVertexShapeTransformer().transform(v);
       
        Point2D p = layout.transform(v);
        p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p);
        float x = (float)p.getX();
        float y = (float)p.getY();
        // create a transform that translates to the location of
        // the vertex to be rendered
        AffineTransform xform = AffineTransform.getTranslateInstance(x,y);
        // transform the vertex shape with xtransform
        shape = xform.createTransformedShape(shape);
       
        vertexHit = vertexHit(rc, shape);
            //rc.getViewTransformer().transform(shape).intersects(deviceRectangle);

        if (vertexHit) {
          if(rc.getVertexIconTransformer() != null) {
            Icon icon = rc.getVertexIconTransformer().transform(v);
            if(icon != null) {
           
                 g.draw(icon, rc.getScreenDevice(), shape, (int)x, (int)y);

            } else {
              paintShapeForVertex(rc, v, shape);
            }
          } else {
View Full Code Here

        }
        return vt.transform(s).intersects(deviceRectangle);
    }

    protected void paintShapeForVertex(RenderContext<V,E> rc, V v, Shape shape) {
        GraphicsDecorator g = rc.getGraphicsContext();
        Paint oldPaint = g.getPaint();
        Paint fillPaint = rc.getVertexFillPaintTransformer().transform(v);
        if(fillPaint != null) {
            g.setPaint(fillPaint);
            g.fill(shape);
            g.setPaint(oldPaint);
        }
        Paint drawPaint = rc.getVertexDrawPaintTransformer().transform(v);
        if(drawPaint != null) {
          g.setPaint(drawPaint);
          Stroke oldStroke = g.getStroke();
          Stroke stroke = rc.getVertexStrokeTransformer().transform(v);
          if(stroke != null) {
            g.setStroke(stroke);
          }
          g.draw(shape);
          g.setPaint(oldPaint);
          g.setStroke(oldStroke);
        }
    }
View Full Code Here

        float x1 = (float) p1.getX();
        float y1 = (float) p1.getY();
        float x2 = (float) p2.getX();
        float y2 = (float) p2.getY();

        GraphicsDecorator g = rc.getGraphicsContext();
        float distX = x2 - x1;
        float distY = y2 - y1;
        double totalLength = Math.sqrt(distX * distX + distY * distY);

        double closeness = rc.getEdgeLabelClosenessTransformer().transform(Context.<Graph<V,E>,E>getInstance(graph, e)).doubleValue();

        int posX = (int) (x1 + (closeness) * distX);
        int posY = (int) (y1 + (closeness) * distY);

        int xDisplacement = (int) (rc.getLabelOffset() * (distY / totalLength));
        int yDisplacement = (int) (rc.getLabelOffset() * (-distX / totalLength));
       
        Component component = prepareRenderer(rc, rc.getEdgeLabelRenderer(), label,
                rc.getPickedEdgeState().isPicked(e), e);
       
        Dimension d = component.getPreferredSize();

        Shape edgeShape = rc.getEdgeShapeTransformer().transform(Context.<Graph<V,E>,E>getInstance(graph, e));
       
        double parallelOffset = 1;

        parallelOffset += rc.getParallelEdgeIndexFunction().getIndex(graph, e);

        parallelOffset *= d.height;
        if(edgeShape instanceof Ellipse2D) {
            parallelOffset += edgeShape.getBounds().getHeight();
            parallelOffset = -parallelOffset;
        }
       
       
        AffineTransform old = g.getTransform();
        AffineTransform xform = new AffineTransform(old);
        xform.translate(posX+xDisplacement, posY+yDisplacement);
        double dx = x2 - x1;
        double dy = y2 - y1;
        if(rc.getEdgeLabelRenderer().isRotateEdgeLabels()) {
            double theta = Math.atan2(dy, dx);
            if(dx < 0) {
                theta += Math.PI;
            }
            xform.rotate(theta);
        }
        if(dx < 0) {
            parallelOffset = -parallelOffset;
        }
       
        xform.translate(-d.width/2, -(d.height/2-parallelOffset));
        g.setTransform(xform);
        g.draw(component, rc.getRendererPane(), 0, 0, d.width, d.height, true);

        g.setTransform(old);
    }
View Full Code Here

 
  protected EdgeArrowRenderingSupport edgeArrowRenderingSupport =
    new BasicEdgeArrowRenderingSupport();

    public void paintEdge(RenderContext<V,E> rc, Layout<V, E> layout, E e) {
        GraphicsDecorator g2d = rc.getGraphicsContext();
        Graph<V,E> graph = layout.getGraph();
        if (!rc.getEdgeIncludePredicate().evaluate(Context.<Graph<V,E>,E>getInstance(graph,e)))
            return;
       
        // don't draw edge if either incident vertex is not drawn
        Pair<V> endpoints = graph.getEndpoints(e);
        V v1 = endpoints.getFirst();
        V v2 = endpoints.getSecond();
        if (!rc.getVertexIncludePredicate().evaluate(Context.<Graph<V,E>,V>getInstance(graph,v1)) ||
            !rc.getVertexIncludePredicate().evaluate(Context.<Graph<V,E>,V>getInstance(graph,v2)))
            return;
       
        Stroke new_stroke = rc.getEdgeStrokeTransformer().transform(e);
        Stroke old_stroke = g2d.getStroke();
        if (new_stroke != null)
            g2d.setStroke(new_stroke);
       
        drawSimpleEdge(rc, layout, e);

        // restore paint and stroke
        if (new_stroke != null)
            g2d.setStroke(old_stroke);

    }
View Full Code Here

TOP

Related Classes of edu.uci.ics.jung.visualization.transform.shape.GraphicsDecorator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.