Eclipse RCP application model

阅读数:201 评论数:0

跳转到新版页面

分类

python/Java

正文

运行时,Eclipse 应用的结构是通过一个application model来描述的。这个application model包含了应用中独立的元素和它们的结构关系。

每个model element都有用来描述它当前状态的属性,在必要的情况下,一个model element可以包含对java类和静态资源的链接。

application model一般定义为一个静态文件,对于RCP应用是Application.e4xmi文件,在程序启动时会读取这个文件,如果修改了这个文件,需要在下次启动时才会生效。

model element可以通过URI指向一个class或一个静态资源,为此Eclipse定义了两种URI模式:

模式 描述

bundleclass://Bundle-SymbolicName/package.classname

例如:

bundleclass://test/test.parts.MySavePart

一个Java类的标识符:

bundelclass://是一个固定的前缀。

Bundle-SymbolicName定义在MANIFEST.MF文件中。是一个全限定的类名。

platform:/plugin/Bundle-SymbolicName/path/filename.extension

例如:

platform:/plugin/com.example.plugin/icons/save_edit.gif

用来标识资源。

platform:/plugin/是一个固定的前缀

 

1、Window

一个Eclipse应用可以包含一个或多个window,它可能是MWindow或MTrimmeWindow(它可以包括工具栏)。

2、Parts

Parts是用户接口部件,它可用来定位和修改数据,Parts可以停放在container中,一个part可以有一个隐藏菜单、上下文菜单和一个工具条。

Parts可以分为views和editors。

(1)Views

可以用来显示和修改一组数据,如果允许修改数据,修改是直接作用于底层数据结构的,不需显示的保存。

(2)Editors

一般用来修改单一的数据元素,修改后需要显示的进行保存操作。

3、Part Containers

Parts可以直接放在一个window或一个perspective中,它们也可以分组或使用stack(Part Stack)进行排列或使用sash containers(Part Sash Container)进行排列。

一个part stack 排列它的孩子时像浏览器,一个part sash constainer同时显示它所有的孩子,以水平或垂直的方式。

下面的图片显示一个Eclipse应用布局使用了两个part sash container和三个part stacks。

你可以在一个part sash container的孩子的Container Data属性上设置部署权重。它可以改变使用空间的比例。如果你定义了其中一个孩子的Container Data值,那么也要定义此Container所有孩子的值。

提示:container data的总值最好设置的大一些,避免移动时产生问题。

4、Perspective

Perspective是用于其它part container或part的可选container,它用Mperspective表示,而且一定要放在一个MperspectiveStack中.在MperspectiveStack中只能有一个Mperspective处于可见,在perspectives间可以有共享的elements。

例如,Eclipse IDE使用perspective提供用于不同任务的视图组织。

perspective的切换可以通过EPartService(Eclipse 平台提供的服务)。

5、其它的一些model objects

(1)MApplication

用于描述application object,所有的其它model elements都包含在这个object中。

(2)MAddon

一个自包含的组件,一般没有用户接口。它可以用于应用生命周期的事件注册和处理这些事件。

(3)MWindow

应用中的窗口。

(4)MTrimmed Window

包含工具栏的窗口。(TrimBars)

(5)Mperspective

在一个窗口中用于展示一个不同的parts部局。

(6)MPart

View或Editor

(7)MDirtyable

MPart的一个属性,如果设置为true,会通知Eclipse platform这个Part包含了未保存的数据。你可以使用一个handler来查询这个属性来提供一个保存的可能。

(8)MPartDescriptor

用于创建新parts的模板,一个新的part可以基于这个part descriptor来创建和显示。

(9)Snippets

Snippets可用来预配置你的应用中想要使用的part。你可以使用Eclipse framework来克隆一个snippet,然后在运行时把它添加到application model中。




相关推荐

Eclipse RCP是Rich Client Platform,即富客户平台,使用者可以使用Java来创建桌面程序,这些应用程序能够得到Eclipse的底层支持。 1、下载</p

每个plug-ins可以通过下面方式作用于application model: (1)static contributions 通过文件,这些扩展称为fragment

1、@javax.inject.Inject 定义在JSR330中 ,可以写在字段、构建函数或方法上,Eclipse 框架试图把相关的对象注入到字段或实例的参数上。

一个Eclipse应用在启动过程时会创建一个实现IEclipseContext接口的对象,这个对象称为Eclipse context。 这个context和Map数据结构类似,但和

1、@PostConstruct 当一个类的构造函数执行,字段和方法都注入后执行。 2、@PreDestroy 类被destroyed前执行,可以用来清

Eclipse application model允许你指定command和handlers。 command和handlers model element的使用是可选的,你可以使

一个Eclipse application的配置包括icons、splash screen和plug-ins。 一个product总是指向一个application class,对

一个feature可以理解为一个逻辑单元,描述了一组plug-in和其它features。它也有name、version number和license information。 f

SWT全称是Standard Widget Toolkit。 Display和Shell Display和Shell类是SWT应用的主要组件,org.eclips

JFace是基于SWT的一组plug-ins,但是JFace不会隐藏SWT的API。JFace提供了viewers框架,它可以简化数据模型和可视化显示的匹配。 JFace也提供了帮