From 2b58d760c32e860e18a3e7714d1aae869c29859d Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 18 Oct 2016 15:12:09 +0300 Subject: [PATCH] ui: remove SwitchManager API - QuickActionProvider * SimpleToolWindowPanel.setProvideQuickActions - used in multiple plugins * ProjectViewImpl.getActions(boolean) - used in 'Autoscroll Save' plugin * QuickActionProvider.KEY - used in 'Armory' plugin --- .../openapi/actionSystem/ActionToolbar.java | 7 +- .../ui/switcher/QuickActionProvider.java | 1 + .../ui/layout/impl/RunnerContentUi.java | 37 +------- .../ui/layout/impl/RunnerLayoutUiImpl.java | 3 +- .../intellij/find/SearchReplaceComponent.java | 2 +- .../ide/projectView/impl/ProjectViewImpl.java | 86 +------------------ .../openapi/ui/SimpleToolWindowPanel.java | 13 ++- .../com/intellij/ui/tabs/impl/JBTabsImpl.java | 23 +---- .../ide/actions/ToggleToolbarAction.java | 2 +- .../actionSystem/impl/ActionToolbarImpl.java | 3 +- .../edu/learning/StudyProjectComponent.java | 2 +- 11 files changed, 25 insertions(+), 154 deletions(-) diff --git a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java index a6b52e14d880..78ae6c801ac3 100644 --- a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java @@ -15,19 +15,19 @@ */ package com.intellij.openapi.actionSystem; -import com.intellij.ui.switcher.QuickActionProvider; import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; +import java.util.List; /** * Represents a toolbar with a visual presentation. * * @see ActionManager#createActionToolbar(String, ActionGroup, boolean) */ -public interface ActionToolbar extends QuickActionProvider { +public interface ActionToolbar { String ACTION_TOOLBAR_PROPERTY_KEY = "ACTION_TOOLBAR"; /** @@ -115,6 +115,9 @@ public interface ActionToolbar extends QuickActionProvider { void setSecondaryActionsTooltip(String secondaryActionsTooltip); + @NotNull + List getActions(); + void setMiniMode(boolean minimalMode); DataContext getToolbarDataContext(); diff --git a/platform/editor-ui-api/src/com/intellij/ui/switcher/QuickActionProvider.java b/platform/editor-ui-api/src/com/intellij/ui/switcher/QuickActionProvider.java index 9208566d2575..40a57a2f013a 100644 --- a/platform/editor-ui-api/src/com/intellij/ui/switcher/QuickActionProvider.java +++ b/platform/editor-ui-api/src/com/intellij/ui/switcher/QuickActionProvider.java @@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.DataKey; import java.util.List; +@Deprecated public interface QuickActionProvider { DataKey KEY = DataKey.create("QuickActionProvider"); diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java index 9e85c4562fbf..a958238a676c 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java @@ -47,13 +47,11 @@ import com.intellij.ui.docking.DockManager; import com.intellij.ui.docking.DockableContent; import com.intellij.ui.docking.DragSession; import com.intellij.ui.docking.impl.DockManagerImpl; -import com.intellij.ui.switcher.QuickActionProvider; import com.intellij.ui.tabs.JBTabs; import com.intellij.ui.tabs.TabInfo; import com.intellij.ui.tabs.TabsListener; import com.intellij.ui.tabs.impl.JBTabsImpl; import com.intellij.util.NotNullFunction; -import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.AbstractLayoutManager; import com.intellij.util.ui.GraphicsUtil; import com.intellij.util.ui.JBUI; @@ -77,7 +75,7 @@ import java.util.concurrent.CopyOnWriteArraySet; import java.util.stream.Collectors; public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Facade, ViewContextEx, PropertyChangeListener, - QuickActionProvider, DockContainer.Dialog { + DockContainer.Dialog { public static final DataKey KEY = DataKey.create("DebuggerContentUI"); public static final Key LIGHTWEIGHT_CONTENT_MARKER = Key.create("LightweightContent"); @@ -1353,7 +1351,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac } } - private class MyComponent extends NonOpaquePanel implements DataProvider, QuickActionProvider { + private class MyComponent extends NonOpaquePanel implements DataProvider { private boolean myWasEverAdded; public MyComponent(LayoutManager layout) { @@ -1366,10 +1364,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac @Override @Nullable public Object getData(@NonNls final String dataId) { - if (KEY.is(dataId)) { - return RunnerContentUi.this; - } - else if (CloseAction.CloseTarget.KEY.is(dataId)) { + if (CloseAction.CloseTarget.KEY.is(dataId)) { Content content = getContentManager().getSelectedContent(); if (content != null && content.getManager().canCloseContents() && content.isCloseable()) { return new CloseAction.CloseTarget() { @@ -1389,17 +1384,6 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac return null; } - @SuppressWarnings("NullableProblems") - @Override - public String getName() { - return RunnerContentUi.this.getName(); - } - - @Override - public List getActions(boolean originalProvider) { - return RunnerContentUi.this.getActions(originalProvider); - } - @Override public void addNotify() { super.addNotify(); @@ -1687,21 +1671,6 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac return myRunnerUi; } - @Override - public String getName() { - return mySessionName; - } - - @Override - public List getActions(boolean originalProvider) { - ArrayList result = new ArrayList<>(); - if (myLeftToolbarActions != null) { - AnAction[] kids = myLeftToolbarActions.getChildren(null); - ContainerUtil.addAll(result, kids); - } - return result; - } - private int findFreeWindow() { int i; for (i = 1; i < Integer.MAX_VALUE; i++) { diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java index c5f40a5bd1df..707ad5344f60 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java @@ -36,7 +36,6 @@ import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentFactory; import com.intellij.ui.content.ContentManager; import com.intellij.ui.content.ContentManagerListener; -import com.intellij.ui.switcher.QuickActionProvider; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -377,7 +376,7 @@ public class RunnerLayoutUiImpl implements Disposable.Parent, RunnerLayoutUi, La @Nullable @Override public Object getData(@NonNls String dataId) { - if (QuickActionProvider.KEY.is(dataId) || RunnerContentUi.KEY.is(dataId)) { + if (RunnerContentUi.KEY.is(dataId)) { return myContentUI; } return null; diff --git a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java index 8415ee48db5a..1cc49d8d7824 100644 --- a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java +++ b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java @@ -556,7 +556,7 @@ public class SearchReplaceComponent extends EditorHeaderComponent implements Dat } private void updateBindings(@NotNull ActionToolbarImpl toolbar, @NotNull JComponent shortcutHolder) { - updateBindings(toolbar.getActions(true), shortcutHolder); + updateBindings(toolbar.getActions(), shortcutHolder); } private void updateBindings(@NotNull List actions, @NotNull JComponent shortcutHolder) { diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index 5b96f07eb991..a29b9b4d6c33 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -82,7 +82,6 @@ import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManager; import com.intellij.ui.content.ContentManagerAdapter; import com.intellij.ui.content.ContentManagerEvent; -import com.intellij.ui.switcher.QuickActionProvider; import com.intellij.util.ArrayUtil; import com.intellij.util.IJSwingUtilities; import com.intellij.util.PlatformIcons; @@ -107,7 +106,7 @@ import java.util.*; import java.util.List; @State(name = "ProjectView", storages = @Storage(StoragePathMacros.WORKSPACE_FILE)) -public class ProjectViewImpl extends ProjectView implements PersistentStateComponent, Disposable, QuickActionProvider, BusyObject { +public class ProjectViewImpl extends ProjectView implements PersistentStateComponent, Disposable, BusyObject { private static final Logger LOG = Logger.getInstance("#com.intellij.ide.projectView.impl.ProjectViewImpl"); private static final Key ID_KEY = Key.create("pane-id"); private static final Key SUB_ID_KEY = Key.create("pane-sub-id"); @@ -255,87 +254,14 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo private void constructUi() { myViewContentPanel = new JPanel(); - myPanel = new SimpleToolWindowPanel(true).setProvideQuickActions(false); + myPanel = new SimpleToolWindowPanel(true); myPanel.setContent(myViewContentPanel); } - @Override - public String getName() { - return "Project"; - } - - @Override @NotNull + @Deprecated public List getActions(boolean originalProvider) { - ArrayList result = new ArrayList<>(); - - DefaultActionGroup views = new DefaultActionGroup("Change View", true); - boolean lastHeaderHadKids = false; - for (int i = 0; i < myContentManager.getContentCount(); i++) { - Content each = myContentManager.getContent(i); - if (each != null) { - if (each.getUserData(SUB_ID_KEY) == null) { - if (lastHeaderHadKids) { - views.add(new Separator()); - } else { - if (i + 1 < myContentManager.getContentCount()) { - Content next = myContentManager.getContent(i + 1); - if (next != null) { - if (next.getUserData(SUB_ID_KEY) != null) { - views.add(new Separator()); - } - } - } - } - } - else { - lastHeaderHadKids = true; - } - - views.add(new ChangeViewAction(each.getUserData(ID_KEY), each.getUserData(SUB_ID_KEY))); - } - } - result.add(views); - result.add(new Separator()); - - - List secondary = new ArrayList<>(); - if (myActionGroup != null) { - AnAction[] kids = myActionGroup.getChildren(null); - for (AnAction each : kids) { - if (myActionGroup.isPrimary(each)) { - result.add(each); - } - else { - secondary.add(each); - } - } - } - result.add(new Separator()); - result.addAll(secondary); - - return result; - } - - private class ChangeViewAction extends AnAction { - private final String myId; - private final String mySubId; - - private ChangeViewAction(@NotNull String id, String subId) { - myId = id; - mySubId = subId; - } - - @Override - public void update(AnActionEvent e) { - AbstractProjectViewPane pane = getProjectViewPaneById(myId); - e.getPresentation().setText(pane.getTitle() + (mySubId != null ? (" - " + pane.getPresentableSubIdName(mySubId)) : "")); - } - - @Override - public void actionPerformed(AnActionEvent e) { - changeView(myId, mySubId); - } + return Collections.emptyList(); } @Override @@ -1090,10 +1016,6 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo return selectedElements.isEmpty() ? null : selectedElements.toArray(new NamedLibraryElement[selectedElements.size()]); } - if (QuickActionProvider.KEY.is(dataId)) { - return ProjectViewImpl.this; - } - return null; } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/SimpleToolWindowPanel.java b/platform/platform-api/src/com/intellij/openapi/ui/SimpleToolWindowPanel.java index 728e839ff77d..90b3b6bb347f 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/SimpleToolWindowPanel.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/SimpleToolWindowPanel.java @@ -18,7 +18,6 @@ package com.intellij.openapi.ui; import com.intellij.openapi.actionSystem.ActionToolbar; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.DataProvider; -import com.intellij.ui.switcher.QuickActionProvider; import com.intellij.util.containers.JBIterable; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NonNls; @@ -30,14 +29,13 @@ import java.awt.event.ContainerAdapter; import java.awt.event.ContainerEvent; import java.util.List; -public class SimpleToolWindowPanel extends JPanel implements QuickActionProvider, DataProvider { +public class SimpleToolWindowPanel extends JPanel implements DataProvider { private JComponent myToolbar; private JComponent myContent; private boolean myBorderless; protected boolean myVertical; - private boolean myProvideQuickActions; public SimpleToolWindowPanel(boolean vertical) { this(vertical, false); @@ -47,7 +45,6 @@ public class SimpleToolWindowPanel extends JPanel implements QuickActionProvider setLayout(new BorderLayout(vertical ? 0 : 1, vertical ? 1 : 0)); myBorderless = borderless; myVertical = vertical; - setProvideQuickActions(true); addContainerListener(new ContainerAdapter() { @Override @@ -97,19 +94,19 @@ public class SimpleToolWindowPanel extends JPanel implements QuickActionProvider @Nullable public Object getData(@NonNls String dataId) { - return QuickActionProvider.KEY.is(dataId) && myProvideQuickActions ? this : null; + return null; } + @Deprecated public SimpleToolWindowPanel setProvideQuickActions(boolean provide) { - myProvideQuickActions = provide; return this; } - public List getActions(boolean originalProvider) { + public List getActions() { JBIterable toolbars = UIUtil.uiTraverser(myToolbar).traverse().filter(ActionToolbar.class); if (toolbars.size() == 0) return null; - return toolbars.flatten(toolbar -> toolbar.getActions(originalProvider)).toList(); + return toolbars.flatten(toolbar -> toolbar.getActions()).toList(); } public JComponent getComponent() { diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java index 4e86c65d5311..0061b8dc0704 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java @@ -28,7 +28,6 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.*; import com.intellij.ui.*; import com.intellij.ui.awt.RelativePoint; -import com.intellij.ui.switcher.QuickActionProvider; import com.intellij.ui.tabs.*; import com.intellij.ui.tabs.impl.singleRow.ScrollableSingleRowLayout; import com.intellij.ui.tabs.impl.singleRow.SingleRowLayout; @@ -61,7 +60,7 @@ import java.util.List; public class JBTabsImpl extends JComponent implements JBTabs, PropertyChangeListener, TimerListener, DataProvider, PopupMenuListener, Disposable, JBTabsPresentation, Queryable, - UISettingsListener, QuickActionProvider, Accessible { + UISettingsListener, Accessible { public static final DataKey NAVIGATION_ACTIONS_KEY = DataKey.create("JBTabs"); @NonNls public static final Key SIDE_TABS_SIZE_LIMIT_KEY = Key.create("SIDE_TABS_SIZE_LIMIT_KEY"); @@ -3117,29 +3116,9 @@ public class JBTabsImpl extends JComponent if (value != null) return value; } - if (QuickActionProvider.KEY.getName().equals(dataId)) { - return this; - } - return NAVIGATION_ACTIONS_KEY.is(dataId) ? this : null; } - @Override - public List getActions(boolean originalProvider) { - ArrayList result = new ArrayList<>(); - - TabInfo selection = getSelectedInfo(); - if (selection != null) { - ActionGroup group = selection.getGroup(); - if (group != null) { - AnAction[] children = group.getChildren(null); - Collections.addAll(result, children); - } - } - - return result; - } - @Override public DataProvider getDataProvider() { return myDataProvider; diff --git a/platform/platform-impl/src/com/intellij/ide/actions/ToggleToolbarAction.java b/platform/platform-impl/src/com/intellij/ide/actions/ToggleToolbarAction.java index 8214557e9b13..14e848273088 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/ToggleToolbarAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/ToggleToolbarAction.java @@ -145,7 +145,7 @@ public class ToggleToolbarAction extends ToggleAction implements DumbAware { result.add(Separator.getInstance()); } - List actions = toolbar.getActions(false); + List actions = toolbar.getActions(); for (AnAction action : actions) { if (action instanceof ToggleAction && !result.contains(action)) { result.add(action); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java index 4d9709cbe9e6..4de4a01a69ab 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java @@ -1227,8 +1227,9 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar { mySecondaryActions.getTemplatePresentation().setDescription(secondaryActionsTooltip); } + @NotNull @Override - public List getActions(boolean originalProvider) { + public List getActions() { ArrayList result = new ArrayList<>(); ArrayList secondary = new ArrayList<>(); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java index 941ae6e34c8a..18c21ff1e270 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java @@ -115,7 +115,7 @@ public class StudyProjectComponent implements ProjectComponent { private void registerShortcuts() { StudyToolWindow window = StudyUtils.getStudyToolWindow(myProject); if (window != null) { - List actionsOnToolbar = window.getActions(true); + List actionsOnToolbar = window.getActions(); if (actionsOnToolbar != null) { for (AnAction action : actionsOnToolbar) { if (action instanceof StudyActionWithShortcut) {