#topicpath
----

#contents


** ワークベンチ以下の関連
プラグイン開発で、いろいろなUIにアクセスしたいわけですが、それぞれのUIがどのような関連になっているのかをまとめてみました。
#ref(workbench_decomposed.gif)

***WorkBench window
ワークベンチ(ワークベンチ・ウィンドウ)とは、大ざっぱに言うと、「プラットフォームの始動時に開くウィンドウ」のことです。
-クラス名:IWorkbenchWindow
-取得方法:
 IWorkbench workbench = PlatformUI.getWorkbench();
 IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
IWorkbench を取得するために AbstractUIPlugin#getWorkbench()てのもありますが
 This method exists as a convenience for plugin implementors.
 The workbench can also be accessed by invoking PlatformUI.getWorkbench(). 
なので同じなんですね。ソースを見ても
 public IWorkbench getWorkbench() { <-AbstractUIPlugin#getWorkbench()
   return PlatformUI.getWorkbench();
 }
でした。

ちなみに
 IWorkbench workbench = PlatformUI.getWorkbench();
 IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
で IWorkbenchWindow の配列が取得できますが、この配列はEclipseで
ウィンドウ >> 新規ウィンドウ で開いているウィンドウたちです。


***Page
ワークベンチ・ウィンドウの内部には、パーツを含む 1 つのページがあります。ページは、パーツをグループ化するためのインプリメンテーション・メカニズムです。
-クラス名:IWorkbenchPage
で、ページって何だろうなって思って、
 IWorkbench workbench = PlatformUI.getWorkbench();
 workbench.getActiveWorkbenchWindow().getActivePage().close();
ってやったら、すべてのパースペクティブが閉じてしまいました。
#ref(close.png)

単純にパースペクティブと1対1でもないんでしょうか((どうも WorkbenchWindow -> IWorkbenchPage -> IViewPart となっているようだ))。

また、
 workbench.getActiveWorkbenchWindow().getActivePage().getLabel());
としたら、ワークスペース - J2EEってのが表示されました。やっぱ、パースペクティブだよなぁ。



----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS