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); }