Ejemplo n.º 1
0
  @SuppressWarnings("unchecked")
  protected void setDummyEdges() {
    int nodeCount = nodeList.size();

    // if node count is only one then we don't have to worry about whether
    // the nodes are connected
    if (nodeCount > 1) {
      NodeList candidateList = new NodeList();
      for (Iterator<Node> iter = nodeList.iterator(); iter.hasNext(); ) {
        Node sourceNode = iter.next();

        // we will need to set up a dummy relationship for any node not
        // in one already
        if (sourceNode.outgoing.size() == 0 && sourceNode.incoming.size() == 0) {
          candidateList.add(sourceNode);
          sourceNode.setRowConstraint(2);
        } else {
          sourceNode.setRowConstraint(1);
        }
      }
      if (candidateList.size() > 1) {
        int index = 0;
        while (index < candidateList.size() - 1) {
          Node sourceNode = candidateList.getNode(index++);
          Node targetNode = candidateList.getNode(index);
          newDummyEdge(targetNode, sourceNode);
        }
      }
    }
  }