private void addTreeWrapper(TreeNode currentNode, TreeNode parent, ITreeNode currentTreeNode) {
   ITreeNode[] children = currentTreeNode.getChildren();
   for (int i = 0; i < children.length; i++) {
     ITreeNode newCurrentTreeNode = children[i];
     TreeNode newNode = new TreeNode();
     this.fillTreeNode(newNode, currentNode, newCurrentTreeNode);
     currentNode.addChild(newNode);
     this.addTreeWrapper(newNode, currentNode, newCurrentTreeNode);
   }
 }
 private void builShowableTree(
     TreeNodeWrapper currentNode,
     TreeNodeWrapper parent,
     ITreeNode currentTreeNode,
     Set<String> checkNodes) {
   if (checkNodes.contains(currentNode.getCode())) {
     currentNode.setOpen(true);
     ITreeNode[] children = currentTreeNode.getChildren();
     for (int i = 0; i < children.length; i++) {
       ITreeNode newCurrentTreeNode = children[i];
       TreeNodeWrapper newNode = new TreeNodeWrapper(newCurrentTreeNode);
       newNode.setParent(currentNode);
       currentNode.addChild(newNode);
       this.builShowableTree(newNode, currentNode, newCurrentTreeNode, checkNodes);
     }
   }
 }