0

Eclipse 用のマルチタブ エディターを作成しています。このプラグインにはいくつかのタブがあり、最後のタブはテキスト ソースです。これは、PDE の plugin.xml エディターに似たものです。

その背後には、テキスト ソースのデータに基づくタブに情報を表示するために使用されるモデルがあります。ユーザーはソースを編集でき、別のタブに切り替えるとモデルが更新されます。それはうまくいきます。

問題は、誰かが外部エディターでソース ファイルを編集する場合です。次に、プロジェクトを更新すると、モデルも更新されます。しかし、どうすればこれを達成できますか?

を使用しようとしましたaddResourceChangeListenerが、更新前のイベントで通知されますが、ファイルが更新されるかどうかの情報が含まれていません (たとえば、誰かがプロジェクト全体を更新しようとした場合、プロジェクト リソースのみ)。

私が持っていた他のアイデアは、更新前のイベントが発生したときにドキュメントリスナーを追加し、変更後のハンドラーでそれを削除することでした。ただし、ここでの問題は、ファイルが変更されておらず、更新されていない場合、変更後のイベントが送信されないため、最後の (ソース) タブでユーザーが行ったすべての編集について通知される不要なドキュメント リスナーを使用することです。 .

どんな助けにも感謝します。

4

1 に答える 1

1

Refresh は、変更されたファイルを見つけると、それらを変更済みとして報告しますおそらく、 http://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.htmlに示されている POST_CHANGE 通知を聞くつもりです。

于 2012-05-31T05:16:14.803 に答える