E4 - 模型工作区的概念[译]

   模型 

   E4的工作区采用Eclipse EMF进行模型化,该模型包含了工作区的图形元素,比如UI部件(视图、编辑器和菜单栏)和非UI的命令框架(handler,command和keybindings),你可以在工作区运行时访问并更改它。

    Eclipse 3.x没有工作区模型的概念,它的UI元素是通过扩展点定义的并存储,在运行时登记创建,这不会描述UI元素之间的关系。

    E4的工作区比Eclipse 3.x更加灵活,透视图不再是必须的,视图和编辑器的区别也不是很明显了(统称”Parts”).

    E4 模型大致包含以下几个包

  •    应用 : 主要元素,比如IEclipseContext、Application和下面的子包
  •    UI  :   包含一些通用的组件,比如Context、menus、toolbars、parts和其他UI相关的模型组件。
  •    命令:    定义了各种commands、handlers和keybinding.
  •    描述:    用于存储UI组件的有关信息

   

   E4 工作区模型编辑器

   E4的应用程序基于EMF 模型,模型文件可以使用标准的EMF 工具创建和更改。E4有个专门的模型编辑器(由Tom Schindl开发),这可以很方便的更改E4的应用模型,该编辑器关联了Application.e4xmi文件,你也可以使用"Open-with"-> "e4 Workbenchmodel Editor"打开

 

    E4的应用程序模型被存储到一个标准格式的XMI文件,通过扩展点org.eclipse.core.runtime.products下applicationXMI属性可以指定。应用程序启动时根据这个文件初始化工作区。

    你也可以通过org.eclipse.e4.workbench.model扩展点提供更多的模型元素,在运行时这些元素被合并到应用程序模型中。

    模型信息在工作区构造的时候被读取,可被存活整个运行时环境,当运行时修改模型,比如拖动一个窗体、回写模型数据,如果想让用户的更改不影响模型,可以增加”clearPersistedState”运行时参数,类似与Eclipse 3.新的configurer.setSaveAndRestore(false");

  

    启动时合并模型元素

   E4的模型有三个潜在部分将合并到运行时:

  1. 应用程序定义在Application.e4xmi中的基本模型,比如主菜单、视图等。
  2. 其他插件通过扩展点添加的模型,插件可以被安装和卸载,意味着我们有可变的模型来源。
  3. 程序运行时,模型对象被更改,比如视图被关闭、菜单/工具栏被定制化、新视图被打开等等,这些改变需要持久化到会话中。而且该模型应该可以捕获到真正的差异,比如当你移动一个视图到另外一个地方,然后又移回原来的位置应该不会产生Dellta数据。

  

    工作区模型需要让用户的更改反应到Application.e4xmi或者模型对象中,工作区的处理流程是:启动程序,执行第一步和第二步,然后将运行期间的变化记录deltas中,一直维护这些数据直到应用程序关闭,最终这些deltas数据会通知到UI组件中

 

    工作区模型被定义在org.eclipse.e4.ui.model.workbench的model/UIElements.ecore文件中,UIElements.genmodel定义了工作区模型的接口.

 

原文:http://www.vogella.de/articles/EclipseE4/article.html#applicationmodel

posted @ 2011-07-14 17:13  vwpolo  阅读(694)  评论(0编辑  收藏  举报