Package com.mxgraph.model

Examples of com.mxgraph.model.mxGeometry


    {
      mxIGraphModel model = graph.getModel();

      if (model.isAncestor(this.parent, parent))
      {
        mxGeometry parentGeo = model.getGeometry(parent);

        while (parent != this.parent)
        {
          result.setX(result.getX() + parentGeo.getX());
          result.setY(result.getY() + parentGeo.getY());

          parent = model.getParent(parent);;
          parentGeo = model.getGeometry(parent);
        }
      }
View Full Code Here


   * existing points for an edge.
   */
  public void setEdgePoints(Object edge, List<mxPoint> points)
  {
    mxIGraphModel model = graph.getModel();
    mxGeometry geometry = model.getGeometry(edge);

    if (geometry == null)
    {
      geometry = new mxGeometry();
      geometry.setRelative(true);
    }
    else
    {
      geometry = (mxGeometry) geometry.clone();
    }

    if (this.parent != null && points != null)
    {
      Object parent = graph.getModel().getParent(edge);

        mxPoint parentOffset = getParentOffset(parent);

        for (mxPoint point : points)
        {
          point.setX(point.getX() - parentOffset.getX());
          point.setY(point.getY() - parentOffset.getY());
        }

    }

    geometry.setPoints(points);
    model.setGeometry(edge, geometry);
  }
View Full Code Here

   * y - Integer that defines the y-coordinate of the new location.
   */
  public mxRectangle setVertexLocation(Object vertex, double x, double y)
  {
    mxIGraphModel model = graph.getModel();
    mxGeometry geometry = model.getGeometry(vertex);
    mxRectangle result = null;

    if (geometry != null)
    {
      result = new mxRectangle(x, y, geometry.getWidth(),
          geometry.getHeight());

      mxGraphView graphView = graph.getView();

      // Checks for oversize labels and offset the result
      if (useBoundingBox)
      {
        mxCellState state = graphView.getState(vertex);

        if (state != null)
        {
          double scale = graph.getView().getScale();
          mxRectangle box = state.getBoundingBox();

          if (state.getBoundingBox().getX() < state.getX())
          {
            x += (state.getX() - box.getX()) / scale;
            result.setWidth(box.getWidth());
          }
          if (state.getBoundingBox().getY() < state.getY())
          {
            y += (state.getY() - box.getY()) / scale;
            result.setHeight(box.getHeight());
          }
        }
      }

      if (this.parent != null)
      {
        Object parent = model.getParent(vertex);

        if (parent != null && parent != this.parent)
        {
          mxPoint parentOffset = getParentOffset(parent);

          x = x - parentOffset.getX();
          y = y - parentOffset.getY();
        }
      }

      if (geometry.getX() != x || geometry.getY() != y)
      {
        geometry = (mxGeometry) geometry.clone();
        geometry.setX(x);
        geometry.setY(y);

        model.setGeometry(vertex, geometry);
      }
    }

View Full Code Here

      {
        Object group = groups[i];
        Object[] children = graph.getChildVertices(group);
        mxRectangle bounds = graph.getBoundingBoxFromGeometry(children);

        mxGeometry geometry = graph.getCellGeometry(group);
        double left = 0;
        double top = 0;
       
        // Adds the size of the title area for swimlanes
        if (this.graph.isSwimlane(group))
        {
          mxRectangle size = graph.getStartSize(group);
          left = size.getWidth();
          top = size.getHeight();
        }
       
        if (bounds != null && geometry != null)
        {
          geometry = (mxGeometry) geometry.clone();
          geometry.setX(geometry.getX() + bounds.getX() - border - left);
          geometry.setY(geometry.getY() + bounds.getY() - border - top);
          geometry.setWidth(bounds.getWidth() + 2 * border + left);
          geometry.setHeight(bounds.getHeight() + 2 * border + top);
          graph.getModel().setGeometry(group, geometry);
          graph.moveCells(children, border + left - bounds.getX(),
              border + top - bounds.getY());
        }
      }
View Full Code Here

  public Object createTargetVertex(MouseEvent e, Object source)
  {
    mxGraph graph = graphComponent.getGraph();
    Object clone = graph.cloneCells(new Object[] { source })[0];
    mxIGraphModel model = graph.getModel();
    mxGeometry geo = model.getGeometry(clone);

    if (geo != null)
    {
      mxPoint point = graphComponent.getPointForEvent(e);
      geo.setX(graph.snap(point.getX() - geo.getWidth() / 2));
      geo.setY(graph.snap(point.getY() - geo.getHeight() / 2));
    }

    return clone;
  }
View Full Code Here

                  mxCellState pstate = graph.getView().getState(
                      dropTarget);
 
                  if (pstate != null)
                  {
                    mxGeometry geo = graph.getModel()
                        .getGeometry(vertex);
 
                    mxPoint origin = pstate.getOrigin();
                    geo.setX(geo.getX() - origin.getX());
                    geo.setY(geo.getY() - origin.getY());
                  }
                }
                else
                {
                  dropTarget = graph.getDefaultParent();
View Full Code Here

   *
   */
  protected void moveLabel(MouseEvent e)
  {
    mxGraph graph = graphComponent.getGraph();
    mxGeometry geometry = graph.getModel().getGeometry(state.getCell());

    if (geometry != null)
    {
      double scale = graph.getView().getScale();
      mxPoint pt = new mxPoint(e.getPoint());

      if (gridEnabledEvent)
      {
        pt = graphComponent.snapScaledPoint(pt);
      }

      double dx = (pt.getX() - first.x) / scale;
      double dy = (pt.getY() - first.y) / scale;

      if (constrainedEvent)
      {
        if (Math.abs(dx) > Math.abs(dy))
        {
          dy = 0;
        }
        else
        {
          dx = 0;
        }
      }

      mxPoint offset = geometry.getOffset();

      if (offset == null)
      {
        offset = new mxPoint();
      }

      dx += offset.getX();
      dy += offset.getY();

      geometry = (mxGeometry) geometry.clone();
      geometry.setOffset(new mxPoint(Math.round(dx), Math.round(dy)));
      graph.getModel().setGeometry(state.getCell(), geometry);
    }
  }
View Full Code Here

  {
    mxGraph graph = graphComponent.getGraph();
    double scale = graph.getView().getScale();

    Object cell = state.getCell();
    mxGeometry geometry = graph.getModel().getGeometry(cell);

    if (geometry != null)
    {
      double dx = (e.getX() - first.x) / scale;
      double dy = (e.getY() - first.y) / scale;

      if (isLabel(index))
      {
        geometry = (mxGeometry) geometry.clone();

        if (geometry.getOffset() != null)
        {
          dx += geometry.getOffset().getX();
          dy += geometry.getOffset().getY();
        }

        if (gridEnabledEvent)
        {
          dx = graph.snap(dx);
          dy = graph.snap(dy);
        }

        geometry.setOffset(new mxPoint(dx, dy));
        graph.getModel().setGeometry(cell, geometry);
      }
      else
      {
        mxRectangle bounds = union(geometry, dx, dy, index);
View Full Code Here

      if (cell != null)
      {
        result = new mxPoint(getOriginForCell(graph.getModel()
            .getParent(cell)));
        mxGeometry geo = graph.getCellGeometry(cell);

        // TODO: Handle offset, relative geometries etc
        if (geo != null)
        {
          result.setX(result.getX() + geo.getX());
          result.setY(result.getY() + geo.getY());
        }
      }

      if (result == null)
      {
View Full Code Here

    h[0] = createHandle(p0.getPoint());
    h[2] = createHandle(pe.getPoint());

    // Creates the middle green edge handle
    mxGeometry geometry = graphComponent.getGraph().getModel().getGeometry(
        state.getCell());
    List<mxPoint> points = geometry.getPoints();
    Point pt = null;

    if (points == null || points.isEmpty())
    {
      pt = new Point((int) (Math.round(p0.getX()) + Math
View Full Code Here

TOP

Related Classes of com.mxgraph.model.mxGeometry

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.