Frage

ich einen Editor aus einer Sicht auf Klick auf eine treenode am öffnen. Nun, wenn Editor geladen und Bedienelemente dem Benutzer angezeigt werden, möchte ich für den Benutzer auf der Grundlage bestimmter Werte, die auf dem Editor eine Warnmeldung Dialog angezeigt werden soll.

Ich habe versucht, durch den Warndialog am Ende der Methode create des Editors setzen. Dialog erscheint auf Doppel cliking die treenode gemäß der geforderten Funktionalität. Aber das Problem ist, dass, wenn das Dialogfeld angezeigt, die Bedienelemente des Editors ist noch nicht sichtbar. Es ist nur, wenn ich den Dialog der Editor Kontrollen schließen angezeigt.

Ich mag es in die andere Richtung passieren um. das heißt der Editor steuert zuerst zu zeigen, und dann sollte die Warnmeldung angezeigt. Welche Änderungen sollte ich tun, um diesen Effekt zu erreichen?

War es hilfreich?

Lösung

Sie können von diesem MessageDialog in einer asynchronen Art und Weise, den Editor die Möglichkeit zu lassen, sich zu vervollständigen, wie in diese Nachricht .

  

zeigen Sie Ihren Warndialog in einem asyncExec () runnable würde sicherstellen, dass die Initialisierung des Editors alle in der richtigen Reihenfolge geschieht.

Also, so etwas wie (nicht getestet) dieser Code könnte den Trick tun:

getSite().getShell().getDisplay().asyncExec
    (new Runnable() {
        public void run() {
            MessageDialog.openWarning(getSite().getShell(),"wrong","no)
        }
    });
}

Einige andere Beispiele in dieser MapEditor Klasse, wo ein MessageDialog durch eine asyncExec angezeigt, die für das Ergebnis wartet:

PlatformGIS.syncInDisplayThread

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