private NodeSetGraphic drawDAG(PMLNode node, int _currentLevel, int level) {
    if (node.getCurrentlySelectedInferenceStep().isLeaf()) {
      System.out.println("only one node and is a parent");
      return drawOnlyChild(node);
    }

    int counter = 0;
    ArrayList childNodes = new ArrayList();

    int numTest = node.getCurrentlySelectedInferenceStep().getAntecedents().length;
    for (int i = 0; i < node.getCurrentlySelectedInferenceStep().getAntecedents().length; i++) {
      NodeSetGraphic aChild = null;
      PMLNode aNode = node.getCurrentlySelectedInferenceStep().getAntecedents()[i];

      if ((_currentLevel > 1) && (!aNode.getCurrentlySelectedInferenceStep().isLeaf()))
        aChild = drawDAG(aNode, _currentLevel - 1, level - 1);
      else aChild = drawChild(level, counter, numTest, aNode);
      childNodes.add(aChild);
      counter++;
    }
    return drawParent(node, level, childNodes);
  }