Eclipse插件工程目录详解
---站在巨人的肩膀上
http://blog.csdn.net/Steve_wang_victor/archive/2010/02/04/5288948.aspx
当一个Eclipse插件工程建立好了之后,会自动生成如下的工程目录结构:
Application.java
ApplicationActionBarAdvisor.java
ApplicationWorkbenchAdvisor.java
ApplicationWorkbenchWindowAdvisor.java
Perspective.java
SimplebrowserPlugin.java
Build.properties文件
Plugin.xml文件
一、Application类
Application类,是RCP应用的主程序,相当于整个RCP应用的控制器。
Application类的主要职责是创建一个工作台(Workbench),然后添加一个工作台顾问(WorkbenchAdvisor),它是启动RCP应用的第一个程序。
实现了eclipse的IPlatformRunnable接口,对于绝大多数的RCP应用来说,这个类是不用该动的。
工作台(Workbench)是RCP框架的一部分,一个应用程序只能有一个工作台,但是可以有多个工作台窗口(WorkbenchAdvisor)。
工作台的结构如下图所示:
二、Advisor类
ApplicationActionBarAdvisor、ApplicationWorkbenchAdvisor、ApplicationWorkbenchWindowAdvisor,这三个类是RCP应用的三个核心Advisor类,是RCP生命周期中非常重要的三个类。
1>ApplicationWorkbenchAdvisor
在主程序Application类的run方法中引用了ApplicationWorkbenchAdvisor类,这个WorkbenchAdvisor对Workbench的外观进行了配置。
ApplicationWorkbenchAdvisor继承了WorkbenchWindowAdvisor抽象类,插件工程向导自动填充了createWorkbenchWindowAdvisor和getInitialWindowPerspectiveId方法体,我们同样可以复写父类的其他方法,这个类的方法会在工作台的生命周期的各个关键时刻由RCP平台调用。是最重要的一个Advisor类。
下面是对WorkbenchAdvisor类中的几个重要方法的简要说明:
方法
|
说明
|
initialize
|
在启动工作台Workbench前进行初始化,这个方法有一个参数:IWorkbenchConfigurer
|
preStartup
|
在初始化完成之后,打开第一个窗口之前调用,在这里可以对打开编辑器和视图的初始化参数进行设置。
|
postStartup
|
在所有的窗口打开或者恢复以后开始事件循环之前调用,在这里可以进行一些类似自动批处理的工作
|
preShutdown
|
在事件循环结束之后,关闭任何一个窗口之前调用
|
postShutdown
|
在所有窗口关闭之后,关闭工作台之前调用,可以用来保存当前的应用状态,清理initialize方法创建的内容
|
现在我们不需要对这个类进行任何修改。
2> ApplicationWorkbenchWindowAdvisor
ApplicationWorkbenchWindowAdvisor继承了WorkbenchWindowAdvisor类,这个类主要负责对WorkbenchWindow进行控制,例如状态栏,工具栏,标题,窗口尺寸等。
这个类中的方法在WorkbenchWindow的生命中期中起着重要的作用
方法
|
说明
|
preWindowOpen
|
在WorkbenchWindow的构造函数中调用,用户设置窗口的一些特性,如:是否显示状态栏,但是这个时候还没有创建任何窗体控件,所以不能在这里引用它们。
|
postWindowRestore
|
在窗口恢复到以前保存的状态之后,打开窗口之前调用这个方法在新建窗口,Workbench第一次运行,以及没有保存窗口状态的情况下都不会调用,在这里可以调用IWorkbench.close()方法关闭Workbench和所有打开的WorkbenchWindow
|
postWindowCreate
|
在窗口创建以后,打开以前调用,或者是窗口恢复到以前保存的状态之后,在执行postWindowRestore方法之后执行
|
openIntro
|
Intro就是你第一次打开Eclipse的时候看到的内容,这个方法的默认实现是:如果IWorkbenchPreferences.SHOW_INTRO属性被设置为true,那么在第一次打开窗口的时候将会调用这个方法,在Intro显示过之后该属性将会设置为false,后来只有在WorkbenchConfigurer.getSaveAndRestore方法返回true并且关闭窗口时intro仍然显示的时候才会调用这个方法。
|
postWindowOpen
|
在Workbench窗口打开之后调用,可以在这里开或者关窗体的控件,如改变窗口尺寸等等
|
preWindowShellClose
|
这个方法在Workbench窗口关闭之前,由关联到这个窗口的ShellListener调用,如果窗口由于其他什么原因已经关闭了,则不会调用这个方法
如果方法返回的是false。那么关闭Shell的请求将会被忽略,所以这个是唯一的一个可以阻止用户关闭窗口行为的地方,也是提示用户是否保存当前工作和设置的最佳场所。
|
postWindowClose
|
在Workbench窗口关闭之后调用,这个时候窗口中的红箭已经全都被清除了,在这里可以清除由wOpen方法创建的内容
|
createWindowContents
|
这个方法用来创建窗口的内容,默认的实现添加了一个菜单栏,一个工具栏,一个状态栏,一个透视图栏,这些控件的可见性可使用IWorkbenchWindowConfigurer中的show方法来进行设置。
可以通过在子类中复写这个方法来实现自定义的窗口内容和布局,但是需要调用IWorkbenchWindowConfigurer的createPageComposite方法
这个方法只有一个Shell参数
|
createEmptyWindowContents
|
创建并且返回在窗口没有也没显示的时候要显示的控件,如果返回的是null,则会使用默认的窗口背景,复写这个方法可以实现自定义的窗体背景,默认的实现返回是null
这个方法只有一个参数:Composite
|
插件工程向导自动帮我们填充了createActionBarAdvisor和preWindowOpen方法体,在preWindowOpen方法中,我们看到向导隐藏了窗口的工作条和状态栏,并且设置了窗口的大小和标题栏上的文字。
这个类的方法中常常需要使用到Configure接口对窗口进行配置,在方法体中直接调用getWindowConfigurer方法就可以直接获得IWorkbenchWindowConfigurer对象了,就像向导在preWindowOpen中所做的一样。
3> ApplicationActionBarAdvisor
ActionBarAdvisor类几层了ActionBarAdvisor类,这个类负责为Workbench Window的ActionBar(菜单,工具条和状态栏等)创建Action。也可以通过插件清淡plugin.xml文件动态地提供action
这个类中主要有下面几个方法:
方法
|
说明
|
参数
|
makeActions
|
创建在fill方法中使用的action,这个方法用来通过key binding 服务注册 action 并且添加到关闭窗口时要清楚的action列表中。
|
IWorkbenchWindow
|
fillMenuBar
|
填充窗口的主菜单
|
IMenuManager
|
fillCoolBar
|
填充窗口的主工具栏
|
ICoolBarManager
|
fillStatusLine
|
填充窗口的主状态栏
|
IStatusLineManager
|
isApplicationMenu
|
这份方法在使用OLE对象做编辑的时候使用,根据传入的菜单ID返回指定的菜单是应用的菜单还是OLE对象菜单
在菜单合并期间,应当保留应用的菜单,至于其他的菜单最好可能从window中删除掉
|
String
|
以上三个Advisor类中的方法基本上都是不能在客户端直接调用的,而是由RCP框架调用的。
插件工程向导自动为我们实现了Advisor子类必须实现的各个方法,根据实际需要我们可以复写以上各表中方法来实现我们的意图。
三、SimplebrowserPlugin类
Plugin类继承了AbastractUIPlugin抽象类,并且是已给单例类
这个类提供了对插件Preferences ,dialog store 和image registry的支持,前面两个对象提供了保存插件和对话框设置的有效途径,后者为整个插件提供了可能在插件中频繁使用的Image资源。由此可以看出,这个类主要用来存储插件的全局信息,由于是单例类,也是放置插件中其他类要用到的资源的静态工具方法的好地方。
四、Perspective类
这是RCP应用的默认透视图。实现了IPerspectiveFactory接口,并且通过org.eclipse.ui.perspectives扩展点的className属性指定。
透视图是一套可见的视图,编辑器和菜单等。在RCP应用中,必须定义至少一个透视图并且设置为默认的透视图。
所有启动RCP应用后希望用户看到的视图或者编辑器都必须在这个类的createInitialLayout方法中设置。
五、Plugin.xml文件
Plugin.xml 文件是Eclipse的扩展点清淡,这个文件用来定义和使用Eclipse扩展点。扩展点是关联Eclipse插件的基本方式。
Eclipse提供了插件清单编辑器,使用这个编辑器可以方便的修改plugin.xml文件的内容,使用这个编辑器可以减少手工编辑这个xml文件的工作和错误。在使用插件向导创建完工程之后看到的就是这个编辑器。
六、Build.properties
在导出插件的时候这个文件制定了要build的内容和相关资源的路径,如果你向应用新增加了一些资源,例如图标文件,记得要把他们添加到该文件中。
在插件清淡编辑器的build configuration页面可以很方便的在导出应用前对这个文件进行配置。
<!--EndFragment-->
- 大小: 20 KB
- 大小: 33.2 KB
分享到:
相关推荐
eclipse打开工程目录插件,可以快速打开工程目录
自定义Eclipse插件是扩展其功能、提高开发效率的重要方式。通过编写插件,开发者可以根据自己的需求定制工作环境,实现特定的任务自动化,如代码分析、调试辅助、版本控制集成等。 创建自定义Eclipse插件涉及以下几...
无论是整个工程目录、单个文件,还是多个文件,它都能够有效地进行统计。这对于项目管理、代码质量评估以及软件复杂性分析来说非常有用。了解代码行数可以帮助开发者估计项目的工作量,评估维护成本,以及在团队间...
有了这个插件,在eclipse中打开工程目录就很方便了。 使用方法: 直接将该jar文件放置在eclipse的 plugin 目录下,然后重启eclipse平台就可以在右键中看到East Explorer菜单项,就可以打开资源所在的目录了。just ...
学习创建新的Eclipse插件项目,以及如何在工程中添加和组织代码。 3. **扩展点(Extension Points)与扩展(Extensions)**:Eclipse插件通过定义和使用扩展点来实现功能的集成。开发者需要了解如何查找、定义和...
Eclipse是一款广泛使用的Java开发集成环境,对于前端开发者而言,Eclipse插件的引入可以极大地提升EXT JS开发的效率和体验。 "EXT JS Eclipse插件"是专为Eclipse设计的工具,它集成到了Eclipse IDE中,提供了对EXT ...
Eclipse插件开发内部培训第三部分主要关注Eclipse平台中的资源管理和相关API的使用。Eclipse作为一个强大的集成开发环境(IDE),其插件体系基于Java虚拟机(JVM)上的Equinox,这是一个基于OSGI框架的扩展点系统。该...
安装这些插件的过程相对简单,可以通过Eclipse的内置软件库(Help > Install New Software)进行搜索和安装,或者下载插件的`.jar`文件,手动添加到Eclipse的插件目录下。 在使用过程中,开发者应该注意以下几点: ...
**UAP-STUDIO 集成开发环境与Eclipse插件详解** UAP-STUDIO(统一应用平台工作室)是一款强大的企业级应用开发工具,它提供了一整套完整的开发、调试、部署解决方案,旨在提高开发效率并降低开发复杂度。Eclipse,...
Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...
"解压后放入dropins文件夹即可",这是Eclipse插件安装的一种常见方法。Eclipse的dropins目录是用来自动加载插件的,将下载的插件压缩包解压后放入此目录,Eclipse在启动时会自动识别并安装该插件。用户无需通过...
总的来说,Eclipse插件开发是一个深度和广度并存的领域,涵盖了软件工程的多个方面,包括模块化设计、图形用户界面开发、事件驱动编程和组件部署。通过学习和实践,开发者可以利用Eclipse的强大功能构建出高效、可...
在无法直接通过网络下载的情况下,将`ibator`的Eclipse插件手动添加到Eclipse的`plugins`目录,是确保在特定环境中使用该工具的有效方法。 **1. 安装ibator插件** 安装`ibator`插件的过程非常简单。首先,你需要...
总的来说,jbpm Eclipse插件开发涉及了Eclipse插件开发的基础知识,jbpm的工作流管理原理,以及软件工程中的测试和调试技巧。通过熟练掌握这些知识点,开发者可以高效地利用jbpm Eclipse插件进行业务流程的建模和...
**findbugs eclipse插件** 是一个非常重要的工具,主要用于帮助开发者在Eclipse集成开发环境中发现潜在的代码问题和错误。FindBugs是一款静态代码分析工具,它可以分析Java代码,找出可能存在的bug、不良编程习惯...
另外,如果你有"extplugins"这个压缩包,里面可能包含了这两个插件的安装文件,你可以将它们解压到Eclipse的dropins目录下,重启Eclipse后,插件就会自动安装并生效。 总的来说,Jad和Explorer插件都是Eclipse生态...
Eclipse插件安装教程 Eclipse是一个功能强大的开源管理工具,但需要安装相应的插件来实现其强大功能。本文将提供一个简单的Eclipse插件安装教程,涵盖了Eclipse的安装、Tomcat插件的安装、GEF插件的安装、Eclipse ...
本文将详细介绍这款“Eclipse插件之UML反向类图生成工具”。 首先,让我们理解什么是UML(统一建模语言)。UML是一种标准化的建模语言,用于软件设计和系统分析,包括类图、序列图、用例图等多种图表类型。类图是...