Top / Eclipse / プラグイン開発のTIPS集

ワークベンチ以下の関連

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

workbench_decomposed.gif

WorkBench?

ワークベンチ(ワークベンチ・ウィンドウ)とは、大ざっぱに言うと、「プラットフォームの始動時に開くウィンドウ」のことです。

ちなみに

IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();

で IWorkbenchWindow? の配列が取得できますが、この配列はEclipseで ウィンドウ >> 新規ウィンドウ で開いているウィンドウたちです。

Page

ワークベンチ・ウィンドウの内部には、パーツを含む 1 つのページがあります。ページは、パーツをグループ化するためのインプリメンテーション・メカニズムです。

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

また、

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

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

アクティブなエディタへの参照の取得

// ワークベンチの取得
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();

//アクティブなエディタの取得
IEditorPart editor = window.getActivePage().getActiveEditor();
AbstractTextEditor aEditor = (AbstractTextEditor) editor;

エディタ内のドキュメントを取得

IDocument document =
  aEditor.getDocumentProvider().getDocument(editor.getEditorInput());

プラグインのディレクトリを取得する

Log4jの初期化のためにlog4j.xmlを読み込むなど、プラグインディレクトリのパスを取得する場面は結構ありますが、その方法です。

 String pluginDirectory = Platform
    .resolve(getDefault().getDescriptor().getInstallURL()).getPath();

で取得できます。 ちなみにLog4jの初期化などはAbstractUIPluginのサブクラス(勝手に作られるヤツ)で

public void startup() throws CoreException {
 super.startup();

 String pluginDirectory = null;
 try {
  pluginDirectory =
   Platform
    .resolve(getDefault().getDescriptor().getInstallURL())
    .getPath();
 } catch (IOException e) {
  e.printStackTrace();
 }

 DOMConfigurator.configure(new File(pluginDirectory, "lib/log4j.xml").toString());
}

などとstartup()をOverrideすればよいでしょうか。

外部のライブラリを使用する

プラグインディレクトリにlibディレクトリなどを作成しておいて、plugin.xmlで

<runtime>
  <library name="hoge.jar"/>
  <library name="lib/fuga.jar"/> <-外部ライブラリ
</runtime>

とすればOKです。

プロジェクトへの参照を取得する

いわゆるEclipseのプロジェクトへの参照を取得する方法です。

IWorkspaceRoot myWorkspaceRoot =
  ResourcesPlugin.getWorkspace().getRoot();
IProject project = myWorkspaceRoot.getProject([プロジェクト名の文字列]);

この記事は

選択肢 投票
おもしろかった 2  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集

現在のアクセス:140187


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

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