使用GMF开发可视化界面编辑器(二)——自定义Figure

除了以XML的方式配置Figure组件之外,GMF还允许用户直接编写Figure的实现类。

同GEF一样,GMF在视图展现上依然使用Java的draw2d技术框架,而我们所创建的Figure组件一般继承org.eclipse.draw2d.Figure

类或其子类。这里,我们可以参考JBPM自带的流程编辑器源代码,把它已定义好的Figure组件copy过来稍作修改,拿来直接使用。比如StartFigure,用于定义开始节点的视图组件。

另外,我们所自定义的Figure,或其他组件最好放到一个独立的bundle中进行管理,与GMF所驱动出的代码加以区分,比如在现有

的bundle基础上加custom表示该bundle不是GMF所驱动出来的,而是我们人为定义的。

Figure定义好之后,便可将它引入到我们的视图模型中去,新建一个Figure Descriptor,name属性设置为StartFigure,然后添加一个Custom Figure节点,将Qualified Class Name属性设置成StartFigure的类名全称,设置完成以后,还需要把StartFigure所在的包添加到MANIFEST.MF文件包依赖关系中去,因为我们所定义的Figure在另一个Bundle中,最后在Canvas节点下实例化我们所声明的StartFigure,新添加一个Node节点,Name属性设置成Start,Figure属性设置成StartFigure,至此,视图模型定义结束。

 

定义好视图模型之后,修改工具模型。

新建一个Creation Tool,Title属性设置为"开始",Description属性设置为"创建开始节点",然后为该工具指定默认的图标信息。

 

最后修改映射模型,完成开始节点的映射关系。

新建一个Top Node Reference,Containment Feature属性设置为Process.nodes,为其添加Node Mapping节点,完成如图所示的属性设置。

start mapping

模型修改完成以后,我们需要重新生成generator模型,右键映射模型配置文件,在弹出的菜单中选择Create generator model按照向导,完成模型的生成操作。

最后重新生成项目代码,启动项目实例,可以看到Start节点也已经添加到视图中去。

process overview

可以按照此方法,完成End节点的添加操作,这里略去。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值