public void selectTool(final String actionId) {
   Object root = myTree.getModel().getRoot();
   if (root == null || !(root instanceof CheckedTreeNode)) {
     return;
   }
   final List<CheckedTreeNode> nodes = new ArrayList<CheckedTreeNode>();
   new Object() {
     @SuppressWarnings("unchecked")
     public void collect(CheckedTreeNode node) {
       if (node.isLeaf()) {
         Object userObject = node.getUserObject();
         if (userObject instanceof Tool && actionId.equals(((Tool) userObject).getActionId())) {
           nodes.add(node);
         }
       } else {
         for (int i = 0; i < node.getChildCount(); i++) {
           final TreeNode child = node.getChildAt(i);
           if (child instanceof CheckedTreeNode) {
             collect((CheckedTreeNode) child);
           }
         }
       }
     }
   }.collect((CheckedTreeNode) root);
   if (nodes.isEmpty()) {
     return;
   }
   myTree.getSelectionModel().setSelectionPath(new TreePath(nodes.get(0).getPath()));
 }