« 自作エディタの定義 | トップページ | エディタを閉じる »

2004.05.24

エディタを開く

【追記(2004.09.03)】 Eclipse3.0からは「エディタを開く Part2」のやり方を参考にしてください。

通常エディタは,Package Explorer上などでユーザがダブルクリックなどの操作を行うことで開かれる。しかし時には,プラグインが自動的にエディタを開いてどうのこうの・・・,という動作をしたいこともあるだろう。ここでは,プログラム上で何らかのファイルをエディタで開くための方法を紹介する。

最初に,エディタで開きたいファイルをIFileオブジェクトの形で取得する。例えば「コンテキストメニューへのアクションの追加」のやり方でobjectClass属性にIFileを指定し,アクションクラス内で選択されたIFileオブジェクトを取り出す,などが代表例。これについてはさまざまな方法が考えられるので,取得方法は割愛する。

エディタで開きたいIFileオブジェクトが取得できたら,ワークベンチからアクティブなページを取得して,エディタを開く処理を呼び出す

  IFile file = ...;

  IWorkbench workbench = PlatformUI.getWorkbench();
  IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
  IWorkbenchPage page = window.getActivePage();

  IEditorPart editorPart = page.openEditor(file);

アクティブなページのIWorkbenchPageオブジェクトは,「ワークベンチウィンドウ→ページ→ビュー」で紹介した方法で取得する。そしてIWorkbenchPageオブジェクトのopenEditorメソッドに先ほど取得したIFileオブジェクトを渡すことで,エディタが開かれる

IFileオブジェクトを引数にとるopenEditorメソッドでは,以下の手順で開くエディタが決定される。

  (1) ワークベンチに登録されているエディタと拡張子の関連付けから対応するエディタを検索し,関連付けの情報が存在すれば,その情報を元にエディタを開く。

  (2) OSの関連付け情報を元に対応するアプリケーション(Notepadとか)を検索し,関連付けの情報が存在すれば,そのアプリケーションを起動する。

  (3) (1)と(2)のどちらにも関連付け情報がなかったときは,Eclipseデフォルトのテキストエディタを開く。

もし固定的にあるエディタで開きたい場合は,IFileオブジェクトとエディタのIDの2つの引数をとるopenEditorメソッドを用いると良い。

  IFile file = ...;
  String editorId = ...; // エディタのID
  page.openEditor(file, editorId);

OSの関連付け情報を参照するあたり,いかにもEclipseだなぁと思ってしまう。便利に越したことはない。

|

« 自作エディタの定義 | トップページ | エディタを閉じる »

コメント

「エディタを開く Part2」のリンク切れ。本当はここっぽい
http://yoichiro.cocolog-nifty.com/eclipse/2004/09/_part2.html

投稿: 通りすがりの勉強中の人 | 2005.09.05 12:22 午前

おっと,ご指摘ありがとうございます!
確かに間違ってますね。。。orz

あとで変更しておきます。すみませんでしたー!

投稿: よういちろう | 2005.09.05 12:38 午前

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: エディタを開く:

» java/プラグイン開発/サイト [PukiWiki]
とりあえず情報収集 http://yoichiro.cocolog-nifty.com/eclipse/2004/05/post_1.html -- 2004-09-16 (木) 02:21:31 http://kino.mine.nu/pukiwiki/index.php?cmd=search&word=Eclipse%2F%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%B3%AB%C8%AF%A4%CETIPS%BD%B8 -- 2004-09-1... [続きを読む]

受信: 2005.07.29 03:30 午後

« 自作エディタの定義 | トップページ | エディタを閉じる »