Eclipse RCP:エディターのロード後にメッセージダイアログを表示する方法
-
07-07-2019 - |
質問
ツリーノードをクリックすると、ビューからエディターを開きます。エディターが読み込まれ、ユーザーにコントロールが表示されたら、エディターに存在する特定の値に基づいて、ユーザーに警告メッセージダイアログを表示したいと思います。
エディターのcreatePartControlメソッドの最後に警告ダイアログを配置してみました。必要な機能に応じて、ツリーノードをダブルクリックするとダイアログが表示されます。しかし、問題は、ダイアログが表示されたときに、エディターのコントロールがまだ表示されていないことです。ダイアログを閉じると、エディターコントロールが表示されます。
それを逆にしたい。つまり、エディターが最初に表示されるように制御し、次に警告ダイアログが表示されるはずです。この効果を達成するには、どのような変更が必要ですか?
解決
MessageDialog で非同期に編集し、このメッセージ。
asyncExec()実行可能ファイルで警告ダイアログを表示すると、エディターの初期化がすべて正しい順序で行われることが保証されます。
そのため、(テストされていない)このコードのようなものがトリックを行うかもしれません:
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
public void run() {
MessageDialog.openWarning(getSite().getShell(),"wrong","no)
}
});
}
この MapEditor クラスの他の例、ここで、結果を待つasyncExecを介してMessageDialogが表示されます。
所属していません StackOverflow