Использование декоратора ILightweightLabelDecorator

Реализовав один из вышеперечисленных, кто-нибудь может сказать, как я могу подключить его непосредственно к зрителю? Ни один из обычных источников не объясняет.

Мартин.

2 ответа

Решение

Насколько я могу сказать, вам нужно ILabelDecorator и единственный простой способ получить его - использовать интерфейс рабочей среды:

viewer.setLabelProvider(
    new DecoratingLabelProvider(new MyPlainLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));

Затем вам нужно добавить свой легкий декоратор в точку расширения декораторов в plugin.xml, Очевидно, это будет работать, только если ваше приложение представляет собой плагин Eclipse.

Кажется странным, что ILightweightDecorator находится в JFace, но для его использования вам нужен менеджер декоратора, который реализован только в org.eclipse.ui, Хотя, кажется, не существует простого способа сделать это более напрямую.

Есть старая статья на Eclipse.org, основанная на Eclipse 2.1, которая дает хорошее краткое изложение облегченного подхода декоратора. Конечно, большая часть деталей реализации изменилась, но концепции остались прежними.

Когда вы говорите, что подключите декоратор " непосредственно к зрителю", вы имеете в виду избегать объявления его как точки расширения, и ваш декоратор применяется к значку / тексту или тому подобному?

Чтобы применить наложение изображений, вы можете следовать подходу в разделе "Наложение изображений" статьи. Поэтому сначала нарисуйте базовое изображение, затем получите ImageData для наложения и нарисуйте данные в намеченных координатах.

Если у вас есть более конкретная проблема, не рассматриваемая в статье, можете ли вы уточнить исходный вопрос на примере того, чего вы пытаетесь достичь?

Другие вопросы по тегам