private DefaultMutableTreeNode getTreeNode(FieldMapNode node) {
    if (node == null) {
      return new TristateCheckBoxNode();
    }
    TristateCheckBoxNode treeNode = new TristateCheckBoxNode(node);
    if (node.isLeaf()) {
      return treeNode;
    }

    for (int i = 0; i < node.getChildCount(); i++) {
      treeNode.add(getTreeNode(node.getChildAt(i)));
    }
    return treeNode;
  }