« ドキュメントを区画分けするスキャナの作成 | トップページ | 紀伊国屋からの連絡 »

2004.01.15

空のアウトラインページの作成

今までテキストエディタ,特にドキュメント関連について調べてきたけど,行き詰まりを感じつつあるのでちょっと浮気することにした。エディタの次に手を出したのは,アウトラインページ。テキストエディタ内のドキュメントの構造を表示するためのページですね。

アウトラインページはIContentOutlinePageインタフェースを実装したクラスで表される。一般的にドキュメントの構造は木構造となることがほとんどなので,EclipseはjfaceのコンポーネントのTreeViewerコンポーネントを標準で搭載したContentOutlinePageクラスを用意してくれている。

早速アウトラインページのクラスを作成する。

  class MyOutlinePage extends ContentOutlinePage {
  }

これだけ。特になにするわけでもないので,ここではメソッドは何も用意しません。

さて,これをエディタと関連付けてアウトラインページを作り出さなければならない。ここで登場するのが,IAdaptableとは?(後編)で登場したIAdaptableインタフェース。TextEditorクラスのサブクラスでgetAdapterメソッドをオーバーライドし,その中で以下のようにしてアウトラインページを作成して返してあげる。

  class MyTextEditor extends TextEditor {
    private MyOutlinePage outlinePage;
    public Object getAdapter(Class adapter) {
      if (IContentOutlinePage.class.equals(adapter)) {
        if (outlinePage == null) {
          outlinePage = new MyOutlinePage();
        }
        return outlinePage;
      }
      return super.getAdapter(adapter);
    }
  }

このMyTextEditorが活性化されるとき,Eclipseプラットフォームは「おまえんとこのエディタなんだけど,アウトラインページはどうすんだい?」っていう感じで,IContentOutlinePageクラスオブジェクトをgetAdapterメソッドに渡して呼び出してきます。そこで,アウトラインページのオブジェクトを生成して,結果として返してあげます。すると,Eclipseプラットフォームは受け取ったアウトラインページをアウトラインビューに貼り付けます。

上記のコードによって,アウトラインビューに今までグレーの背景で「An outline is not available.」と表示されていたのが,白紙の状態になります。何もメソッドを持たないMyOutlinePageオブジェクトが貼りついた証拠です。

|

« ドキュメントを区画分けするスキャナの作成 | トップページ | 紀伊国屋からの連絡 »

コメント

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: 空のアウトラインページの作成:

« ドキュメントを区画分けするスキャナの作成 | トップページ | 紀伊国屋からの連絡 »