Как создать Eclipse EFS ресурсы на лету в контент-провайдере? - PullRequest
0 голосов
/ 14 января 2012

Мне нравится писать плагин для Eclipse, который позволяет работать с архивными файлами, как с обычными файловыми каталогами.Например, если внутри проекта есть zip-файл, пользователь должен иметь возможность просматривать содержимое zip-файла, просто открыв zip-папку.Пользователь должен иметь возможность, например, читать текстовые файлы в этом архиве.

Я уже создал оболочку EFS для определенного формата архива.Кроме того, я создал новый тип контента для этого формата архива.У меня есть navigatorContent, который срабатывает на тип контента.В поставщике контента в настоящее время я предоставляю объекты типа IFileStore.AFAIK, нет никакого хорошего поставщика лейбла, поставляемого с eclipse для этих типов, поэтому я должен реализовать его самостоятельно (есть один, который объявлен как частный).Тем не менее, это похоже на огромные усилия по дублированию кода.Поэтому я хотел бы не возвращать IFileStore, а IFile или IFolder, чтобы обычный провайдер контента проводника проекта мог выполнять свою работу.Можно ли вообще так делать?Если да, то как этого добиться?

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 22 июня 2017

Вызовите IFolder.createLink (), чтобы создать новый ресурс, ссылающийся на папку в вашей файловой системе.

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

Это создаст новую папку в вашем проекте, содержащую все файлы из ZIP-архива. Проблема, однако, в том, что вам нужно будет поместить его в существующий контейнер, загрязняя дерево ресурсов.

0 голосов
/ 16 января 2012

Внедрение ILabelProvider совсем не большое усилие, особенно по сравнению с IFile или IFolder. Если вы расширяете BaseLabelprobivider, вам нужно реализовать только 2 метода: getText() и getImage().

...