RCP应用程序开发之二——核心类总结

原创 2007年09月16日 12:24:00
上次讲述了怎么新建一个RCP应用程序, 没有对其核心的类总结。今天晚上抽空简单的总结了一下,主要包括针对
application,Perspective,WorkbenchAdvisor,WorkbenchWindowAdvisor,ActionBarAdvisor的总结。
在eclipse3.0版本新建的rcp应用程序中有三个核心的类:
(1)Application:IPlatformRunnable的实现类,做为rcp应用程序的入口。重要的功能就是:在它的run的方法中创建了工作台:PlatformUI.createAndRunWorkbench(display,new ApplicationWorkbenchAdvisor())!我们可以通过这个工作台新建活动的窗体,为生成窗体主界面提供了保障,也是通过这个工作台,来新建我们活动的子窗体。
(2)IPerspectiveFactory的实现类Perspective,在前面讲到,Perspective是Eclipse工作台所有已打开的视图和编辑器的容器。每个工作台只有一个透视图,我们可将相关功能统一透视图中。视图和编辑器不可在不同的透视图之间共享。透视图具有它的编辑器,视图,可设计它们执行不同的功能呢个。一个系统中也可以由多个透视图,透视图的个数取决于应用程序的复杂程度。
(3)WorkbenchAdvisor的实现类,负责配置工作台,当执行rcp应用程序时,显示该工作台。可在这个类中配置窗体信息:如工作台窗体的菜单信息,工具栏等。并为开发人员提供针对rcp应用程序生命周期的访问!实际上,整个rcp应用程序的配置都在这个类中完成的。但在eclipse3.1以后的的版本中,这些WorkbenchAdvisor的中若干方法如preWindowOpen()等都为推荐为不用了。针对rcp应用程序的配置,以及针对rcp应用程序生命周期的访问都放在WorkbenchWindowAdvisor中了。
再eclipse3.1以后的版本中,在自定义生成rcp应用程序时,有五个主要的类:
(1)Application:IPlatformRunnable的实现类,做为rcp应用程序的入口。
(2)也有个IPerspectiveFactory的实现类Perspective。
(3)WorkbenchAdvisor的实现类ApplicationWorkbenchAdvisor,在Application启动时,这个类作为参数来传递给启动方法。因此,工作台窗体是基于这个类才创建完成的。在ApplicationWorkbenchAdivor中,与3.1以前的版本不同的是,需要实现的方法不同了,以前需要实现preWindowOpen()、fillActionBars()等方法,而在3.1以后,这个类需要实现两种比较重要的方法:createWorkbenchWindowAdvisor()、getInitialWindowPerspectiveId(),前者返回的是:一个WorkbenchWindowAdvisor对象,用来具体的生成活动窗体了。这个方法很重要,和我们生成子窗体也关系密切,在具体的讲述怎么生成子窗体时,我们在详细的阐述它的功能。
后者用来返回一个透视图的ID,在定义的工作台窗体中返回对应ID的透视图,如果,没有,则没有任何的透视图被返回。下面我们看看WorkbenchWindowAdvisor的实现类ApplicationWorkbenchWindowAdvisor。
(4)WorkbenchWindowAdvisor的实现类ApplicationWorkbenchWindowAdvisor:在这个方法中定义了两个方法:createActionBarAdvisor()、preWindowOpen()前者用来定义菜单栏,工具栏,后者用来定义主窗体的名称等信息。
(5)ActionBarAdvisor的实现类ApplicationActionBarAdvisor:创建管理配置创建的action bar(用来定义窗体的菜单和工具栏),用来配置workbenchwindows。
我们可以这么理解:Application用于创建工作台,而WorkbenchAdvisor则用来创建工作台的活动窗体了。那么具体怎么创建的,则由WorkbenchWindowAdvisor和ActionBarAdvisor来完成了。另外,应用程序中如有需要定义透视图,我们定义一个透视图就可以了。一个最基础的rcp应用程序基本由这些核心的功能类组成的。

 

注:本文转载自:http://blog.csdn.net/jdenght/archive/2006/07/31/1005427.aspx

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

御淑堂是丰胸中药世家主创秘方,如今融入了最新的丰胸产品精华。

御淑堂是丰胸中药世家主创秘方,如今融入了最新的丰胸产品精华。据古代传说,后宋高宗迁都临安(就是现在杭州市),也把后宫三千佳丽带过来了,曾有“山外青山楼外楼 西湖歌舞几时休 暖风吹的游人醉 直把杭州做汴...

Openwrt常用命令

AR系列分区地址 4M flash的分区地址: 分区名        起始地址        结束地址 ...

手工添加的LUCI WIFIDOG能保存UCI配置,但是不启动wifidog,问题出在init.d下的wifidog未enable

/etc/init.d/wifidog enable 即可
  • idjoy
  • idjoy
  • 2015-01-10 01:34
  • 1894

WifiDog移植到Ralink_ApSoC_SDK_4210过程记录

configure的配置体系过于复杂,没有弄懂,只好动用brute force了。 借鉴了Ralink_ApSoC_SDK_4210(以后简称SDK)中ntfs-3g、snmpd的结构和Makefi...

openwrt系统初始化分析

openwrt固件启动后,进入uboot,加载内核,启动init进程,而init进程包含在procd进程中,启动代码如下: int main(int argc, char **argv) { ...

Openwrt /lib/functions/uci-default.sh

Openwrt /lib/function/uci-default.sh 该脚本生成了/etc/config/下的默认配置:#!/bin/sh # Copyright (C) 2011 OpenW...

luci实现的wifidog认证服务

利用luci写了个wifidog认证服务,实现直接openwrt路由器本地认证。直接安装ipk安装包,然后修改/etc/wifidog.conf文件(需要先安装wifidog),如下:AuthServ...

etc下的uci-defaults看起来会在系统第一次运行的时候会运行里面的脚本

一些安装包在里面放置了相关脚本。第一次启动运行了这些脚本后,整个目录就空了。 这次结合wifidog需要/etc/init.d/wifidog enable一次,刚好就在这里用上了
  • idjoy
  • idjoy
  • 2015-01-10 01:39
  • 1583

Openwrt使用mtd和sysupgrade刷机、备份恢复系统配置

查看当前系统分区信息: 1 2 3 4 5 6 7 8 cat /proc/mtd dev: size erasesize name mtd0: 00...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)