Eclipse RCP开发2--Eclipse常用扩展介绍

    从Eclipse3.3开始,org.eclipse.ui.menus扩展改变了menu、toolbar以及popup的安放和显示方式。这些改进主要与以前的:
    org.eclipse.ui.actionSets
    org.eclipse.ui.editorActions
    org.eclipse.ui.popupMenus
    org.eclipse.ui.viewActions
    等扩展相区别。

    Eclipse提供了一种更加柔性和高效的创建menu、toolbar以及popup的方式。

  • org.eclipse.ui.commands 
    一个任务的逻辑表达;
  • org.eclipse.ui.handlers
    即对command的实现;
  • org.eclipse.ui.bindings
    将command绑定到一个Key上(如将Ctrl+1绑定到一个command上);
  • org.eclipse.ui.contexts
    绑定组织到一个上下文中;
  • org.eclipse.ui.commandImages
    给command设置图标;
  • org.eclipse.ui.editor
    Eclipse编辑器;
  • org.eclipse.ui.view
    Eclipse视图
  • org.eclipse.ui.menus
    添加菜单/菜单项到主菜单、主工具栏,视图/编辑器的上下文菜单、工具栏等等。

    Action与Command区别:

    实际上ActionSet和Command框架的目标是相同的,都可以实现菜单、工具栏等扩展。但是二者也存在很大的区别:

  • Action将UI的表达和实现代码都存储在Action中,虽然二者可以通过Action Delegate进行一定的分离,但是它们还是依赖于Action。选择事件传递到Action中,并且Action的enabled状态依赖于当前的选择。这种表现方式不是很优美。为了将Action放置到workbench 中,我们不得不使用这些扩展点: org.eclipse.ui.viewActions、 org.eclipse.ui.popupMenus或 org.eclipse.ui.editorActions。
  • Command与此相比就要优美得多。Command实际上一些须执行代码的抽象表达, 这些代码的实际处理放在Handler中。当Workbench处于某种状态,Handler被执行。将Command放置到Workbench中实际上只需要用到org.eclipse.ui.menus一个扩展点。

  具体可参考:http://wiki.eclipse.org/FAQ_What_is_the_difference_between_a_command_and_an_action%3F

posted on 2010-03-22 16:11  Alex Yu  阅读(2943)  评论(0编辑  收藏  举报

导航