diff --git a/platform/platform-api/src/com/intellij/openapi/keymap/KeymapExtension.java b/platform/platform-api/src/com/intellij/openapi/keymap/KeymapExtension.java index d865f2c04e62..201a68d615b3 100644 --- a/platform/platform-api/src/com/intellij/openapi/keymap/KeymapExtension.java +++ b/platform/platform-api/src/com/intellij/openapi/keymap/KeymapExtension.java @@ -33,5 +33,5 @@ public interface KeymapExtension { @NonNls ExtensionPointName EXTENSION_POINT_NAME = new ExtensionPointName<>("com.intellij.keymapExtension"); @Nullable - KeymapGroup createGroup(Condition filtered, Project project); + KeymapGroup createGroup(Condition filtered, @Nullable Project project); } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/actions/ToolWindowKeymapExtension.java b/platform/platform-impl/src/com/intellij/ide/actions/ToolWindowKeymapExtension.java new file mode 100644 index 000000000000..9b1dbe760af2 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/ide/actions/ToolWindowKeymapExtension.java @@ -0,0 +1,48 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intellij.ide.actions; + +import com.intellij.idea.ActionsBundle; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.keymap.KeymapExtension; +import com.intellij.openapi.keymap.KeymapGroup; +import com.intellij.openapi.keymap.KeymapGroupFactory; +import com.intellij.openapi.keymap.impl.ui.ActionsTreeUtil; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Condition; +import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; + +public class ToolWindowKeymapExtension implements KeymapExtension { + @Nullable + @Override + public KeymapGroup createGroup(Condition filtered, Project project) { + String title = UIUtil.removeMnemonic(ActionsBundle.message("group.ToolWindowsGroup.text")); + List windowActions = project != null ? + ToolWindowsGroup.getToolWindowActions(project, false) : + Collections.emptyList(); + + KeymapGroup result = KeymapGroupFactory.getInstance().createGroup(title); + for (AnAction action : windowActions) { + ActionsTreeUtil.addAction(result, action, filtered); + } + return result; + } +} diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index acfae106a918..2397251c0603 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -347,6 +347,8 @@ + +