public class TestWithProgress implements IRunnableWithProgress {
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
monitor.beginTask("Test", IProgressMonitor.UNKNOWN);
ActivateJob job = new ActivateJob("Test");
job.addJobChangeListener(new ActivateJobChangeAdapter(Display.getDefault()));
job.setUser(true);
job.schedule();
if (monitor.isCanceled()) {
throw new InterruptedException(
"The long running operation was cancelled"); //$NON-NLS-1$
}
}
private class ActivateJob extends Job {
public ActivateJob(String name) {
super(name);
}
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
...................
return new Status(Status.OK, "OK", "OK");
} catch (Exception ex) {
return new Status(Status.ERROR, "FAIL", "FAIL");
}
}
}
private class ActivateJobChangeAdapter extends JobChangeAdapter {
/*
* (non-Javadoc)
*
* @see
* org.eclipse.core.runtime.jobs.JobChangeAdapter#done(org.eclipse.core
* .runtime.jobs.IJobChangeEvent)
*/
@Override
public void done(final IJobChangeEvent event) {
IStatus iStatus = event.getResult();
String message = iStatus.getMessage();
if (IStatus.OK != iStatus.getSeverity()) {
......
}
}
}
}
ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog(
Display.getCurrent().getActiveShell());
try {
progressMonitorDialog.run(false, true,
new TestWithProgress());
} catch (InvocationTargetException e) {
} catch (InterruptedException e) {
} catch (Throwable e) {
}
WorkbenchWindowAdvisor.preWindowOpen()中有这configurer.setShowProgressIndicator(true);确保在状态栏显示进度条
如果要显式进度窗口,用job.setUser(true).或者调用IWorkbenchSiteProgressService.showInDialog(...)
完成部分任务时执行,monitor.worked(进度片段值);
分享到:
相关推荐
- **概述**:对话框在RCP中的使用场景。 - **预定义的对话框**:介绍Eclipse提供的内置对话框,如消息对话框、输入对话框等。 - **创建工程**:创建使用预定义对话框的项目。 - **用户自定义对话框**:创建和...
在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中实现一个带有复选框的TreeViewer。RCP是一个强大的框架,用于构建桌面应用,它提供了丰富的UI组件和工具,使得开发者可以创建功能丰富...
在Eclipse RCP(Rich Client Platform)开发中,创建用户友好的界面是至关重要的。一个常见的需求是定制透视图(Perspective)的交互方式,包括切换按钮和右键菜单。本教程将详细介绍如何通过`org.eclipse.ui....
1. **Plug-in定义**:在Eclipse RCP中,Plug-in是应用程序的基本构建块,它们提供了功能,如用户界面元素、服务或数据处理。每个Plug-in都有自己的生命周期,并通过声明依赖关系与其他Plug-in交互。 2. **Manifest....
在Eclipse中,选择“File” > “New” > “Project”,然后在弹出的对话框中选择“Eclipse Plug-in Project”。输入项目名称,点击“Next”,并在“Target Platform”页面选择或配置你的运行环境。 3. **定义插件...
对SWT/Jface的进度条(ProgressMonitorDialog)进行封装,使下载文件更方便调用. DownloadProgressBar 是单个文件下载类 MultiDownloadProgressBar 是多个文件下载类 Test开头的类是测试类 支持下载完毕后自动关闭流,...
在Eclipse RCP(Rich Client Platform)开发中,适配器(Adapter)机制是一个核心概念,它使得组件之间能够解耦合,实现灵活的...对这些文件进行学习和研究,将有助于你更好地理解和实践RCP中的适配器实现属性视图。
### 实现RCP在线升级说明 #### 一、前言 本文将详细介绍如何实现RCP(Rich Client Platform)客户端的在线升级功能。RCP是一种基于Eclipse框架的应用程序开发技术,它允许开发者构建功能丰富的桌面应用程序。随着...
- **Actions**: 在Eclipse RCP中用于实现用户界面操作的机制。 - **用途**: 创建菜单项、工具栏按钮等。 **3.2 通过编码添加** - **步骤**: - 创建Action类继承自AbstractAction。 - 实现execute()方法以定义动作...
- **JOB进度条**:基于Job框架实现的进度条,适用于后台任务。 ### 13. 使用第三方JAR #### 13.1 概述 - **第三方JAR**:引入外部库以增强应用功能。 #### 13.2 向构建路径中添加JAR - **添加JAR到构建路径**:...
在Eclipse RCP中实现控制反转(IoC)是一种提高应用程序可维护性和可扩展性的重要设计策略。控制反转(Inversion of Control,IoC)和依赖注射(Dependency Injection,DI)是面向对象编程中降低模块间耦合的技术,...
eclipse RCP Plug-in开发自学教程 eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法...
本教程将深入探讨如何在Eclipse RCP程序中实现ViewPart的占位功能,这对于构建具有多视图的工作环境至关重要。 首先,我们需要理解ViewPart的基本概念。在Eclipse RCP中,ViewPart是用户界面中的一个组件,它通常...
RCP,全称为Rich Client Platform,是Eclipse框架下的一个组件,它为开发桌面应用程序提供了一个强大的基础。这个“RCP中文入门教程”显然是为了帮助初学者理解和掌握如何使用RCP进行桌面应用的开发。RCP的优势在于...
然而,在实际开发中,我们经常需要使用第三方包来实现某些功能,这篇文章将介绍如何在Eclipse RCP中使用第三方包。 首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这...
完成项目设置后,可以通过运行配置中的"Run As" -> "Eclipse Application"来启动RCP程序。这将在Eclipse内部启动一个新的工作台实例,展示你的RCP应用程序。 **2.3 应用程序 VS 产品** 在Eclipse RCP中,应用程序和...