您的位置:首页 > 移动开发

5.Eclipse 4 Application Model

2016-09-04 20:07 330 查看
前面四篇文章大致介绍了Eclipse RCP(富客户端)开发的基本流程和常见问题。接下来介绍Eclipse 4的 RCP 开发。

1. 什么是Application Model

Eclipse 平台使用了一种叫做application model的抽象描述,来阐述application的结构。application model包含了application中可视化和非可视化的元素。

可视化元素:windows, parts( Views and Edtiors), menus, toolbar等等;

非可视化元素:handlers, commands, and key bindings.

每一种Application Model都拥有很多属性(attribute),来描述他们各自的当前的状态,比如在window中position和size.同时,application model也可以通过hierachy(层)表示 model中各个元素之间的关系。

个人用户界面中展示在part中的widget,并没有通过application model 进行定义。所以, part的具体内容仍然是由各自的代码来实现。如果说Application Model是一座房子,那么房子中的每一个房间就是一个个的Part,房间中的布置就是(Prespective , part stacks, part sash containers)房间中的一个个的家具就是这里提到的Widget。



application model底层通常定义为一个静态的文件,通常默认名称是:application.e4xmi, 通常和插件的extension放在工程的根目录下。在程序启动的时候会去读取该文件,用于初始化application model. 用户更改被保存,并在重启的时候进行应用。

application model 在应用程序中是广泛存在的,其余的插件可以通过model processors 和model fragments来贡献application model.

2. 将model 和 resouces , classes联系起来

model 元素能够指向一个class或resource文件,通过uniform resource identifier(URI). 在eclipse中定义了两种URI模式,eclipse实例化的对象或者资源在很多时候都是懒加载的,例如当parts可见的时候,相关的类才会实例化。

下面的表格是描述支持的URI模式,示例中的bundle为了测试,都有较短的名称。


PatternDescription
bundleclass://BSN/package.classname Example:bundleclass://test/test.parts.MySavePartIt consists of the following parts:bundleclass:// is a fixed prefix, BSN stands for Bundle-SymbolicName and is defined in a configuration file calledMANIFEST.MF file. The Bundle-SymbolicName is followed by a ‘/’ and the fully qualified classname.
platform:/plugin/BSN/path/filename.extension Example:platform:/plugin/test/icons/save_edit.gifIdentifier for a resource in a plug-in.platform:/plugin/ is a fixed prefix, followed by the BSN stands for Bundle-SymbolicName as defined in theMANIFEST.MF file, followed by the path to the file and the filename.
例如,对于一个part来说,拥有classs URI 属性来指向一个java文件,通过bundleclass:// URI。这个类要提供一些part的行为实现,相应创建是由eclipse framework来完成的。正如在前面使用house和room的举例。 该类是负责定义家具,房间的布局,和交互对象的行为。



另一个例子便是静态资源的引用,part的Icon URI属性就是指向part所使用的图标文件。

3. 运行Application Model

在程序运行时创建的一系列的model object被称作runtime application model. 这些runtime application model是动态的,你可以改变model 对象及其属性,这些改变能够反映在你的application中。 eclipse平台有改变监听器注册在model 对象上,无论什么时候去改变相关的属性都可以直接展示到用户界面上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eclipse 应用 eclipse rcp