2012-01-14 8 views
0

Eclipse用のプラグインを書くのが好きです。これは、アーカイブファイルを通常のファイルディレクトリと同じように扱えるようにします。たとえば、プロジェクト内にzipファイルがある場合、ユーザーはzipフォルダを開くだけでzipファイルの内容を表示できます。ユーザは、例えば、そのアーカイブ内のテキストファイルを読むことができるはずである。コンテンツプロバイダでEclipse EFSリソースを即座に作成するにはどうすればよいですか?

私は既に特定のアーカイブ形式のEFSラッパーを作成しました。また、このアーカイブ形式の新しいコンテンツタイプを作成しました。私は、content-typeでトリガーされるnavigatorContentを持っています。コンテンツプロバイダでは、現在、IFileStore型のオブジェクトを提供しています。 AFAIKこのタイプのためにEclipseに同梱されている素晴らしいラベルプロバイダはありませんので、私は自分で実装しなければなりません(プライベートとして宣言されているものがあります)。しかし、これはむしろ巨大なコードの重複のように思えます。したがって、私がしたいのは、IFileStoreを返すのではなく、代わりにIFileまたはIFolderを返すことで、通常のプロジェクトエクスプローラコンテンツプロバイダがその仕事をすることができるようにすることです。このようなことはまったく可能ですか?もしそうなら、どのようにしてこれを実現することができますか?

ありがとうございました!

答えて

0

ILabelProviderを実装することは、特にIFileまたはIFolderと比較した場合、まったく苦労しません。 BaseLabelprobividerを拡張する場合は、getText()getImage()の2つのメソッドを実装するだけです。

1

IFolder.createLink()を呼び出して、カスタムファイルシステム上のフォルダを参照する新しいリソースを作成します。

http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_efs_resources.htm

これは、ZIPアーカイブからすべてのファイルを含む、プロジェクト内に新しいフォルダを作成します。しかし問題は、それを既存のコンテナに入れて、リソースツリーを汚染する必要があることです。

関連する問題