我正在尝试创建一个插件,这样无论何时创建新的特定文件,具有某些属性(例如从文件内容派生),都会显示该类型的装饰器。
我知道如何通过扩展org.eclipse.ui.decorator extension
来制作基本的装饰器。
但是,如何在应用描述符之前知道有关文件名和扩展名等文件的信息?我知道可以使用Object element
文件实现decorate()
接口方法中的ILightWeightLabelDecorator
参数来完成。但我不知道如何使用这个element
对象?
每当将新文件添加到包浏览器时,装饰器是自己显示还是工作台需要刷新?
我正在使用Eclipse 4.5.2
答案 0 :(得分:1)
plugin.xml中装饰器声明的enablement
元素说明装饰器启用了哪种对象,并确定传递给装饰器的对象类型。
所以如果你有:
<enablement>
<objectClass name="org.eclipse.core.resources.IFile"/>
</enablement>
上的
element
对象
@Override
public void decorate(final Object element, final IDecoration decoration)
通话将是IFile
。所以你只需要这样做:
IFile file = (IFile)element;
或者绝对确定你使用的是适应性对象:
IFile file = (IFile)Platform.getAdapterManager().getAdapter(element, IFile.class);
IFile
有方法可以告诉您有关该文件的所有信息。