如何将IRunnableWithProgress始终带到前端?

时间:2016-07-18 06:16:35

标签: java eclipse

我在eclipse中使用 IRunnableWithProgress 对话框来显示当前的进度状态。每当我打开另一个对话框时,如属性页面,progressdialog就不会出现在前台。有没有办法强制progressDialog始终出现在顶层?

编辑1: 以下是我用于获取此progressDialog的代码:

try {
            IRunnableWithProgress process = new IRunnableWithProgress() {


                @Override
                public void run(IProgressMonitor monitor) throws InvocationTargetException,
                        InterruptedException {
                        monitor.beginTask(taskName, steps);

                        result = execution(monitor);
                        monitor.done();
                }


            };
            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setActive();
            PlatformUI.getWorkbench().getProgressService().busyCursorWhile(process);
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

1 个答案:

答案 0 :(得分:1)

您无法控制进度服务显示的对话框。

如果要显示首选项页面(或其他对话框)的进度,请使用ProgressMonitorDialog而不是进度服务。这也接受IRunnableWithProgress

ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell()) {
    @Override
    protected void configureShell(Shell shell) {
      super.configureShell(shell);
      shell.setText("Dialog title");
    }
};

try {
   dialog.run(true, true, progress);
}   
... catches ...