eclipse plugin:How 使用 actionID 调用 actionSet
eclipse plugin:How to call actionSet with actionID
现在我想调用一个定义在另一个插件中的actionset,我已经有了actionId,但是我不知道怎么调用它。
这是动作集:
<action
class="com.src.action1"
icon="action1.png"
id="com.src.action1"
label="action1"
style="push"
toolbarPath="new.ext">
</action>
我知道我可以像这样通过 commandId 调用命令 :
IHandlerService handlerService =
PlatformUI.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(COMMANDID, null);
所以我想知道工具栏按钮是否由actionSet定义,我可以通过actionId像命令一样调用它吗?
如果操作具有 definitionId
参数,则它们仅连接到命令。例如来自 JDT 插件的这个动作:
<action
allowLabelUpdate="true"
style="toggle"
toolbarPath="org.eclipse.ui.edit.text.actionSet.presentation/Presentation"
id="org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences"
definitionId="org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences"
disabledIcon="$nl$/icons/full/dtool16/mark_occurrences.png"
icon="$nl$/icons/full/etool16/mark_occurrences.png"
helpContextId="org.eclipse.jdt.ui.toggle_mark_occurrences_action_context"
label="%toggleMarkOccurrences.label"
retarget="true"
tooltip="%toggleMarkOccurrences.tooltip">
</action>
在此示例中,命令 ID 为 org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences
。所以你可以使用:
来执行它
handlerService.executeCommand("org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences", null);
如果没有 definitionId
参数,则操作与命令无关,您无法通过处理程序服务调用它。
现在我想调用一个定义在另一个插件中的actionset,我已经有了actionId,但是我不知道怎么调用它。
这是动作集:
<action
class="com.src.action1"
icon="action1.png"
id="com.src.action1"
label="action1"
style="push"
toolbarPath="new.ext">
</action>
我知道我可以像这样通过 commandId 调用命令 :
IHandlerService handlerService =
PlatformUI.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(COMMANDID, null);
所以我想知道工具栏按钮是否由actionSet定义,我可以通过actionId像命令一样调用它吗?
如果操作具有 definitionId
参数,则它们仅连接到命令。例如来自 JDT 插件的这个动作:
<action
allowLabelUpdate="true"
style="toggle"
toolbarPath="org.eclipse.ui.edit.text.actionSet.presentation/Presentation"
id="org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences"
definitionId="org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences"
disabledIcon="$nl$/icons/full/dtool16/mark_occurrences.png"
icon="$nl$/icons/full/etool16/mark_occurrences.png"
helpContextId="org.eclipse.jdt.ui.toggle_mark_occurrences_action_context"
label="%toggleMarkOccurrences.label"
retarget="true"
tooltip="%toggleMarkOccurrences.tooltip">
</action>
在此示例中,命令 ID 为 org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences
。所以你可以使用:
handlerService.executeCommand("org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences", null);
如果没有 definitionId
参数,则操作与命令无关,您无法通过处理程序服务调用它。