我为 eclipse 写了一个插件,让用户创建我自己的项目类型,项目的模板有一些配置文件,我想让用户选择哪个是活动的,这意味着我将使用哪个当我将编译项目时,我添加了一个让用户将其设置为活动的文件的操作,我的问题是是否有任何方法可以在包资源管理器中将其标记为活动(可能是带有一些边框的粗体 ar)所以当用户看这个他可以知道现在哪个是活跃的
谢谢
我为 eclipse 写了一个插件,让用户创建我自己的项目类型,项目的模板有一些配置文件,我想让用户选择哪个是活动的,这意味着我将使用哪个当我将编译项目时,我添加了一个让用户将其设置为活动的文件的操作,我的问题是是否有任何方法可以在包资源管理器中将其标记为活动(可能是带有一些边框的粗体 ar)所以当用户看这个他可以知道现在哪个是活跃的
谢谢
您可以使用装饰器扩展点org.eclipse.ui.decorators
。将此添加到您的 plugin.xml:
<extension
point="org.eclipse.ui.decorators">
<decorator
adaptable="true"
class="MyDecoratorClass"
id="some.id.for.decorator"
label="Active Build Configuration Decorator"
lightweight="true"
location="BOTTOM_RIGHT"
state="false">
<enablement>
<and>
<objectClass
name="org.eclipse.core.resources.IResource">
</objectClass>
<or>
<objectClass
name="org.eclipse.core.resources.IProject">
</objectClass>
<objectClass
name="org.eclipse.core.resources.IFile">
</objectClass>
</or>
</and>
</enablement>
</decorator>
</extension>
在您的(或您选择的任何名称)中提供实现MyDecoratorClass
以检查项目的活动配置并添加文本或图像。也许有这样的东西:[]
每当用户进行需要您更新装饰器的修改以便可以装饰最新更改时,您可以使用以下命令:
// the resource whose properties changed and needs to be re-decorated
IResource resource = ...;
IDecoratorManager manager = PlatformUI.getWorkbench().getDecoratorManager();
IBaseLabelProvider decorator = manager.getBaseLabelProvider("id.of.my.decorator");
if (decorator != null)
((ILabelProviderListener) manager).labelProviderChanged(new LabelProviderChangedEvent(decorator, resource));