RCP GMF 扩展Action

在采用GMF开发图形编辑程序时,我经常要自己扩展GMF生成的应用程序。本文围绕如何添加自定义的Action做个详细的介绍。希望对大家有所帮助:

GMF生成的代码其实就是一个RCP应用程序,扩展Action有两种途径:

第一种就是通过扩展点 org.eclipse.ui.actionSets来添加action,

其中每个action都有一些属性其中重要的属性有:

id :标示该action的唯一标示符。

label:action显示时的名称,该属性一般可以采用占位符的方式定义,在action启动时Eclipse Platform会自动去查找plugin.properties文件中的相应字段来加载具体的文字。例如:如果你将其定义为%newDiagramActionLabel时,那么在你的plugin.properties文件中就应该有newDiagramActionLabel=你要显示的名字;

menubarPath:用来定义在菜单栏中显示路径;

toolbarPath:用来定义在工具栏中显示的路径;

class:具体实现的类,在该类中你要实现重写run方法来完成你要得操作。整个流程定义完成后你会在plugin.xml文件中得到如下所示的内容:

<extension
id="rcp-actions"
point="org.eclipse.ui.actionSets">
<actionSet
id="com.ibm.crl.pipesimulator.diagram.ActionSet"
label="%applicationActionSetLabel"
visible="true">
<action
class="pipesimulator.diagram.application.DiagramEditorActionBarAdvisor$OpenAction"
definitionId="com.ibm.crl.pipesimulator.diagram.OpenCommand"
id="com.ibm.crl.pipesimulator.diagram.OpenAction"
label="%openActionLabel"
menubarPath="file/additions">
</action>
</actionSet>
</extension>

当然最简单的方式是通过plugin.xml文件的编辑器来编辑,双击该文件打开它。如图:


点击add按钮添加actionSet扩展点,在actionset扩展点下新建一个action并在右边填写action的属性如图所示


你可以点击class即可打开新建action向导。

第二种方法:通过代码添加,你可以在DiagramEditorActionBarAdvisor类中的

protected void makeActions(IWorkbenchWindow window)添加如图:


但这种方法使用于所有的RCP程序,那么我们既然选择了GMF就让我们来看一看GMF生得代码在哪里可以扩展吧,如图所示:


这个类的名字会因你的应用不同而不同但后半部分是不变的,所以找到他打开。在该文件的

public void init(IActionBars bars, IWorkbenchPage page)方法中我们添加实现代码如下所示,相信你应该可以理解

生成后的效果图如下图所示:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值