首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > VSTS >

Part 一: Actions Vs Commands

2012-10-27 
Part 1: Actions Vs Commands源:http://blog.eclipse-tips.com/2009/01/commands-part-1-actions-vs-comma

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?
???????? src="/img/2012/10/19/120645905.png">

?

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

?

?

?

?

热点排行