arcanum_jp’s blog

おっさんの日記

Ant Gui Editor

 org.eclipse.ui.editorsを拡張するけど、表示しようとするファイルを読み込む部分ってどこだろうと追っていてやっと分かった馬鹿者なのであるが、ここに書いておく。

エディタクラス(継承)

TextEditor系を継承したエディタクラスの場合
  public void doSetInput(IEditorInput input);をオーバーライドする。

GraphicalEditorとかを継承したエディタクラスの場合
public void setInput(IEditorInput input);をオーバーライドする。

 TextEditorはsetInput()をfinal指定で実装してあって、doSetInput()を単に呼び出す形になっている。なんでfinal指定なんだろう。

依存関係

 org.eclipse.core.resources → IFileを使うのに必須
 org.eclipse.ui.ide     → IFileEditorInputを使うのに必須

ファイル読み込み方法

 Antのbuild.xmlを読み込むのでこんな感じ

public void setInput(IEditorInput input){

    IFile file = ((IFileEditorInput)input).getFile();
    InputStream is = file.getContext();
    DocumentBuilderFactory dbf = 
            DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse(is);

    //docを使ってモデルに変換・・・
}