« すべてのエディタの内容を保存する | トップページ | ビルドの種類 »

2004.04.01

Shellオブジェクトの取得 Part2

以前「Shellオブジェクトの取得」でShellオブジェクトの取得方法を紹介したが,よりEclipseの作法に則っていると思われる方法があるので,ここで紹介する。

Shellオブジェクトは,ワークベンチオブジェクト(IWorkbenchオブジェクト)から辿って取得することができる

  IWorkbench workbench = PlatformUI.getWorkbench();
  IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
  Shell shell = window.getShell();

まず,PlatformUIクラスのgetWorkbenchメソッドを呼び出して,IWorkbenchオブジェクトを取得する。その後,getActiveWorkbenchWindowメソッドにより,現在アクティブなワークベンチウィンドウのオブジェクトIWorkbenchWindowオブジェクト)を取得する。Shellオブジェクトはトップレベルウィンドウを表すオブジェクトなので,IWorkbenchWindowオブジェクトはドンぴしゃりのオブジェクトであり,IWorkbenchWindowインタフェースに規定されたgetShellメソッドによって,Shellオブジェクトを取得することができる

ここで注意することは,上記のコードの実行のタイミングによっては,ワークベンチウィンドウがまだ存在していない可能性があるということである。Eclipseの起動直後とか,マルチスレッドでEclipseがフォーカスを得ていない状況だったとかがその例である。その場合,getActiveWorkbenchWindowメソッドの戻り値はnullになってしまうので,getShellメソッドを呼び出す前に,getActiveWorkbenchWindowメソッドの戻り値がnullかどうかを判断する処理をしておくことが多くの場合必要だろう。

|

« すべてのエディタの内容を保存する | トップページ | ビルドの種類 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12631/380586

この記事へのトラックバック一覧です: Shellオブジェクトの取得 Part2:

« すべてのエディタの内容を保存する | トップページ | ビルドの種類 »