Top / Eclipse / プラグイン開発のTIPS集 / ワークベンチなど

ワークベンチ以下の関連

プラグイン開発で、いろいろなUIにアクセスしたいわけですが、それぞれのUIがどのような関連になっているのかをまとめてみました。

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();
    ってやったら、すべてのパースペクティブが閉じてしまいました。
    close.png

単純にパースペクティブと1対1でもないんでしょうか*1

また、

workbench.getActiveWorkbenchWindow().getActivePage().getLabel());

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

各インタフェースの関係

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
               .getActivePart().getSite().getPage();

など無限に行き来できるみたいですが、これをみてもわかるとおり、

Workbench(1) -> (N)IWorkbenchWindow(1) -> (N)IWorkbenchPage
(1) -> (N)IWorkbenchPart(1) -> (1)IWorkbenchPartSite(1) -> (1)IWorkbenchPage ...

となっています。

IWorkbenchPart?はいわゆるビューやエディタで、それに1対1でIWorkbenchPartSite?があり、名前とかIDとか、ビュー・エディタの情報を管理しています。

IWorkbenchPage?はビューの集まりでパースペクティブかな?もちろんIWorkbenchWindow?とは1対Nとなります。

IWorkbenchWindow?はいわゆるウィンドウです。新しいウィンドウを開くとかやると複数開くので、Workbenchとは1対Nになります。


この記事は

選択肢 投票
おもしろかった 14  
そうでもない 1  
  • ショートカットバー -- 2015-04-06 (月) 12:17:22
  • アクティブパースぺくてぃぶ -- 2015-04-06 (月) 12:21:01
  • アクティブパースぺクティブ -- 2015-04-06 (月) 12:21:07

Top / Eclipse / プラグイン開発のTIPS集 / ワークベンチなど

現在のアクセス:14953


*1 どうも WorkbenchWindow? -> IWorkbenchPage? -> IViewPart? となっているようだ

添付ファイル: fileclose.png 1098件 [詳細] fileworkbench_decomposed.gif 1205件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-04-06 (月) 12:23:38 (1689d)