protected void rebuild() {
   storeState();
   ++ourSettingsModificationCount;
   ((SmartTreeStructure) myAbstractTreeBuilder.getTreeStructure()).rebuildTree();
   myAbstractTreeBuilder.updateFromRoot();
   restoreState();
 }
 private ArrayList<AbstractTreeNode> getPathToElement(Object element) {
   ArrayList<AbstractTreeNode> result = new ArrayList<AbstractTreeNode>();
   final AbstractTreeStructure treeStructure = myAbstractTreeBuilder.getTreeStructure();
   if (treeStructure != null) {
     addToPath(
         (AbstractTreeNode) treeStructure.getRootElement(),
         element,
         result,
         new THashSet<Object>());
   }
   return result;
 }
 public AbstractTreeStructure getTreeStructure() {
   return myAbstractTreeBuilder.getTreeStructure();
 }