5

仮想ツリーのようなファイル構造を使用するプラグインをプログラミングしています。基本的に、ファイルを含む標準のファイルシステムと同じように機能しますが、これらのファイルは実際にはファイルシステムの特定の場所に存在するのではなく、単なる Java オブジェクトであるという違いがあります。

これらは現在、 SettingProviderを使用するナビゲーター (Common Navigator Framework を使用したカスタム実装) によってサポートされており、これらのオブジェクトとの対話は、標準ファイルとの対話と同様に実装されています。

ただし、これらのオブジェクトにマーカーを付ける必要があります。私が Eclipse フレームワークを理解しているように、マーカーは *IResource* にのみアタッチできるため、この目標を達成するには、*SettingProvider* を使用する代わりに IResource のインスタンスを作成する必要があります

ただし、標準の実装では、ファイルシステムからのリソースの作成のみが許可されます。仮想フォルダのようなものが存在するため、仮想リソース、つまりファイルシステム内の実際の場所を持たないリソースを作成する可能性がなければなりません。しかし、どうすればこれを行うことができますか? 私の研究はどこにも進んでいないようです...

または、別の方法で目的の機能 (CNF ナビゲーターのオブジェクトにマーカーを貼り付ける) を実現する可能性はありますか?

前もって感謝します!

4

1 に答える 1

2

そうです、マーカーはワークスペース内のリソースにのみアタッチできます。カスタム ファイルシステムを実装するために、Eclipse は EFS メカニズムを提供し、「ファイルのような」構造を提供します。詳細については、 http://wiki.eclipse.org/EFSを参照してください。このページには、例へのリンクもあります。独自のファイルシステム コントリビューターを実装する方法についてのアイデアを提供する実装です。BUT: IMHO シナリオに Eclipses マーカー システムを使用するのは間違ったアプローチです。すべてのものはワークスペース モデルに非常に密接に結合されており、カスタム データ モデルではうまく機能しません。私の経験から、最善の方法は

  1. データモデルに正確に適合する独自のマーカーモデルを用意し、
  2. ツリーにデコレーターを実装する (拡張ポイント経由)
  3. 問題ビューのようなものを実装して、マーカーを視覚化します。

既に存在する同様のものを実装するのは少し奇妙に聞こえますが、シナリオがワークスペース モデルと API の境界によって制限されないため、多くの頭痛の種が解消されます。

于 2012-09-19T13:04:00.757 に答える