Part 1: Actions Vs Commands

源:http://blog.eclipse-tips.com/2009/01/commands-part-1-actions-vs-commands.html

 

eclipse 有两种方式创建Workbench的菜单。Actions and Commands

 

Commands 虽然是最新新更新的、强大的,可是我还是喜欢用Actions ,就是因为我习惯了Actions的用法。

 

 

现在我们就开始研究一下Command framework。

我深入的研究了下Command framework,我发现这东西确实好,我决定写一系列这方面的文章。

假如有哪些写的不对的。望大家多多指教。

 

 

我们用Action 可以去创建 toolbar  menu  downmenu  (popup)

我们可以在plugin.xml指定它们的一些细节,如 标签、提示、帮助、懒加载等。

用这种方式去实现的缺点在哪里呢?

 

1:ui与handler  总是系在一起,不可以彻底的分开。

2:不可以在不同的part中实现( toolbar  menu  downmenu  (popup)),还得必须在plugin.xml写重复的xml。

3:假如说有一个action需要更改,要更新所有重复的action配置。

4:另外就是在plugin中重复的action定义,在启动初始化的时候会被加载多个实例在内存中。

 

让我们看看Command framework是如何消除以上问题的。

 

 

Commands  是通过org.eclipse.ui.commands  扩展点定义的。

一个典型的command定义如下:

<command 
         id="com.eclipse-tips.commands.someCommand" 
         name="Some Command"> 
</command>


现在我们定义了一个command,假如想在某个地方创建  toolbar、menu等,需要通过org.eclipse.ui.menus

扩展点来创建,代码如下:

<menuContribution 
      locationURI="toolbar:org.eclipse.ui.main.toolbar"> 
   <toolbar 
         id="com.eclipse-tips.commands.toolbar1"> 
      <command 
            commandId="com.eclipse-tips.commands.someCommand" 
            id="com.eclipse-tips.commands.someCommandInToolBar"> 
      </command> 
   </toolbar> 
</menuContribution>

 

现在我们已经在创建中创建了一个toolbar,菜单的执行代码在哪里呢?这时候需要用到org.eclipse.ui.handlers扩展点来实现。代码如下:

<handler 
         class="com.eclipse_tips.commads.SomeCommandHandler" 
         commandId="com.eclipse-tips.commands.someCommand"> 
</handler> 

 

最后我们添加一个图标都command中,需要用org.eclipse.ui.commandImages扩展点来实现。

代码如下:

<image 
         commandId="com.eclipse-tips.commands.someCommand" 
         icon="icons/sample.gif"> 
</image>
 

 

现在让我们看看效果怎么样.


 

以前我们是通过一个扩展点搞定的东西。现在我们用了4个扩展点来实现。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值