mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-27 16:57:49 +08:00
Incorporate Nik's action_basics feedback.
This commit is contained in:
parent
bb3e6a0b23
commit
35116dc6c2
@ -3,10 +3,8 @@
|
||||
package icons;
|
||||
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class ActionBasicsIcons {
|
||||
public static final Icon Sdk_default_icon = IconLoader.getIcon("/icons/sdk_16.svg");
|
||||
|
||||
public static final Icon Sdk_default_icon = IconLoader.getIcon("/icons/sdk_16.svg");
|
||||
}
|
||||
|
@ -27,8 +27,6 @@ public class CustomDefaultActionGroup extends DefaultActionGroup {
|
||||
// Enable/disable depending on whether user is editing
|
||||
Editor editor = event.getData(CommonDataKeys.EDITOR);
|
||||
event.getPresentation().setEnabled(editor != null);
|
||||
// Always make visible.
|
||||
event.getPresentation().setVisible(true);
|
||||
// Take this opportunity to set an icon for the menu entry.
|
||||
event.getPresentation().setIcon(ActionBasicsIcons.Sdk_default_icon);
|
||||
}
|
||||
|
@ -10,8 +10,12 @@
|
||||
<!-- The version of this plugin -->
|
||||
<version>2.0.0</version>
|
||||
|
||||
<!-- Compatible with the following versions of IntelliJ Platform -->
|
||||
<idea-version since-build="183" until-build=""/>
|
||||
<!-- Compatible with the following versions of IntelliJ Platform:
|
||||
version 2018.3 (build #183) and newer. -->
|
||||
<idea-version since-build="183"/>
|
||||
|
||||
<!-- Indicate this plugin can be loaded in all IntelliJ Platform-based products. -->
|
||||
<depends>com.intellij.modules.platform</depends>
|
||||
|
||||
<!-- Text to display as description on Preferences/Settings | Plugin page -->
|
||||
<description>
|
||||
@ -33,56 +37,21 @@
|
||||
<vendor url="https://plugins.jetbrains.com">IntelliJ Platform SDK</vendor>
|
||||
|
||||
<actions>
|
||||
<!-- The <action> element defines an action to register.
|
||||
The mandatory "id" attribute specifies an unique identifier for the action.
|
||||
The mandatory "class" attribute specifies the full-qualified name of the class implementing the action.
|
||||
The mandatory "text" attribute specifies the text of the action (tooltip for toolbar button or text for menu item).
|
||||
The optional "use-shortcut-of" attribute specifies the ID of the action whose keyboard shortcut this action will use.
|
||||
The optional "description" attribute specifies the text which is displayed in the status bar when the action is focused.
|
||||
The optional "icon" attribute specifies the icon which is displayed on the toolbar button or next to the menu item. -->
|
||||
<!-- See https://www.jetbrains.org/intellij/sdk/docs/basics/action_system.html#registering-actions-in-pluginxml
|
||||
for information about the elements and attributes used for actions and groups. -->
|
||||
<!-- This <action> element adds a static menu item in first position of the Tools menu that shows PopupDialogAction. -->
|
||||
<action id="org.intellij.sdk.action.PopupDialogAction" class="org.intellij.sdk.action.PopupDialogAction"
|
||||
text="Pop Dialog Action" description="SDK Action Example" icon="ActionBasicsIcons.Sdk_default_icon">
|
||||
<!-- The <keyboard-shortcut> node specifies the keyboard shortcut for the action. An action can have several keyboard shortcuts.
|
||||
The mandatory "first-keystroke" attribute specifies the first keystroke of the action. The key strokes are specified according to the regular Swing rules.
|
||||
The optional "second-keystroke" attribute specifies the second keystroke of the action.
|
||||
The mandatory "keymap" attribute specifies the keymap for which the action is active. IDs of the standard keymaps are defined as
|
||||
constants in the com.intellij.openapi.keymap.KeymapManager class. -->
|
||||
<keyboard-shortcut first-keystroke="control alt A" second-keystroke="C" keymap="$default"/>
|
||||
<!-- The <mouse-shortcut> node specifies the mouse shortcut for the action. An action can have several mouse shortcuts.
|
||||
The mandatory "keystroke" attribute specifies the clicks and modifiers for the action. It is defined as a sequence of words separated by spaces:
|
||||
"button1", "button2", "button3" for the mouse buttons; "shift", "control", "meta", "alt", "altGraph" for the modifier keys;
|
||||
"doubleClick" if the action is activated by a double-click of the button.
|
||||
The mandatory "keymap" attribute specifies the keymap for which the action is active. IDs of the standard keymaps are defined as
|
||||
constants in the com.intellij.openapi.keymap.KeymapManager class. -->
|
||||
<mouse-shortcut keystroke="control button3 doubleClick" keymap="$default"/>
|
||||
<!-- The <add-to-group> node specifies that the action should be added to an existing group. An action can be added to several groups.
|
||||
The mandatory "group-id" attribute specifies the ID of the group to which the action is added.
|
||||
The group must be implemented by an instance of the DefaultActionGroup class.
|
||||
The mandatory "anchor" attribute specifies the position of the action in the group relative to other actions. It can have the values
|
||||
"first", "last", "before" and "after".
|
||||
The "relative-to-action" attribute is mandatory if the anchor is set to "before" and "after", and specifies the action before or after which
|
||||
the current action is inserted. -->
|
||||
<add-to-group group-id="ToolsMenu" anchor="first"/>
|
||||
</action>
|
||||
<!--
|
||||
The <group> element defines an action group to register.
|
||||
"id" attribute - mandatory, specifies an unique identifier for the group.
|
||||
"class" attribute - optional, specifies the full-qualified name of the class implementing the group.
|
||||
If omitted, the ActionGroup implementation will be constructed by the IntelliJ Platform Framework.
|
||||
"popup" attribute - mandatory, specifies whether the group will be shown as a popup in menus.
|
||||
"text" attribute - mandatory, specifies the text of the action group to be displayed in the menu, or tooltip for toolbar button.
|
||||
"description" attribute - optional, specifies the text which is displayed in the status bar when the action is focused.
|
||||
"icon" attribute - optional, specifies the icon which is displayed on the toolbar button or next to the menu item.
|
||||
The <add-to-group> element - see documentation above for attributes.
|
||||
The <action> element - optional, used for static declarations of action(s) within a group, but can be
|
||||
omitted if actions will be added at runtime. See documentation above for attributes.
|
||||
-->
|
||||
<!-- All off the following menu groups add the action SimplePopDialogAction to menus in different ways.
|
||||
Note the action ids are unique. -->
|
||||
<!-- All of the following menu groups add the action PopupDialogAction to menus in different ways.
|
||||
Note that even though these groups reuse the same action class, in each use the action ids are unique. -->
|
||||
<!-- GroupedActions demonstrates declaring an action group using the default ActionGroup implementation provided by the
|
||||
IntelliJ Platform framework. (Note the lack of a "class" attribute.) GroupedActions gets inserted after PopupDialogAction
|
||||
in the Tools menu. Because the group's implementation is default, it cannot impose enable/disable conditions. Instead it
|
||||
must rely on the conditions imposed by the parent menu where it is inserted. It declares one action in the group. -->
|
||||
IntelliJ Platform framework. (Note the lack of a group "class" attribute.) GroupedActions gets inserted after PopupDialogAction
|
||||
in the Tools menu. Because the group's implementation is default, it cannot impose enable/disable conditions. Instead it
|
||||
must rely on the conditions imposed by the parent menu where it is inserted. It declares one action in the group. -->
|
||||
<group id="org.intellij.sdk.action.GroupedActions" text="Static Grouped Actions" popup="true" icon="ActionBasicsIcons.Sdk_default_icon">
|
||||
<add-to-group group-id="ToolsMenu" anchor="after" relative-to-action="org.intellij.sdk.action.PopupDialogAction"/>
|
||||
<action class="org.intellij.sdk.action.PopupDialogAction" id="org.intellij.sdk.action.GroupPopDialogAction"
|
||||
@ -90,7 +59,7 @@
|
||||
</action>
|
||||
</group>
|
||||
<!-- CustomDefaultActionGroup demonstrates declaring an action group based on a ActionGroup class supplied by this plugin.
|
||||
This group is to be inserted atop the Editor Popup Menu. It declares one action in the group. -->
|
||||
This group is to be inserted atop the Editor Popup Menu. It declares one action in the group. -->
|
||||
<group id="org.intellij.sdk.action.CustomDefaultActionGroup" class="org.intellij.sdk.action.CustomDefaultActionGroup" popup="true"
|
||||
text="Popup Grouped Actions" description="Custom DefaultActionGroup Demo" icon="ActionBasicsIcons.Sdk_default_icon">
|
||||
<add-to-group group-id="EditorPopupMenu" anchor="first"/>
|
||||
@ -98,7 +67,7 @@
|
||||
text="A Popup Action" description="SDK Popup Grouped Action Example" icon="ActionBasicsIcons.Sdk_default_icon"/>
|
||||
</group>
|
||||
<!-- DynamicActionGroup demonstrates declaring an action group without a static action declaration.
|
||||
An action is added to the group programmatically in the DynamicActionGroup implementation. -->
|
||||
An action is added to the group programmatically in the DynamicActionGroup implementation. -->
|
||||
<group id="org.intellij.sdk.action.DynamicActionGroup" class="org.intellij.sdk.action.DynamicActionGroup" popup="true"
|
||||
text="Dynamically Grouped Actions" description="SDK Dynamically Grouped Action Example" icon="ActionBasicsIcons.Sdk_default_icon">
|
||||
<add-to-group group-id="ToolsMenu" anchor="after" relative-to-action="org.intellij.sdk.action.GroupedActions"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user