private void printAll(TreeNode root, TreeNode parent, Node parentNode, int i) {
        Node p;

        int parentPosition = getRectNextLeft(i);

        if (root != null && parent == null) {
            p = makeNode(String.valueOf(root.key), new Point(parentPosition, getRectNextTop(0)), Node.COLOR_PARENT, i);
        } else {
            p = parentNode;
        }

        if (root == null) {
            p = makeNode("", new Point(parentPosition, getRectNextTop(0)), Node.COLOR_PARENT, i);
        }

        if (root != null) {
            recursivePrint(root.left, parentPosition, null, p, i);
            recursivePrint(root.right, parentPosition, null, p, i);
        }
    }