创建装饰器,如何在eclipse插件中获取文件信息?

时间:2016-05-19 13:11:36

标签: java eclipse eclipse-plugin eclipse-rcp

我正在尝试创建一个插件,这样无论何时创建新的特定文件,具有某些属性(例如从文件内容派生),都会显示该类型的装饰器。

我知道如何通过扩展org.eclipse.ui.decorator extension来制作基本的装饰器。

但是,如何在应用描述符之前知道有关文件名和扩展名等文件的信息?我知道可以使用Object element文件实现decorate()接口方法中的ILightWeightLabelDecorator参数来完成。但我不知道如何使用这个element对象?

每当将新文件添加到包浏览器时,装饰器是自己显示还是工作台需要刷新?

我正在使用Eclipse 4.5.2

1 个答案:

答案 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有方法可以告诉您有关该文件的所有信息。