我们在开发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菜单与工具栏小结之前,我们先来明确一下RCP(Rich Client Platform)的概念。RCP是Eclipse平台的一部分,用于构建复杂的、数据丰富的桌面应用程序。它提供了强大的框架和工具集,使开发者能够创建具有高度...
在文件名“rcp学习小结.doc”中,我们可以推测这是一个关于作者 RCP 学习经验的文档,可能包含了他们遇到的问题、解决策略以及最佳实践。这类文档往往对初学者非常有价值,因为它们提供了实践中的洞见和教训。 总的...
15.2 应用程序窗口ApplicationWindow类 292 15.3 带有菜单栏的主程序窗口 293 15.3.1 简单写字板程序示例 293 15.3.2 添加菜单栏的基本步骤 297 15.3.3 创建菜单项 297 15.3.4 菜单项的事件处理 298 ...
本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...
### JNI技术实践小结 #### 一、背景与概述 JNI (Java Native Interface) 是一种标准的机制,允许Java程序直接调用本地方法(Native Methods),这些本地方法通常是由C或C++编写的。JNI技术在Java环境中非常有用,...
10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse...
#### 小结 通过以上内容的学习,我们了解到MyEclipse在图形界面开发方面提供了强大的支持。无论是使用AWT、Swing还是SWT,开发者都可以借助MyEclipse中的各种工具和插件来提高开发效率,创建出高质量的图形用户界面...
10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 ...
10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 ...