我们有一个Eclipse RCP应用程序,它具有一些观点(所谓的“功能”)。在这些功能之间切换可能需要几秒钟,这就是为什么我想向用户显示进度对话框的原因
final Job jobMain = new Job("Opening feature ...") {
@Override
protected IStatus run(final IProgressMonitor monitor) {
monitor.beginTask("Opening ...", 100);
monitor.worked(50);
while (!monitor.isCanceled()) {
try {
Thread.currentThread().sleep(200);
} catch (InterruptedException e) {
}
}
monitor.worked(50);
monitor.done();
return Status.OK_STATUS;
}
};
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
jobMain.setUser(true);
jobMain.setProgressGroup(Job.getJobManager().createProgressGroup(), 100);
jobMain.schedule();
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
}
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
ftSelectedFeature.openFeaturePerspective();
jobMain.cancel();
}
});
我已经尝试了所有方法,并且上面的“解决方案”尽可能接近我想要的。问题是,进度对话框仅在打开功能透视图后显示 ( ftSelectedFeature.openFeaturePerspective())。
在功能透视图切换时,如何显示进度对话框?