diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UnversionedViewDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UnversionedViewDialog.java index 4b40ab3cecb3..89ed8f391247 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UnversionedViewDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UnversionedViewDialog.java @@ -36,6 +36,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.ScrollPaneFactory; import com.intellij.util.EditSourceOnDoubleClickHandler; import com.intellij.util.EditSourceOnEnterKeyHandler; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.tree.TreeUtil; import org.jetbrains.annotations.NotNull; @@ -43,7 +44,6 @@ import javax.swing.*; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.awt.*; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -110,10 +110,12 @@ public class UnversionedViewDialog extends DialogWrapper { final DefaultActionGroup group = new DefaultActionGroup(); final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar("UNVERSIONED_DIALOG", group, true); - final ActionGroup operatingActions = (ActionGroup)ActionManager.getInstance().getAction("Unversioned.Files.Dialog"); - registerShortcuts(operatingActions, actionToolbar.getToolbarDataContext()); - refreshViewAfterActionPerformed(operatingActions); - group.add(operatingActions); + registerUnversionedActionsShortcuts(actionToolbar.getToolbarDataContext(), myView); + // special shortcut for deleting a file + EmptyAction.registerWithShortcutSet("ChangesView.DeleteUnversioned.From.Dialog", CommonShortcuts.getDelete(), myView); + + refreshViewAfterActionPerformed(getUnversionedActionGroup()); + group.add(getUnversionedActionGroup()); final CommonActionsManager cam = CommonActionsManager.getInstance(); final Expander expander = new Expander(); @@ -126,23 +128,12 @@ public class UnversionedViewDialog extends DialogWrapper { myPanel.add(ScrollPaneFactory.createScrollPane(myView), BorderLayout.CENTER); final DefaultActionGroup secondGroup = new DefaultActionGroup(); - secondGroup.addAll(operatingActions); + secondGroup.addAll(getUnversionedActionGroup()); myView.setMenuActions(secondGroup); myView.setShowFlatten(false); } - private void registerShortcuts(@NotNull ActionGroup opActionGroup, @NotNull DataContext dataContext) { - List opActions = new ArrayList(); - Utils.expandActionGroup(opActionGroup, opActions, new PresentationFactory(), dataContext, "", ActionManager.getInstance()); - for (AnAction action : opActions) { - action.registerCustomShortcutSet(action.getShortcutSet(), myView); - } - - // special shortcut for deleting a file - EmptyAction.registerWithShortcutSet("ChangesView.DeleteUnversioned.From.Dialog", CommonShortcuts.getDelete(), myView); - } - private void refreshViewAfterActionPerformed(@NotNull final ActionGroup opActionGroup) { ActionManager.getInstance().addAnActionListener(new AnActionListener.Adapter() { @Override @@ -157,6 +148,21 @@ public class UnversionedViewDialog extends DialogWrapper { }, myDisposable); } + @NotNull + public static ActionGroup getUnversionedActionGroup() { + return (ActionGroup)ActionManager.getInstance().getAction("Unversioned.Files.Dialog"); + } + + public static void registerUnversionedActionsShortcuts(@NotNull DataContext dataContext, @NotNull JComponent component) { + ActionManager manager = ActionManager.getInstance(); + List actions = ContainerUtil.newArrayList(); + + Utils.expandActionGroup(getUnversionedActionGroup(), actions, new PresentationFactory(), dataContext, "", manager); + for (AnAction action : actions) { + action.registerCustomShortcutSet(action.getShortcutSet(), component); + } + } + @Override protected String getDimensionServiceKey() { return "com.intellij.openapi.vcs.changes.UnversionedViewDialog"; diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java index f293a6cdf67d..713c188a6e47 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java @@ -16,6 +16,7 @@ package com.intellij.openapi.vcs.changes.ui; import com.intellij.icons.AllIcons; +import com.intellij.ide.DataManager; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.AnActionListener; import com.intellij.openapi.application.ApplicationManager; @@ -304,9 +305,6 @@ public class MultipleChangeListBrowser extends ChangesBrowserBase { protected void buildToolBar(@NotNull DefaultActionGroup toolBarGroup) { super.buildToolBar(toolBarGroup); - EmptyAction.registerWithShortcutSet(IdeActions.MOVE_TO_ANOTHER_CHANGE_LIST, CommonShortcuts.getMove(), myViewer); - toolBarGroup.add(ActionManager.getInstance().getAction(IdeActions.MOVE_TO_ANOTHER_CHANGE_LIST)); - toolBarGroup.add(new AnAction("Refresh Changes", null, AllIcons.Actions.Refresh) { @Override public void actionPerformed(AnActionEvent e) { @@ -314,10 +312,16 @@ public class MultipleChangeListBrowser extends ChangesBrowserBase { } }); if (Registry.is("vcs.unversioned.files.in.commit")) { - toolBarGroup.add(ActionManager.getInstance().getAction("ChangesView.AddUnversioned.From.Dialog")); - toolBarGroup.add(ActionManager.getInstance().getAction("ChangesView.DeleteUnversioned.From.Dialog")); - toolBarGroup.add(ActionManager.getInstance().getAction("ChangesView.Ignore")); + toolBarGroup.add(UnversionedViewDialog.getUnversionedActionGroup()); } + else { + toolBarGroup.add(ActionManager.getInstance().getAction(IdeActions.MOVE_TO_ANOTHER_CHANGE_LIST)); + } + UnversionedViewDialog.registerUnversionedActionsShortcuts(DataManager.getInstance().getDataContext(this), myViewer); + // We do not add "Delete" key shortcut for deleting unversioned files as this shortcut is already used to uncheck + // checkboxes in the tree. + EmptyAction.registerWithShortcutSet(IdeActions.MOVE_TO_ANOTHER_CHANGE_LIST, CommonShortcuts.getMove(), myViewer); + RollbackDialogAction rollback = new RollbackDialogAction(); EmptyAction.setupAction(rollback, IdeActions.CHANGES_VIEW_ROLLBACK, this); toolBarGroup.add(rollback);