private void getNodeValue(TristateCheckBoxNode node, List v, String fName, boolean isSel) {
   if (node == null) {
     return;
   }
   boolean isV =
       isSel ? State.SELECTED.equals(node.getState()) : State.NOT_SELECTED.equals(node.getState());
   if (isV) {
     FieldMapNode fmn = (FieldMapNode) node.getUserObject();
     v.add(fmn.getFieldValue(fName));
   }
   for (TristateCheckBoxNode tmp : node.getChildren()) {
     getNodeValue(tmp, v, fName, isSel);
   }
 }
 private void setNodeValue(TristateCheckBoxNode node, List vList, String fName, boolean isSel) {
   if (node == null) {
     return;
   }
   FieldMapNode fmn = (FieldMapNode) node.getUserObject();
   boolean isS =
       isSel
           ? vList.contains(fmn.getFieldValue(fName))
           : !vList.contains(fmn.getFieldValue(fName));
   if (isS && node.isLeaf()) {
     node.setState(State.SELECTED);
   }
   for (TristateCheckBoxNode tmp : node.getChildren()) {
     setNodeValue(tmp, vList, fName, isSel);
   }
 }