欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RCP应用程序工具类编写小结 Eclipse工作UI活动

程序员文章站 2022-06-01 19:32:41
...

我们在开发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>

一个工作台可以有多个活动的窗体来构成。目前只是总结了少许公用方法,有时间会继续整理。