Eclipse MenuManager: получить ImageDescriptor для изображения? - PullRequest
6 голосов
/ 21 сентября 2010

Я не могу заставить это работать, поэтому я подумал, что это может быть мудрой идеей опубликовать здесь ...

У меня есть контекстное меню в SWT (фактически это плагин Eclipse).Это каскадное меню, поэтому оно расширяется, как только вы наводите указатель мыши на определенную запись ...

Моя проблема в том, что я хочу прикрепить небольшой значок к меню но я борюсь с этим!

Код: ....

            manager.add(new Separator());

            // icon for the "change color" menu
            ImageDescriptor icon = ImageDescriptor.createFromFile(null,
                "icons/palette_brush.png");

            // submenu
            MenuManager colorMenu = new MenuManager("Menu", icon,  null);

            // Actions
            colorMenu.add(someAction);

            // add the action to the submenu
            manager.add(colorMenu);

           ....

Моя проблема в том, что new MenuManager можно вызвать с помощью 2Аргументы (без прикрепленного изображения) или 3 (с прикрепленным изображением).Изображение должно быть передано как ImageDescriptor .

Вопрос в основном таков:
«Как я могу получить Imagedescriptor из изображения?»
Возможно, это глупая ошибка - но я не могу получить ImageDescriptor из файла изображения.У меня есть значок * .png, готовый к использованию, но я с трудом включаю его.

Если кто-нибудь сможет помочь с фрагментом кода, это даст мне ImageDescriptor из файла изображения, это было бы очень здорово!

С уважением!

Документация MenuManager:
Документ MenuManager

Ответы [ 2 ]

13 голосов
/ 21 сентября 2010
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, "icons/palette_brush.png");
ImageDescriptor.createFromURL(fullPathString);

pluginId - это идентификатор плагина, в который вы положили свою иконку.

1 голос
/ 02 августа 2016
Bundle bundle= org.eclipse.core.runtime.Platform.getBundle(pluginId);
URL fullPathString = bundle.getEntry("icons/palette_brush.png");
desc= ImageDescriptor.createFromURL(fullPathString);
desc.createImage();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...