java – 如何使用Eclipse JFace中的IDecorationContext api

前端之家收集整理的这篇文章主要介绍了java – 如何使用Eclipse JFace中的IDecorationContext api前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有使用IDecorationContext进行标签装饰的例子?

从它的外观来看,IDecorationContext类似乎提供了某种上下文装饰支持,但对于我的生活,我找不到任何使用此功能的示例代码

有没有人实际使用装饰上下文功能,如果有,它解决了什么用例?

PS:我正在寻找一种将图像装饰应用于对象标签方法,并且根据对象的显示位置,基本图标大小会有所不同(例如,表和树项中的传统“小”图标和内容标题的较大图标).

应用于原始图标的装饰应相应地选择合适的尺寸装饰.

IDecorationContext似乎符合我所需的条件,但是文档与开源库的一个小功能一样稀疏,并且没有找到示例.

谷歌搜索“IDecorationContext”也没有透露任何有趣的东西,所以我转向StackOverflow众智,希望下一个得到问题的人能够更快地得到答案;)

解决方法

我没有使用IDecorationContext,但你可以看到它在 org.eclipse.jface.viewers.LabelDecorator中使用.

它也在this thread讨论(即使没有答案,至少可以给你一个起点)

我目前的方法是使用a扩展org.eclipse.ui.decorators
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) {
         }
      }
   }

   ...
}
原文链接:https://www.f2er.com/java/129404.html

猜你在找的Java相关文章