How do I get the workbench window to open a modal dialog in an Eclipse based project?

Tirno picture Tirno · Jan 14, 2009 · Viewed 23.2k times · Source

In order to open a modal dialog, you need to pass a parent window, and pass the necessary flags for the dialog to be modal of course.

Depending on where you are in the eclipse infrastructure, finding this parent window is not always easy.

How can the parent window be accessed?

Answer

zvikico picture zvikico · Jan 14, 2009

The piece of code from the previous answer will work. However, keep in mind you can only open your dialog from the UI thread. If you are opening the dialog from a different thread, e.g. a background process, you need to do something like this:

PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
    public void run() {
        Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
    }
});

Otherwise you will get an exception when creating the dialog.