Eclipse RCP: переключение перспектив с помощью диалогового окна прогресса - PullRequest
0 голосов
/ 27 августа 2018

У нас есть приложение 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 () ).

Как получить диалоговое окно прогресса, отображаемое при переключении перспективы функции?

...