Eclipse RCP:エディターのロード後にメッセージダイアログを表示する方法

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

  •  07-07-2019
  •  | 
  •  

質問

ツリーノードをクリックすると、ビューからエディターを開きます。エディターが読み込まれ、ユーザーにコントロールが表示されたら、エディターに存在する特定の値に基づいて、ユーザーに警告メッセージダイアログを表示したいと思います。

エディターのcreatePartControlメソッドの最後に警告ダイアログを配置してみました。必要な機能に応じて、ツリーノードをダブルクリックするとダイアログが表示されます。しかし、問題は、ダイアログが表示されたときに、エディターのコントロールがまだ表示されていないことです。ダイアログを閉じると、エディターコントロールが表示されます。

それを逆にしたい。つまり、エディターが最初に表示されるように制御し、次に警告ダイアログが表示されるはずです。この効果を達成するには、どのような変更が必要ですか?

役に立ちましたか?

解決

MessageDialog で非同期に編集し、このメッセージ

  

asyncExec()実行可能ファイルで警告ダイアログを表示すると、エディターの初期化がすべて正しい順序で行われることが保証されます。

そのため、(テストされていない)このコードのようなものがトリックを行うかもしれません:

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

この MapEditor クラスの他の例、ここで、結果を待つasyncExecを介してMessageDialogが表示されます。

PlatformGIS.syncInDisplayThread

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top