Eclipse RCP教程 – 09 – Eclipse 4 应用程序模型

9. Eclipse 4 应用程序模型

9.1. 应用程序模型是什么?

Eclipse平台使用一个抽象的描述——应用程序模型——来描述应用程序的架构。应用程序模型包含了应用程序的可见元素以及不可见元素。

可见部分有窗口,部件(视图或编辑器),菜单,工具栏等。不可见组件有处理器、指令(Commands)和按键绑定(Key bindings)。

每个模型元素都有属性来描述其当前状态,如窗口的大小和位置。应用程序模型还通过层级结构来展示模型元素之间的关系。

显示在部件之中的独立的用户界面元素,不是通过应用程序模型来定义的。例如,部件的内容是通过你写的代码来实现的。

如果应用程序模型是一个房间,它将描述可用的房间(部件)和布局(透视图(perspectives), 部件堆栈(part stacks), 部件窗框(part sash containers)),而不是房间内的家具。下面的图形解释了这一点。

20170507_001

应用程序模型的基础往往是由一个静态文件来定义的。默认它的名字叫 Application.e4xmi ,并位于定义产品扩展的插件的主目录中。在应用程序启动时就会读取这个文件,并用来初始化应用程序模型。用户所做的修改会被保存下来,并在下次启动应用程序时生效。

应用程序模型是可扩展的,其他插件可以通过模型处理器(model processors)模型片段(model fragments)来扩展它。

9.2. 将模型元素与类和资源关联起来

模型元素可以指向一个类或一个由URI定位的静态资源。基于此,Eclipse定义了两种URI模式。大部分情况下,Eclipse实例化引用的对象或资源时都是懒加载的。比如,一个部件的类在其显示时才加载。

下面的表格描述了支持的URI模式。下面的内容假设bundle有个简短的名称test。

表格1. 引用类和静态资源文件的URI模式

模式 描述
bundleclass://Bundle-SymbolicName/package.classname例如:
bundleclass://test/test.parts.MySavePart
标识一个Java类。它包含以下部分:bundleclass:// 是固定的前缀,Bundle-SymbolicName是定义在MANIFEST.MF文件中的,BSN后面紧跟一个’/’和完整的限定类名。
platform:/plugin/Bundle-SymbolicName/path/filename.extension例如:
platform:/plugin/com.example.plugin/icons/save_edit.gif
用来标识资源,是插件中某一个资源的标识符。platform:/plugin/是固定的前缀,后面是BSN,以及文件的路径和文件名。

例如,一个部件有一个Class URI属性,其通过bundleclass://URI指向一个Java类。这个类提供了该部件的行为,而Eclipse框架会为该类创建对应的对象。继续采用前文的房子和房间的比喻,这个类负责定义家具、房间布局及对象的交互行为。

20170507_002

静态资源引用的示例是部件的Icon URI属性,这个属性可以指向部件所使用的图标。

9.3. 运行时应用程序模型

在应用程序运行时被创建的一系列模型对象被称为运行时应用程序模型(runtime application model)。这个运行时应用程序模型是动态的。例如,你可以修改模型对象及其属性,然后这些修改就会应用到你的应用程序中。Eclipse平台在模型对象上注册了修改监听器,当你修改了相关属性时它就会更新到用户界面上。

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2017/05/eclipse-rcp-09/
百度已收录