プラグイン開発で、いろいろなUIにアクセスしたいわけですが、それぞれのUIがどのような関連になっているのかをまとめてみました。
ワークベンチ(ワークベンチ・ウィンドウ)とは、大ざっぱに言うと、「プラットフォームの始動時に開くウィンドウ」のことです。
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で ウィンドウ >> 新規ウィンドウ で開いているウィンドウたちです。
ワークベンチ・ウィンドウの内部には、パーツを含む 1 つのページがあります。ページは、パーツをグループ化するためのインプリメンテーション・メカニズムです。
IWorkbench workbench = PlatformUI.getWorkbench(); workbench.getActiveWorkbenchWindow().getActivePage().close();ってやったら、すべてのパースペクティブが閉じてしまいました。
単純にパースペクティブと1対1でもないんでしょうか*1。
また、
workbench.getActiveWorkbenchWindow().getActivePage().getLabel());
としたら、ワークスペース - J2EEってのが表示されました。やっぱ、パースペクティブだよなぁ。
この記事は
現在のアクセス:16570