Есть ли пример там для использования IDecorationContext
для художественных оформлений маркировки?
Взглядами его, IDecorationContext
класс, кажется, оказывает своего рода контекстную поддержку художественного оформления, но ни за что в жизни, я не могу найти пример кода, использующий эту функцию...
Кто-либо на самом деле использовал функцию контекста художественного оформления и если так, какие варианты использования она решала?
PS: Я ищу способ применить художественные оформления изображения к меткам объектов и в зависимости от того, где объект отображен, основной размер значков варьируется (например, традиционные "маленькие" значки в таблице - и элементы дерева и большие значки для заголовков содержания).
Художественные оформления относились к исходным значкам, должен выбрать соответствующие художественные оформления размера соответственно.
IDecorationContext
кажется, отвечает всем требованиям для того, для чего я нуждаюсь в нем, но документация так редка, как можно ожидать от незначительной функции библиотеки с открытым исходным кодом и нет никаких примеров, которые будут найдены.
Поиск с помощью Google для "IDecorationContext" не показал ничего интересного также, таким образом, я обращаюсь к мудрости толпы StackOverflow в надеждах, следующий парень, получающий вопросу, смог бы получить их ответ быстрее ;)
Я не использовал IDecorationContext, но вы можете увидеть его использование в org.eclipse.jface.viewers.LabelDecorator
.
Это также обсуждается в этой теме (даже если нет ответа, который может дать вам хотя бы отправную точку)
Мой текущий подход заключается в расширении декораторов org.eclipse.ui.decorator с использованием ILightweightLabelDecorator для добавления заменяющего оверлея к соответствующему иконки:
public class ProjectLabelDecorator extends LabelProvider
implements ILightweightLabelDecorator {
...
public void decorate(Object element, IDecoration decoration) {
if (element instanceof IFolder) {
IFolder folder = (IFolder) element;
try {
if (folder.getProject().hasNature("rttdt.nature")) {
if (ProjectNature.isTestcase(folder)) {
IDecorationContext context =
decoration.getDecorationContext();
if (context instanceof DecorationContext) {
((DecorationContext) context).putProperty(
IDecoration.ENABLE_REPLACE, Boolean.TRUE);
}
decoration.addOverlay(fTestcaseOverlay,
IDecoration.REPLACE);
}
} catch (CoreException e) {
}
}
}
...
}