@NotNull
 public FavoritesTreeNodeDescriptor[] getSelectedNodeDescriptors() {
   TreePath[] path = myTree.getSelectionPaths();
   if (path == null) {
     return FavoritesTreeNodeDescriptor.EMPTY_ARRAY;
   }
   ArrayList<FavoritesTreeNodeDescriptor> result = new ArrayList<FavoritesTreeNodeDescriptor>();
   for (TreePath treePath : path) {
     DefaultMutableTreeNode lastPathNode =
         (DefaultMutableTreeNode) treePath.getLastPathComponent();
     Object userObject = lastPathNode.getUserObject();
     if (!(userObject instanceof FavoritesTreeNodeDescriptor)) {
       continue;
     }
     FavoritesTreeNodeDescriptor treeNodeDescriptor = (FavoritesTreeNodeDescriptor) userObject;
     result.add(treeNodeDescriptor);
   }
   return result.toArray(new FavoritesTreeNodeDescriptor[result.size()]);
 }
 public TreePath[] getSelectionPaths() {
   return myTree == null ? null : myTree.getSelectionPaths();
 }