com.mxgraph.model

## Class mxCell

- java.lang.Object
- - com.mxgraph.model.mxCell

- All Implemented Interfaces:
    mxICell, java.io.Serializable, java.lang.Cloneable

      public class mxCell
      extends java.lang.Object
      implements mxICell, java.lang.Cloneable, java.io.Serializable

  Cells are the elements of the graph model. They represent the state of the groups, vertices and edges in a graph.

  #### Edge Labels

  Using the x- and y-coordinates of a cell's geometry it is possible to position the label on edges on a specific location on the actual edge shape as it appears on the screen. The x-coordinate of an edge's geometry is used to describe the distance from the center of the edge from -1 to 1 with 0 being the center of the edge and the default value. The y-coordinate of an edge's geometry is used to describe the absolute, orthogonal distance in pixels from that point. In addition, the mxGeometry.offset is used as a absolute offset vector from the resulting point. The width and height of an edge geometry are ignored. To add more than one edge label, add a child vertex with a relative geometry. The x- and y-coordinates of that geometry will have the same semantiv as the above for edge labels.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.List<java.lang.Object>` | `children` Holds the child cells and connected edges.
    `protected boolean` | `collapsed` Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed.
    `protected boolean` | `connectable` Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed.
    `protected boolean` | `edge` Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed.
    `protected java.util.List<java.lang.Object>` | `edges` Holds the child cells and connected edges.
    `protected mxGeometry` | `geometry` Holds the geometry.
    `protected java.lang.String` | `id` Holds the Id.
    `protected mxICell` | `parent` Reference to the parent cell and source and target terminals for edges.
    `protected mxICell` | `source` Reference to the parent cell and source and target terminals for edges.
    `protected java.lang.String` | `style` Holds the style as a string of the form stylename[;key=value].
    `protected mxICell` | `target` Reference to the parent cell and source and target terminals for edges.
    `protected java.lang.Object` | `value` Holds the user object.
    `protected boolean` | `vertex` Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed.
    `protected boolean` | `visible` Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `mxCell()` Constructs a new cell with an empty user object.
    `mxCell(java.lang.Object value)` Constructs a new cell for the given user object.
    `mxCell(java.lang.Object value, mxGeometry geometry, java.lang.String style)` Constructs a new cell for the given parameters.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Returns a clone of the cell.
    `protected java.lang.Object` | `cloneValue()` Returns a clone of the user object.
    `java.lang.String` | `getAttribute(java.lang.String name)` Returns the specified attribute from the user object if it is an XML node.
    `java.lang.String` | `getAttribute(java.lang.String name, java.lang.String defaultValue)` Returns the specified attribute from the user object if it is an XML node.
    `mxICell` | `getChildAt(int index)` Returns the child at the specified index.
    `int` | `getChildCount()` Returns the number of child cells.
    `mxICell` | `getEdgeAt(int index)` Returns the edge at the specified index in the edge array.
    `int` | `getEdgeCount()` Returns the number of edges in the edge array.
    `int` | `getEdgeIndex(mxICell edge)` Returns the index of the specified edge in the edge array.
    `mxGeometry` | `getGeometry()` Returns the object that describes the geometry.
    `java.lang.String` | `getId()` Returns the Id of the cell as a string.
    `int` | `getIndex(mxICell child)` Returns the index of the specified child in the child array.
    `mxICell` | `getParent()` Returns the cell's parent.
    `mxICell` | `getSource()` Returns the source terminal.
    `java.lang.String` | `getStyle()` Returns the string that describes the style.
    `mxICell` | `getTarget()` Returns the target terminal.
    `mxICell` | `getTerminal(boolean source)` Returns the source or target terminal.
    `java.lang.Object` | `getValue()` Returns the user object of the cell.
    `mxICell` | `insert(mxICell child)` Appends the specified child into the child array and updates the parent reference of the child.
    `mxICell` | `insert(mxICell child, int index)` Inserts the specified child into the child array at the specified index and updates the parent reference of the child.
    `mxICell` | `insertEdge(mxICell edge, boolean isOutgoing)` Inserts the specified edge into the edge array and returns the edge.
    `boolean` | `isCollapsed()` Returns true if the cell is collapsed.
    `boolean` | `isConnectable()` Returns true if the cell is connectable.
    `boolean` | `isEdge()` Returns true if the cell is an edge.
    `boolean` | `isVertex()` Returns true if the cell is a vertex.
    `boolean` | `isVisible()` Returns true if the cell is visibile.
    `mxICell` | `remove(int index)` Removes the child at the specified index from the child array and returns the child that was removed.
    `mxICell` | `remove(mxICell child)` Removes the given child from the child array and returns it.
    `mxICell` | `removeEdge(mxICell edge, boolean isOutgoing)` Removes the specified edge from the edge array and returns the edge.
    `void` | `removeFromParent()` Removes the cell from its parent.
    `void` | `removeFromTerminal(boolean isSource)` Removes the edge from its source or target terminal.
    `void` | `setAttribute(java.lang.String name, java.lang.String value)` Sets the specified attribute on the user object if it is an XML node.
    `void` | `setCollapsed(boolean collapsed)` Sets the collapsed state.
    `void` | `setConnectable(boolean connectable)`
    `void` | `setEdge(boolean edge)`
    `void` | `setGeometry(mxGeometry geometry)` Sets the object to be used as the geometry.
    `void` | `setId(java.lang.String id)` Sets the Id of the cell to the given string.
    `void` | `setParent(mxICell parent)` Sets the parent cell.
    `void` | `setSource(mxICell source)` Sets the source terminal.
    `void` | `setStyle(java.lang.String style)` Sets the string to be used as the style.
    `void` | `setTarget(mxICell target)` Sets the target terminal.
    `mxICell` | `setTerminal(mxICell terminal, boolean isSource)` Sets the source or target terminal and returns the new terminal.
    `void` | `setValue(java.lang.Object value)` Sets the user object of the cell.
    `void` | `setVertex(boolean vertex)`
    `void` | `setVisible(boolean visible)` Specifies if the cell is visible.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### id

          protected java.lang.String id

      Holds the Id. Default is null.

    - #### value

          protected java.lang.Object value

      Holds the user object. Default is null.

    - #### geometry

          protected mxGeometry geometry

      Holds the geometry. Default is null.

    - #### style

          protected java.lang.String style

      Holds the style as a string of the form stylename[;key=value]. Default is null.

    - #### vertex

          protected boolean vertex

      Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed. Default values are false, false, true, true and false respectively.

    - #### edge

          protected boolean edge

      Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed. Default values are false, false, true, true and false respectively.

    - #### connectable

          protected boolean connectable

      Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed. Default values are false, false, true, true and false respectively.

    - #### visible

          protected boolean visible

      Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed. Default values are false, false, true, true and false respectively.

    - #### collapsed

          protected boolean collapsed

      Specifies whether the cell is a vertex or edge and whether it is connectable, visible and collapsed. Default values are false, false, true, true and false respectively.

    - #### parent

          protected mxICell parent

      Reference to the parent cell and source and target terminals for edges.

    - #### source

          protected mxICell source

      Reference to the parent cell and source and target terminals for edges.

    - #### target

          protected mxICell target

      Reference to the parent cell and source and target terminals for edges.

    - #### children

          protected java.util.List<java.lang.Object> children

      Holds the child cells and connected edges.

    - #### edges

          protected java.util.List<java.lang.Object> edges

      Holds the child cells and connected edges.

  - ### Constructor Detail

    - #### mxCell

          public mxCell()

      Constructs a new cell with an empty user object.

    - #### mxCell

          public mxCell(java.lang.Object value)

      Constructs a new cell for the given user object.
      Parameters:
        `value` - Object that represents the value of the cell.

    - #### mxCell

          public mxCell(java.lang.Object value,
                mxGeometry geometry,
                java.lang.String style)

      Constructs a new cell for the given parameters.
      Parameters:
        `value` - Object that represents the value of the cell.
        `geometry` - Specifies the geometry of the cell.
        `style` - Specifies the style as a formatted string.

  - ### Method Detail

    - #### getId

          public java.lang.String getId()

      Description copied from interface: `mxICell`
      Returns the Id of the cell as a string.
      Specified by:
        `getId` in interface `mxICell`
      Returns:
        Returns the Id.

    - #### setId

          public void setId(java.lang.String id)

      Description copied from interface: `mxICell`
      Sets the Id of the cell to the given string.
      Specified by:
        `setId` in interface `mxICell`
      Parameters:
        `id` - String that represents the new Id.

    - #### getValue

          public java.lang.Object getValue()

      Description copied from interface: `mxICell`
      Returns the user object of the cell.
      Specified by:
        `getValue` in interface `mxICell`
      Returns:
        Returns the user object.

    - #### setValue

          public void setValue(java.lang.Object value)

      Description copied from interface: `mxICell`
      Sets the user object of the cell.
      Specified by:
        `setValue` in interface `mxICell`
      Parameters:
        `value` - Object that represents the new value.

    - #### getGeometry

          public mxGeometry getGeometry()

      Description copied from interface: `mxICell`
      Returns the object that describes the geometry.
      Specified by:
        `getGeometry` in interface `mxICell`
      Returns:
        Returns the cell geometry.

    - #### setGeometry

          public void setGeometry(mxGeometry geometry)

      Description copied from interface: `mxICell`
      Sets the object to be used as the geometry.
      Specified by:
        `setGeometry` in interface `mxICell`

    - #### getStyle

          public java.lang.String getStyle()

      Description copied from interface: `mxICell`
      Returns the string that describes the style.
      Specified by:
        `getStyle` in interface `mxICell`
      Returns:
        Returns the cell style.

    - #### setStyle

          public void setStyle(java.lang.String style)

      Description copied from interface: `mxICell`
      Sets the string to be used as the style.
      Specified by:
        `setStyle` in interface `mxICell`

    - #### isVertex

          public boolean isVertex()

      Description copied from interface: `mxICell`
      Returns true if the cell is a vertex.
      Specified by:
        `isVertex` in interface `mxICell`
      Returns:
        Returns true if the cell is a vertex.

    - #### setVertex

          public void setVertex(boolean vertex)

    - #### isEdge

          public boolean isEdge()

      Description copied from interface: `mxICell`
      Returns true if the cell is an edge.
      Specified by:
        `isEdge` in interface `mxICell`
      Returns:
        Returns true if the cell is an edge.

    - #### setEdge

          public void setEdge(boolean edge)

    - #### isConnectable

          public boolean isConnectable()

      Description copied from interface: `mxICell`
      Returns true if the cell is connectable.
      Specified by:
        `isConnectable` in interface `mxICell`
      Returns:
        Returns the connectable state.

    - #### setConnectable

          public void setConnectable(boolean connectable)

    - #### isVisible

          public boolean isVisible()

      Description copied from interface: `mxICell`
      Returns true if the cell is visibile.
      Specified by:
        `isVisible` in interface `mxICell`
      Returns:
        Returns the visible state.

    - #### setVisible

          public void setVisible(boolean visible)

      Description copied from interface: `mxICell`
      Specifies if the cell is visible.
      Specified by:
        `setVisible` in interface `mxICell`
      Parameters:
        `visible` - Boolean that specifies the new visible state.

    - #### isCollapsed

          public boolean isCollapsed()

      Description copied from interface: `mxICell`
      Returns true if the cell is collapsed.
      Specified by:
        `isCollapsed` in interface `mxICell`
      Returns:
        Returns the collapsed state.

    - #### setCollapsed

          public void setCollapsed(boolean collapsed)

      Description copied from interface: `mxICell`
      Sets the collapsed state.
      Specified by:
        `setCollapsed` in interface `mxICell`
      Parameters:
        `collapsed` - Boolean that specifies the new collapsed state.

    - #### getParent

          public mxICell getParent()

      Description copied from interface: `mxICell`
      Returns the cell's parent.
      Specified by:
        `getParent` in interface `mxICell`
      Returns:
        Returns the parent cell.

    - #### setParent

          public void setParent(mxICell parent)

      Description copied from interface: `mxICell`
      Sets the parent cell.
      Specified by:
        `setParent` in interface `mxICell`
      Parameters:
        `parent` - Cell that represents the new parent.

    - #### getSource

          public mxICell getSource()

      Returns the source terminal.

    - #### setSource

          public void setSource(mxICell source)

      Sets the source terminal.
      Parameters:
        `source` - Cell that represents the new source terminal.

    - #### getTarget

          public mxICell getTarget()

      Returns the target terminal.

    - #### setTarget

          public void setTarget(mxICell target)

      Sets the target terminal.
      Parameters:
        `target` - Cell that represents the new target terminal.

    - #### getTerminal

          public mxICell getTerminal(boolean source)

      Description copied from interface: `mxICell`
      Returns the source or target terminal.
      Specified by:
        `getTerminal` in interface `mxICell`
      Parameters:
        `source` - Boolean that specifies if the source terminal should be returned.
      Returns:
        Returns the source or target terminal.

    - #### setTerminal

          public mxICell setTerminal(mxICell terminal,
                            boolean isSource)

      Description copied from interface: `mxICell`
      Sets the source or target terminal and returns the new terminal.
      Specified by:
        `setTerminal` in interface `mxICell`
      Parameters:
        `terminal` - Cell that represents the new source or target terminal.
        `isSource` - Boolean that specifies if the source or target terminal should be set.
      Returns:
        Returns the new terminal.

    - #### getChildCount

          public int getChildCount()

      Description copied from interface: `mxICell`
      Returns the number of child cells.
      Specified by:
        `getChildCount` in interface `mxICell`
      Returns:
        Returns the number of children.

    - #### getIndex

          public int getIndex(mxICell child)

      Description copied from interface: `mxICell`
      Returns the index of the specified child in the child array.
      Specified by:
        `getIndex` in interface `mxICell`
      Parameters:
        `child` - Child whose index should be returned.
      Returns:
        Returns the index of the given child.

    - #### getChildAt

          public mxICell getChildAt(int index)

      Description copied from interface: `mxICell`
      Returns the child at the specified index.
      Specified by:
        `getChildAt` in interface `mxICell`
      Parameters:
        `index` - Integer that specifies the child to be returned.
      Returns:
        Returns the child at the given index.

    - #### insert

          public mxICell insert(mxICell child)

      Description copied from interface: `mxICell`
      Appends the specified child into the child array and updates the parent reference of the child. Returns the appended child.
      Specified by:
        `insert` in interface `mxICell`
      Parameters:
        `child` - Cell to be appended to the child array.
      Returns:
        Returns the new child.

    - #### insert

          public mxICell insert(mxICell child,
                       int index)

      Description copied from interface: `mxICell`
      Inserts the specified child into the child array at the specified index and updates the parent reference of the child. Returns the inserted child.
      Specified by:
        `insert` in interface `mxICell`
      Parameters:
        `child` - Cell to be inserted into the child array.
        `index` - Integer that specifies the index at which the child should be inserted into the child array.
      Returns:
        Returns the new child.

    - #### remove

          public mxICell remove(int index)

      Description copied from interface: `mxICell`
      Removes the child at the specified index from the child array and returns the child that was removed. Will remove the parent reference of the child.
      Specified by:
        `remove` in interface `mxICell`
      Parameters:
        `index` - Integer that specifies the index of the child to be removed.
      Returns:
        Returns the child that was removed.

    - #### remove

          public mxICell remove(mxICell child)

      Description copied from interface: `mxICell`
      Removes the given child from the child array and returns it. Will remove the parent reference of the child.
      Specified by:
        `remove` in interface `mxICell`
      Parameters:
        `child` - Cell that represents the child to be removed.
      Returns:
        Returns the child that was removed.

    - #### removeFromParent

          public void removeFromParent()

      Description copied from interface: `mxICell`
      Removes the cell from its parent.
      Specified by:
        `removeFromParent` in interface `mxICell`

    - #### getEdgeCount

          public int getEdgeCount()

      Description copied from interface: `mxICell`
      Returns the number of edges in the edge array.
      Specified by:
        `getEdgeCount` in interface `mxICell`
      Returns:
        Returns the number of edges.

    - #### getEdgeIndex

          public int getEdgeIndex(mxICell edge)

      Description copied from interface: `mxICell`
      Returns the index of the specified edge in the edge array.
      Specified by:
        `getEdgeIndex` in interface `mxICell`
      Parameters:
        `edge` - Cell whose index should be returned.
      Returns:
        Returns the index of the given edge.

    - #### getEdgeAt

          public mxICell getEdgeAt(int index)

      Description copied from interface: `mxICell`
      Returns the edge at the specified index in the edge array.
      Specified by:
        `getEdgeAt` in interface `mxICell`
      Parameters:
        `index` - Integer that specifies the index of the edge to be returned.
      Returns:
        Returns the edge at the given index.

    - #### insertEdge

          public mxICell insertEdge(mxICell edge,
                           boolean isOutgoing)

      Description copied from interface: `mxICell`
      Inserts the specified edge into the edge array and returns the edge. Will update the respective terminal reference of the edge.
      Specified by:
        `insertEdge` in interface `mxICell`
      Parameters:
        `edge` - Cell to be inserted into the edge array.
        `isOutgoing` - Boolean that specifies if the edge is outgoing.
      Returns:
        Returns the new edge.

    - #### removeEdge

          public mxICell removeEdge(mxICell edge,
                           boolean isOutgoing)

      Description copied from interface: `mxICell`
      Removes the specified edge from the edge array and returns the edge. Will remove the respective terminal reference from the edge.
      Specified by:
        `removeEdge` in interface `mxICell`
      Parameters:
        `edge` - Cell to be removed from the edge array.
        `isOutgoing` - Boolean that specifies if the edge is outgoing.
      Returns:
        Returns the edge that was removed.

    - #### removeFromTerminal

          public void removeFromTerminal(boolean isSource)

      Description copied from interface: `mxICell`
      Removes the edge from its source or target terminal.
      Specified by:
        `removeFromTerminal` in interface `mxICell`
      Parameters:
        `isSource` - Boolean that specifies if the edge should be removed from its source or target terminal.

    - #### getAttribute

          public java.lang.String getAttribute(java.lang.String name)

      Returns the specified attribute from the user object if it is an XML node.
      Parameters:
        `name` - Name of the attribute whose value should be returned.
      Returns:
        Returns the value of the given attribute or null.

    - #### getAttribute

          public java.lang.String getAttribute(java.lang.String name,
                                      java.lang.String defaultValue)

      Returns the specified attribute from the user object if it is an XML node.
      Parameters:
        `name` - Name of the attribute whose value should be returned.
        `defaultValue` - Default value to use if the attribute has no value.
      Returns:
        Returns the value of the given attribute or defaultValue.

    - #### setAttribute

          public void setAttribute(java.lang.String name,
                          java.lang.String value)

      Sets the specified attribute on the user object if it is an XML node.
      Parameters:
        `name` - Name of the attribute whose value should be set.
        `value` - New value of the attribute.

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Returns a clone of the cell.
      Specified by:
        `clone` in interface `mxICell`
      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        Returns a clone of this cell.
      Throws:
        `java.lang.CloneNotSupportedException`

    - #### cloneValue

          protected java.lang.Object cloneValue()

      Returns a clone of the user object. This implementation clones any XML nodes or otherwise returns the same user object instance.

Copyright (c) 2010 Gaudenz Alder. All rights reserved.