« ドキュメント区画の変更通知を受け取るには | トップページ | ドキュメント区画の取得 »

2004.01.12

IDocumentPartitionerに文書を接続するのを忘れずに・・・

IDocumentPartitioningListenerインタフェースの動作を確認するために作っていたプログラムがなぜか動かない。テキストエディタに文字を入力すると,

  Unhandled exception caught in event loop.
  Reason:
  java.lang.NullPointerException

と表示され,文字が入力できない。。。しかも,あろうことか「ぬるぽ」である。

ちゃんとドキュメントにPartitionScannerをセットしてるし,Nullになりそうなものも見当たらない。あ!区画に対応したDamagerやRepairerが登録されていないからかな?と思い,SourceViewerConfigurationのサブクラスを作って,区画に対応したDamagerとRepairerを登録する。でも症状は変わらない。

実は,ドキュメントパーティショナーを作ってドキュメントにセットしただけでは足りないのだ。その後に,ドキュメントパーティショナーに対して文書を接続する必要がある

  IDocument document = ...;
  IDocumentPartitioner partitioner = ...;
  document.setDocumentPartitioner(partitioner);
  partitioner.connect(document);

なぜ相互参照してしまうようなことをしないといけないのかは不明。まぁ,おまじない程度で今は考えておくことにしよう。

自前のドキュメントパーティショナーをセットしてMy区画を作ったにも関わらず,それに対する処理を持つSourceViewerConfigurationオブジェクトをセットしなかった場合,文字入力ができなくなってしまいました。。。

|

« ドキュメント区画の変更通知を受け取るには | トップページ | ドキュメント区画の取得 »

コメント

文字入力ができなくなってしまったと書いてしまいましたが,後日再確認したところ,全くそのようなことはありませんでした。ちゃんと区画分けされているし,文字入力も正しく行うことができます。そりゃそうだ,ドキュメントの区画分けとSourceViewerに対する設定は別次元のはずだから。。。

投稿: よういちろう | 2004.01.14 04:41 午後

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: IDocumentPartitionerに文書を接続するのを忘れずに・・・:

« ドキュメント区画の変更通知を受け取るには | トップページ | ドキュメント区画の取得 »