我们在开发rcp应用程序的时候,有许多可重用的方法。因此,我们定义了Eclipse工具类,以方面在开发的过程中能够直接调用,加强了代码的可重用性,同时也方便了项目小组成员来使用这些重用的方法。<o:p></o:p>
package com.jdenght.rcpstudy.util;<o:p></o:p>
<o:p> </o:p>
import org.eclipse.ui.IWorkbench;<o:p></o:p>
import org.eclipse.ui.IWorkbenchWindow;<o:p></o:p>
<o:p> </o:p>
import com.jdenght.rcpstudy.RcpstudyPlugin;<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
* 得到插件应用程序中工作台的相关元素的工具类<o:p></o:p>
* @Author:DENGHT<o:p></o:p>
*/<o:p></o:p>
public class WorkbenchUtil {<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* @see RcpstudyPlugin.getDefault().getWorkbench()<o:p></o:p>
* @return 返回当前的工作台<o:p></o:p>
*/<o:p></o:p>
public static IWorkbench getWorkbench(){<o:p></o:p>
return RcpstudyPlugin.getDefault().getWorkbench();<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* @see RcpstudyPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow()<o:p></o:p>
* @return 返回当前的工作台的活动窗体<o:p></o:p>
* (这里的窗体并不包括对话框、向导、用swt定制的窗体等,指的是当前一个子业务系统的窗体,这个窗体具备有视图、属性页、导航树等)<o:p></o:p>
*/<o:p></o:p>
public static IWorkbenchWindow getActiveWorkbenchWindow(){<o:p></o:p>
return RcpstudyPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* @see RcpstudyPlugin.getDefault().getWorkbench().getWorkbenchWindows()<o:p></o:p>
* @return 返回当前工作台的所有窗体<o:p></o:p>
* (这里所有的窗体并不包括普通的对话框、向导、用swt定制的窗体等,而是指所有具备视图功能的窗体) <o:p></o:p>
*/<o:p></o:p>
public static IWorkbenchWindow[] getWorkbenchWindows(){<o:p></o:p>
return RcpstudyPlugin.getDefault().getWorkbench().getWorkbenchWindows();<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* @see RcpstudyPlugin.getDefault().getWorkbench().getWorkbenchWindowCount()<o:p></o:p>
* @return 返回当前工作台窗体数目<o:p></o:p>
*/<o:p></o:p>
public static int getWorkbenchWindowCount(){<o:p></o:p>
return RcpstudyPlugin.getDefault().getWorkbench().getWorkbenchWindowCount();<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
其中:RcpstudyPlugin.getDefault().getWorkbench()是在程序的插件类RcpstudyPlugin的超类AbstractUIPlugin中定义的。<o:p></o:p>
public IWorkbench getWorkbench() {<o:p></o:p>
return PlatformUI.getWorkbench();<o:p></o:p>
}<o:p></o:p>
因此,我们亦可直接通过PlatformUI.getWorkbench()获得这个工作台。为什么能够通过这个方法来获得工作台呢?原因在于:当我们启动rcp应用程序时,在Application类中,我们通过<o:p></o:p>
int returnCode = <o:p></o:p>
PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());<o:p></o:p>
创建了工作台。<o:p></o:p>
一个工作台可以有多个活动的窗体来构成。目前只是总结了少许公用方法,有时间会继续整理。
分享到:
相关推荐
RCP 菜单与工具栏小结
Eclipse Rich Client Platform (RCP) 的目标是在各种不是集成开发环境 (IDE) 的最终用户应用程序中使用 Eclipse。随着 Eclipse V3.1 的发布,创建 RCP 应用程序变得容易。本教程将指导您一步步创建自己的 RCP 应用...
开发你的第一个EclipseRCP应用程序汇编.pdf
NULL 博文链接:https://wenhai.iteye.com/blog/677507
eclipse icons,用来开发rcp桌面应用程序
eclipse rcp应用系统开发方法与实战源代码.zip
NASA Maestro screen shot。 复杂的桌面应用界面,是否能够说明Java做桌面应用(或言C/S应用)的能力呢?
EclipseRcp 例子程序
非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。
ECLIPSE+RCP应用系统开发方法与实战 PDF 比较清晰 有目录 本人在网上找了N久一直没找到,在taobao上买的。 所以收了5分,不要说我太黑哦。
SWT RCP 界面--如何编写一个漂亮的 SWT RCP 界面
Eclipse RCP应用系统开发方法与实战
RCP程序设计
Eclipse RCP 应用系统开发方法与实战
定制应用程序窗口属性 向导生成的应用程序主界面并不能满足要求,存在很多问题,例如,主界面运行时没有自动居中,主界面大小没有固定,主窗口标题栏文字应该是“高校经费测算系统”。再看看图5-3、图5-4的标题栏有...
The objective of the Eclipse Rich Client Platform (RCP) is to enable Eclipse to be used in a wide range of end-user applications that are not integrated development environments (IDEs). With the ...
rcp经典程序,包括了rcp开发中的所有关键点,麻雀虽小,五脏俱全。。。
RCP程序中集成其他插件的配置方法RCP程序中集成其他插件的配置方法RCP程序中集成其他插件的配置方法
lotus screen shot。 复杂的桌面应用界面,是否能够说明Java做桌面应用(或言C/S应用)的能力呢?