gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:15 26 4
gpt4 key购买 nike

是否有使用 IDecorationContext 进行标签装饰的示例?

从外观上看,IDecorationContext 类似乎提供了某种上下文装饰支持,但就我而言,我找不到任何使用此功能的示例代码...

有没有人真正使用过装饰上下文功能?如果有,它解决了哪些用例?


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

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

IDecorationContext 似乎符合我的需要,但文档非常稀疏,正如人们对开源库的一个次要功能所期望的那样,而且没有找到示例.

在谷歌上搜索“IDecorationContext” 也没有发现任何有趣的东西,所以我求助于 StackOverflow 人群智慧,希望下一个得到问题的人能够更快地得到他们的答案;)

最佳答案

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

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

我目前的方法是使用一个扩展 org.eclipse.ui.decoratorsILightweightLabelDecorator 将替换覆盖添加到相应的图标:

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) {
}
}
}

...
}

关于java - 如何使用 Eclipse JFace 中的 IDecorationContext api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com