我正在开发Eclipse RCP应用程序,我想通过一个带有“在后台运行”,“取消”和“详细信息”等按钮的对话框来实现Eclipse工作区作业。我尝试了所有选择,但我的所有努力都没有取得成果。但是,我可以使用带有取消按钮的ProgressMonitor对话框来创建ProgressBar。我想实现下面给出的图像。请在这方面帮助我。我还浏览了以下链接以及其他链接。我也尝试了IProgressService,但是没有用。目前,我正在使用Eclipse Photon版本。
https://www.eclipse.org/articles/Article-Concurrency/jobs-api.html
我在下面提供工作区作业的代码
public void show11() {
Job job =
new WorkspaceJob("name") {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
for (int i = 0; i < 10; i++) {
System.out.println("This is a MYJob");
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
monitor.subTask("Copying file " + (i + 1) + " of " + "workload" + "...");
}
return Status.OK_STATUS;
}
};
job.setUser(true);
job.schedule();
try
{
job.join();
}
catch (InterruptedException e)
{
//
}
}
答案 0 :(得分:4)
最后我解决了这个问题。假定Eclipse RCP应用程序默认设置为“在后台运行”。就我而言,我不得不从Eclipse切换此选项,但仍然无法正常工作。我已经手动将其设置为在eclipse rcp中为false。我在下面提供。代码。
WorkbenchPlugin.getDefault().getPreferenceStore().setValue("RUN_IN_BACKGROUND", false);
面对此类问题的人,可以在开发Eclipse rcp应用程序时以编程方式设置此值。
我要感谢Greg Sir(greg-449)提供了一些提示和信息。