`

eclipse中RCP开发几个实用类

阅读更多

源参见:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-rcpclass/

BusyIndicator

任务执行时鼠标显漏斗状,标识主线程忙碌,实际任务在另一线程执行。如下:

button.setText("Running...");//开始执行,设置一个标识

BusyIndicator.showWhile(button.getDisplay(), new MyThread(5000));

button.setText("BusyIndicator");//执行完成。

RCP程序的首选项(preferencePage

增加扩展点<extension   point="org.eclipse.ui.preferencePages">

指定扩展项的class,在class中布局页面(继承自WorkbenchPreferencePage

指定入口动作,菜单入口及Action

preferenceAction = ActionFactory.PREFERENCES.create(window);

register(preferenceAction);

通过Window->Preferences 菜单打开。

(不扩展该扩展点也可,但是页面类还是需要继承WorkbenchPreferencePage,可以通过扩展命令command的方式,org.eclipse.ui.internal.handlers.ShowPreferencePageHandler,其内部也是用了PreferencesUtil.createPreferenceDialogOn()的方式打开,如下)。

PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(shell, preferencePageId, null, null);

dialog.open();

另外还有:PreferencesUtil .createPropertyDialogOn(Shell shell,final Object element, String propertyPageId, String[] displayedIds,Object data, int options).

IDialogSettings:

该接口提供了键值对的存储机制,键必须是字符串,值则可以是字符串或者字符串数组。

    作用

  为对话框设置提供持久化功能

    用法

  创建DialogSettings实例,或获取系统已有实例

  put方法将需要保存的内容以键值对的方式保存到DialogSettings实例中,用get方法可读取。

  saveloadDialogSettings实例中内容保存到xml文件中

创建自己的实例

IDialogSettings ds = new DialogSettings("myds");

    String fileName = "c:/save.xml";

    ds.put("iduc", id.getValue());

    ds.save(fileName);

    ……

    ds.load(fileName);

    String key = ds.get(key);

创建的文件格式:

<?xml version="1.0" encoding="UTF-8"?>

<section name="myds">

       <item key="iduc" value="11"/>

</section>

使用系统的实例:

IDialogSettings dlgSet = Activator.getDefault().getDialogSettings();

……
使用该语句,eclipse系统自动管理xml文件的加载与保存。

使用系统的对话框设置注意:

我们设置的对话框的内容保存在每个插件的对话框设置xml中,请参照PDE的对话框设置:E:\workspace\.metadata\.plugins\org.eclipse.pde.ui

我们可以将对话框的属性直接写到workbench这个section下,但为了防止属性名称冲突,请用dlgSet.addNewSection()添加自己的Section

FileLocator:文件定位

它根据插件唯一标识,找到插件,new Path()是资源在插件中的相对位置,如下

URL location = FileLocator.find(Platform.getBundle("eclipse_system_class"), new Path("fileLocator.properties"), null);

InputStream is = location.openStream();

PropertyResourceBundle  bundle = new PropertyResourceBundle(is);

……

IWorkbenchHelpSystem

在了解 WorkbenchHelp 之前,读者需要了解 Eclipse 中的帮助扩张点,这个扩张点的目的是为开发者提供自定义帮助内容的方法,该扩展点的具体使用方法可以查看 Eclipse 官方开发文档。WorkbenchHelp 类提供了快捷的 API,用以设置、显示、获得帮助扩展点的帮助。

WorkbenchHelp.displayHelp("eclipse_system_class.contexthelp");

为组件设置帮助

Composite com = new Composite(parent, SWT.NONE);

WorkbenchHelp.setHelp(com, "eclipse_system_class.contexthelp");

...

它的第二个参数值 eclipse_system_class.contexthelp 中的 contexthelp,是附件程序扩展 org.eclipse.help.contexts 扩展点定义的 context ideclipse_system_class 则为附件程序的插件 ID

 

其实workbenchHelp已经不推荐使用了,使用下面的代替。

PlatformUI.getWorkbench().getHelpSystem().displayHelp("eclipse_system_class.contexthelp");

MessageDialogWithToggle 的用法

MessageDialogWithToggle 是一个带有 CheckBox 的提示对话框,MessageDialogWithToggle 不仅保存了用户点击的按钮信息,还保存了用户是否选中了 ChekBoxMessageDialogWithToggle Eclipse 中的使用例子很多,比如关闭 Eclipse 时,会弹出是否保存工程的对话框。该对话框就是 MessageDialogWithToggle 的实例。

分享到:
评论

相关推荐

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    11. **实战项目**:书中很可能会包含一个或多个实际项目案例,引导读者一步步实现一个完整的Eclipse RCP应用,从而将理论知识转化为实践技能。 通过阅读这本书,开发者可以掌握Eclipse RCP的开发技巧,理解其设计...

    Eclipse的RCP开发的入门教程

    Eclipse的RCP(Rich Client Platform)开发是一个强大的框架,用于构建复杂的桌面应用程序。这个入门教程集合了多个文档,涵盖了从基础到高级的各种主题,帮助开发者深入理解和掌握Eclipse RCP。 首先,"使用RCP...

    eclipse 3.6 rcp 开发

    ### Eclipse 3.6 RCP 开发知识点概览 #### 1. 富客户端平台 (RCP) 概述 **1.1 概述** - **定义**: Eclipse Rich Client Platform (RCP) 是一种基于Java的技术框架,用于构建可扩展的桌面应用程序。 - **特点**: ...

    Eclipse RCP开发教程

    每个插件都有一个唯一的标识符(ID),这是它在 Eclipse RCP 系统中身份的象征,用于其他插件引用或扩展该插件。 **4. Actions 的用法(菜单和工具栏)** 4.1. 概述 在 RCP 应用中,Actions 是实现用户交互的核心...

    eclipse-rcp开发培训PPT

    2. **插件系统**:Eclipse RCP的核心是插件,每个插件都包含一组相关的类和资源,它们通过API进行交互。插件之间通过声明依赖关系来保证加载顺序和功能集成。 3. **工作台(Workbench)**:Eclipse RCP的工作台是...

    Eclipse RCP 插件开发指南

    ### Eclipse RCP 插件开发指南 #### Eclipse RCP Plugin 开发快速入门 Eclipse RCP(Rich Client Platform)插件开发是构建基于Eclipse框架的应用程序的核心技术之一。本指南旨在帮助开发者从零开始掌握Eclipse ...

    基于Eclipse+RCP平台开发GIS系统中的地图配置工具

    ### 基于Eclipse+RCP平台开发GIS系统中的地图配置工具 #### Eclipse RCP在GIS系统开发中的角色 Eclipse RCP(Rich Client Platform)作为一款由IBM基于Java开发的强大框架,自Eclipse 3.0版本起,便为开发者提供了...

    Eclipse4-RCP 开发教程

    在《Eclipse4-RCP 开发教程》中,你将学习如何设置Eclipse 4 RCP开发环境,创建第一个E4应用程序,以及如何构建和运行。教程会涵盖以下关键知识点: 1. **创建E4 Application Model**:了解如何使用e4.xmi文件定义...

    eclipse rcp应用系统开发方法与实战源代码.zip

    通过这个压缩包中的教程和源代码,开发者不仅可以学习到Eclipse RCP的基本概念,还能掌握实际的开发技巧,从而构建出功能完善的桌面应用程序。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    ECLIPSE+RCP应用系统开发方法与实战

    非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。

    Eclipse RCP.pdf清晰版

    通过以上介绍,我们可以看到Eclipse RCP是一个非常强大且灵活的框架,它不仅能够加速桌面应用程序的开发,还能让开发者专注于业务逻辑而不是繁琐的界面设计。对于希望利用Eclipse平台构建复杂应用的开发者来说,掌握...

    Eclipse RCP 开发资料

    Eclipse RCP 开发资料打包下载 目录如下: RCP程序设计.pdf(推荐) Addison.Wesley.Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications.Oct.2005.chm Eclipse+RCP入门.pdf example_...

    Eclipse RCP开发详解

    在"**Eclipse RCP开发详解**"中,我们将深入探讨这个主题,帮助你快速掌握Eclipse RCP插件的开发。 首先,了解Eclipse RCP的基础架构是至关重要的。Eclipse RCP由多个组件构成,包括Workbench、Perspective、View、...

    通过例子学习EclipseRCP开发

    ### 通过例子学习Eclipse RCP开发 #### Eclipse RCP概览 Eclipse RCP(Rich Client Platform,富客户端平台)是一种基于Java的框架和技术集合,用于构建具有丰富用户界面的应用程序。它允许开发者创建高度可定制且...

    eclipse RCP Plug-in开发自学教程.pdf

    RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码复用率。然而,Eclipse RCP的学习曲线可能较陡,需要一定的Java基础和Eclipse基础知识。 本教程旨在帮助读者自学Eclipse RCP插件式开发,...

    Eclipse Rcp

    虽然SWT/JFace开发基础知识是可选的,但是这些是Eclipse RCP开发中常用的图形用户界面技术,熟悉它们会对开发有所帮助。 Eclipse RCP应用的开发过程需要利用Eclipse插件开发工具PDE(Plug-in Development ...

    eclipse rcp开发入六教程及培训资料

    网络中最全面最合适学习或开发...包含eclipse rcp开发入门教程; eclipse rcp基础教程;eclipse rcp开发自学教程; eclipse rcp开发培训教程及ppt等相关资料;教程中包含一步步操作实例,包含对开发原理的讲解与说明;

    eclipse RCP开发一个简单的MYSQL客户端工具介绍

    本篇文章将详细介绍如何利用Eclipse RCP开发一个简单的MySQL客户端工具,这对于想要深入理解Eclipse RCP框架以及插件开发的开发者来说是非常有帮助的。 首先,我们需要了解Eclipse RCP的基础。Eclipse RCP的核心...

    eclipse rcp 开发基础教程

    在Eclipse RCP开发中,你需要了解以下关键知识点: 1. **MVC模式**:Eclipse RCP遵循Model-View-Controller设计模式,这有助于分离业务逻辑、用户界面和数据展示。 2. **Plug-in体系结构**:Eclipse RCP基于插件...

Global site tag (gtag.js) - Google Analytics