我正在尝试制作一个插件,以便每当创建一个新的特定文件时,具有某些属性(例如从文件内容派生),就会显示该类型的装饰器。
我知道如何通过扩展org.eclipse.ui.decorator扩展
来制作基本的装饰器。
但是,在应用描述符之前如何知道有关文件的信息,例如文件名和扩展名?我知道它可以使用实现 ILightWeightLabelDecorator
接口(interface)的文件的 decorate()
方法中的 Object element
参数来完成。但我不知道如何使用这个element
对象?
每当将新文件添加到包资源管理器时,装饰器会自行显示还是需要刷新工作台?
我正在使用 Eclipse 4.5.2
最佳答案
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
有方法告诉您有关该文件的所有信息。
关于java - 创建装饰器,如何获取eclipse插件中的文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324253/