Wie erhalte ich die Workbench-Fenster einen modalen Dialog in einem Eclipse-basierten Projekt zu öffnen?

StackOverflow https://stackoverflow.com/questions/443245

Frage

Um einen modalen Dialog zu öffnen, müssen Sie ein übergeordnetes Fenster passieren, und übergeben die erforderlichen Flags für den Dialog modal natürlich sein.

Je nachdem, wo Sie in der Eclipse-Infrastruktur sind, finden dieses Fenster Eltern ist nicht immer einfach.

Wie kann das übergeordnete Fenster zugegriffen werden?

War es hilfreich?

Lösung 2

Aus einer Sicht oder einen Editor (dieser Teil ist leicht):

this.getSite().getWorkbenchWindow().getShell()

Von anderswo, Zugriff auf eine Ansicht oder Editor und wie oben.

Wenn Sie sich in einer Klasse, wo Sie Zugriff auf eine Ansicht oder Editor nicht haben, möchten Sie wahrscheinlich keine UI-Code zu rufen, aber wenn Sie wirklich wollen, sich selbst in den Fuß schießen:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()

Andere Tipps

Das Stück Code aus der vorherige Antwort funktioniert. Doch bedenken Sie nur Ihren Dialog aus dem UI-Thread öffnen. Wenn der Dialog von einem anderen Thread eröffnen, z.B. ein Hintergrundprozess, müssen Sie so etwas wie dies tun:

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

Sonst werden Sie eine Ausnahme erhalten, wenn Sie den Dialog zu schaffen.

Nicht ganz genau, was Sie wollen, aber Sie können verwenden müssen SWT.APPLICATION_MODAL , SWT.DIALOG_TRIM usw., wenn der Dialog, um die Schaffung es zu machen modaler Dialog (aber vielleicht ist das nicht, was Ihre Frage war etwa).

Sehen Sie diese Link für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top