@Override
 public void update(AnActionEvent e) {
   super.update(e);
   e.getPresentation()
       .setVisible(
           SendToFavoritesAction.isEnabled(e)
               && FavoritesTreeViewPanel.FAVORITES_LIST_NAME_DATA_KEY.getData(e.getDataContext())
                   != null);
 }
    @Override
    public void actionPerformed(AnActionEvent e) {
      final DataContext dataContext = e.getDataContext();
      Project project = e.getProject();
      FavoritesTreeNodeDescriptor[] roots =
          FavoritesTreeViewPanel.CONTEXT_FAVORITES_ROOTS_DATA_KEY.getData(dataContext);
      String listName = FavoritesTreeViewPanel.FAVORITES_LIST_NAME_DATA_KEY.getData(dataContext);

      String newName = AddNewFavoritesListAction.doAddNewFavoritesList(project);
      if (newName != null) {
        new SendToFavoritesAction(newName)
            .doSend(FavoritesManager.getInstance(project), roots, listName);
      }
    }
  @Override
  @NotNull
  public AnAction[] getChildren(@Nullable AnActionEvent e) {
    if (e == null) {
      return EMPTY_ARRAY;
    }
    final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext());
    final List<String> availableFavoritesLists =
        FavoritesManager.getInstance(project).getAvailableFavoritesListNames();
    availableFavoritesLists.remove(
        FavoritesTreeViewPanel.FAVORITES_LIST_NAME_DATA_KEY.getData(e.getDataContext()));
    if (availableFavoritesLists.isEmpty()) {
      return new AnAction[] {new SendToNewFavoritesListAction()};
    }

    List<AnAction> actions = new ArrayList<AnAction>();

    for (String list : availableFavoritesLists) {
      actions.add(new SendToFavoritesAction(list));
    }
    actions.add(AnSeparator.getInstance());
    actions.add(new SendToNewFavoritesListAction());
    return actions.toArray(new AnAction[actions.size()]);
  }