#eclipse #eclipse-plugin
#eclipse #eclipse-плагин
Вопрос:
Я добавил пользовательский мастер создания проекта в Eclipse, который использует ранее существовавший Java nature. Вот блок из plugin.xml куда я его добавляю:
<wizard
class="com.corp.eclipse.wizard.project.NewExtensionWizard"
descriptionImage="/rsrc/icons/app.png"
finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
icon="rsrc/icons/app.png"
id="framer.newExtensionWizard"
name="Extension Project"
project="true">
</wizard>
Тип проекта «Проект расширения» отлично отображается в диалоговом окне «Создать», но значок не отображается. Кто-нибудь знает, есть ли какой-нибудь трюк с привязкой значков к мастерам в Eclipse? Это Eclipse 3.5.2.
Комментарии:
1. Вы уверены, что «rsrc /icons /app.png» является относительным путем к plugin.xml ?
2. Или вы пропустили папку rsrc / в вашем build.properties?
3. Нет, rsrc / находится в build.properties. Я уверен, что путь к значку указан правильно, поскольку значок отображается в мастере, который Eclipse предоставляет вам для редактирования plugin.xml.
Ответ №1:
У меня была такая же проблема, как у вас, и мне пришлось указать точку останова в коде инициализации, чтобы наконец выяснить причину. Возможно, это ваша проблема:
В AbstractUIPlugin.class
, imageDescriptorFromPlugin(...)
// if the bundle is not ready then there is no image
Bundle bundle = Platform.getBundle(pluginId);
if (!BundleUtility.isReady(bundle)) {
return null;
}
Возможно, пакет не загружается. Это может произойти, если идентификатор плагина не является префиксом точки расширения (как было в моем случае). Итак, идентификатор вашего мастера framer.newExtensionWizard
. Если ваш идентификатор всего плагина (Bundle-SymbolicName в MANIFEST.MF) не является just framer
, метод не найдет пакет, и, следовательно, изображение не появится.
Тогда решение состоит в том, чтобы убедиться, что какой бы идентификатор вы ни присвоили своему плагину, убедитесь, что все идентификаторы точек расширения используют этот идентификатор в качестве префикса.
Комментарии:
1. Вау, это невероятно конкретно! К сожалению, я не работаю в компании, где у меня возникла эта проблема, поэтому код утерян для меня (и я больше не использую Eclipse). Я все равно приму это, так что вы получите оценку за то, что с готовностью оценили.
Ответ №2:
Является ли rsrc вашей исходной папкой? Обычно папка icons хранится непосредственно в проекте. Вы можете переместить его из исходной папки, а также указать его в build.properties.
Комментарии:
1. Нет, это дочерний элемент папки проекта, рядом с исходной папкой. Это соглашение для проектов в моей компании.
2. Ваш значок имеет правильный размер? Можете ли вы попробовать gif-файл вместо png?
3. Я не автор оригинального плаката, но я могу подтвердить, что у меня такая же проблема в Indigo, независимо от того, является ли значок .png или .gif. Тот же значок отлично работает для org.eclipse.ui.editors, поэтому я знаю, что он может видеть и отображать значок. Он просто не отображается в org.eclipse.ui.newWizards.