Package com.mxgraph.model

Examples of com.mxgraph.model.mxGeometry


          {
            clones[i] = null;
          }
          else
          {
            mxGeometry g = model.getGeometry(clones[i]);

            if (g != null)
            {
              mxCellState state = view.getState(cells[i]);
              mxCellState pstate = view.getState(model
                  .getParent(cells[i]));

              if (state != null && pstate != null)
              {
                double dx = pstate.getOrigin().getX();
                double dy = pstate.getOrigin().getY();

                if (model.isEdge(clones[i]))
                {
                  // Checks if the source is cloned or sets the terminal point
                  Object src = model.getTerminal(cells[i],
                      true);

                  while (src != null && !tmp.contains(src))
                  {
                    src = model.getParent(src);
                  }

                  if (src == null)
                  {
                    mxPoint pt = state.getAbsolutePoint(0);
                    g.setTerminalPoint(
                        new mxPoint(pt.getX() / scale
                            - trans.getX(), pt
                            .getY()
                            / scale
                            - trans.getY()), true);
                  }

                  // Checks if the target is cloned or sets the terminal point
                  Object trg = model.getTerminal(cells[i],
                      false);

                  while (trg != null && !tmp.contains(trg))
                  {
                    trg = model.getParent(trg);
                  }

                  if (trg == null)
                  {
                    mxPoint pt = state
                        .getAbsolutePoint(state
                            .getAbsolutePointCount() - 1);
                    g.setTerminalPoint(
                        new mxPoint(pt.getX() / scale
                            - trans.getX(), pt
                            .getY()
                            / scale
                            - trans.getY()), false);
                  }

                  // Translates the control points
                  List<mxPoint> points = g.getPoints();

                  if (points != null)
                  {
                    Iterator<mxPoint> it = points
                        .iterator();

                    while (it.hasNext())
                    {
                      mxPoint pt = it.next();
                      pt.setX(pt.getX() + dx);
                      pt.setY(pt.getY() + dy);
                    }
                  }
                }
                else
                {
                  g.setX(g.getX() + dx);
                  g.setY(g.getY() + dy);
                }
              }
            }
          }
        }
View Full Code Here


   */
  public Object createVertex(Object parent, String id, Object value,
      double x, double y, double width, double height, String style,
      boolean relative)
  {
    mxGeometry geometry = new mxGeometry(x, y, width, height);
    geometry.setRelative(relative);

    mxCell vertex = new mxCell(value, geometry, style);
    vertex.setId(id);
    vertex.setVertex(true);
    vertex.setConnectable(true);
View Full Code Here

   * @return Returns the new edge to be inserted.
   */
  public Object createEdge(Object parent, String id, Object value,
      Object source, Object target, String style)
  {
    mxCell edge = new mxCell(value, new mxGeometry(), style);

    edge.setId(id);
    edge.setEdge(true);
    edge.getGeometry().setRelative(true);

View Full Code Here

                && parent != previous)
            {
              mxCellState oldState = view.getState(previous);
              mxPoint o2 = (oldState != null) ? oldState
                  .getOrigin() : zero;
              mxGeometry geo = model.getGeometry(cells[i]);

              if (geo != null)
              {
                double dx = o2.getX() - o1.getX();
                double dy = o2.getY() - o1.getY();

                geo = (mxGeometry) geo.clone();
                geo.translate(dx, dy);

                if (!geo.isRelative()
                    && model.isVertex(cells[i])
                    && !isAllowNegativeCoordinates())
                {
                  geo.setX(Math.max(0, geo.getX()));
                  geo.setY(Math.max(0, geo.getY()));
                }

                model.setGeometry(cells[i], geo);
              }
            }
View Full Code Here

          for (int j = 0; j < edges.length; j++)
          {
            if (!cellSet.contains(edges[j]))
            {
              mxGeometry geo = model.getGeometry(edges[j]);

              if (geo != null)
              {
                mxCellState state = view.getState(edges[j]);

                if (state != null)
                {
                  geo = (mxGeometry) geo.clone();
                  boolean source = state
                      .getVisibleTerminal(true) == cells[i];
                  int n = (source) ? 0 : state
                      .getAbsolutePointCount() - 1;
                  mxPoint pt = state.getAbsolutePoint(n);

                  geo.setTerminalPoint(new mxPoint(pt.getX()
                      / scale - tr.getX(), pt.getY()
                      / scale - tr.getY()), source);
                  model.setTerminal(edges[j], null, source);
                  model.setGeometry(edges[j], geo);
                }
View Full Code Here

   */
  public void swapBounds(Object cell, boolean willCollapse)
  {
    if (cell != null)
    {
      mxGeometry geo = model.getGeometry(cell);

      if (geo != null)
      {
        geo = (mxGeometry) geo.clone();

        updateAlternateBounds(cell, geo, willCollapse);
        geo.swap();

        model.setGeometry(cell, geo);
      }
    }
  }
View Full Code Here

    {
      model.beginUpdate();
      try
      {
        mxRectangle size = getPreferredSizeForCell(cell);
        mxGeometry geo = model.getGeometry(cell);

        if (size != null && geo != null)
        {
          boolean collapsed = isCellCollapsed(cell);
          geo = (mxGeometry) geo.clone();

          if (isSwimlane(cell))
          {
            mxCellState state = view.getState(cell);
            Map<String, Object> style = (state != null) ? state
                .getStyle() : getCellStyle(cell);
            String cellStyle = model.getStyle(cell);

            if (cellStyle == null)
            {
              cellStyle = "";
            }

            if (mxUtils.isTrue(style, mxConstants.STYLE_HORIZONTAL,
                true))
            {
              cellStyle = mxStyleUtils.setStyle(cellStyle,
                  mxConstants.STYLE_STARTSIZE,
                  String.valueOf(size.getHeight() + 8));

              if (collapsed)
              {
                geo.setHeight(size.getHeight() + 8);
              }

              geo.setWidth(size.getWidth());
            }
            else
            {
              cellStyle = mxStyleUtils.setStyle(cellStyle,
                  mxConstants.STYLE_STARTSIZE,
                  String.valueOf(size.getWidth() + 8));

              if (collapsed)
              {
                geo.setWidth(size.getWidth() + 8);
              }

              geo.setHeight(size.getHeight());
            }

            model.setStyle(cell, cellStyle);
          }
          else
          {
            geo.setWidth(size.getWidth());
            geo.setHeight(size.getHeight());
          }

          if (!ignoreChildren && !collapsed)
          {
            mxRectangle bounds = view.getBounds(mxGraphModel
                .getChildren(model, cell));

            if (bounds != null)
            {
              mxPoint tr = view.getTranslate();
              double scale = view.getScale();

              double width = (bounds.getX() + bounds.getWidth())
                  / scale - geo.getX() - tr.getX();
              double height = (bounds.getY() + bounds.getHeight())
                  / scale - geo.getY() - tr.getY();

              geo.setWidth(Math.max(geo.getWidth(), width));
              geo.setHeight(Math.max(geo.getHeight(), height));
            }
          }

          cellsResized(new Object[] { cell },
              new mxRectangle[] { geo });
View Full Code Here

      try
      {
        for (int i = 0; i < cells.length; i++)
        {
          mxRectangle tmp = bounds[i];
          mxGeometry geo = model.getGeometry(cells[i]);

          if (geo != null
              && (geo.getX() != tmp.getX()
                  || geo.getY() != tmp.getY()
                  || geo.getWidth() != tmp.getWidth() || geo
                  .getHeight() != tmp.getHeight()))
          {
            geo = (mxGeometry) geo.clone();

            if (geo.isRelative())
            {
              mxPoint offset = geo.getOffset();

              if (offset != null)
              {
                offset.setX(offset.getX() + tmp.getX());
                offset.setY(offset.getY() + tmp.getY());
              }
            }
            else
            {
              geo.setX(tmp.getX());
              geo.setY(tmp.getY());
            }

            geo.setWidth(tmp.getWidth());
            geo.setHeight(tmp.getHeight());

            if (!geo.isRelative() && model.isVertex(cells[i])
                && !isAllowNegativeCoordinates())
            {
              geo.setX(Math.max(0, geo.getX()));
              geo.setY(Math.max(0, geo.getY()));
            }

            model.setGeometry(cells[i], geo);

            if (isExtendParent(cells[i]))
View Full Code Here

  public void extendParent(Object cell)
  {
    if (cell != null)
    {
      Object parent = model.getParent(cell);
      mxGeometry p = model.getGeometry(parent);

      if (parent != null && p != null && !isCellCollapsed(parent))
      {
        mxGeometry geo = model.getGeometry(cell);

        if (geo != null
            && (p.getWidth() < geo.getX() + geo.getWidth() || p
                .getHeight() < geo.getY() + geo.getHeight()))
        {
          p = (mxGeometry) p.clone();

          p.setWidth(Math.max(p.getWidth(),
              geo.getX() + geo.getWidth()));
          p.setHeight(Math.max(p.getHeight(),
              geo.getY() + geo.getHeight()));

          cellsResized(new Object[] { parent },
              new mxRectangle[] { p });
        }
      }
View Full Code Here

   * Translates the geometry of the given cell and stores the new,
   * translated geometry in the model as an atomic change.
   */
  public void translateCell(Object cell, double dx, double dy)
  {
    mxGeometry geo = model.getGeometry(cell);

    if (geo != null)
    {
      geo = (mxGeometry) geo.clone();
      geo.translate(dx, dy);

      if (!geo.isRelative() && model.isVertex(cell)
          && !isAllowNegativeCoordinates())
      {
        geo.setX(Math.max(0, geo.getX()));
        geo.setY(Math.max(0, geo.getY()));
      }

      if (geo.isRelative() && !model.isEdge(cell))
      {
        if (geo.getOffset() == null)
        {
          geo.setOffset(new mxPoint(dx, dy));
        }
        else
        {
          mxPoint offset = geo.getOffset();

          offset.setX(offset.getX() + dx);
          offset.setY(offset.getY() + dy);
        }
      }
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.