创建装饰器,如何在 eclipse 插件中获取文件信息?
Creating decorators, how to get info of file in eclipse plugin?
我正在尝试制作一个插件,以便每当创建一个具有某些属性(例如从文件内容派生)的新特定文件时,就会显示该类型的装饰器。
我知道如何通过扩展 org.eclipse.ui.decorator extension
来制作基本的装饰器。
但是,在应用描述符之前,如何知道关于文件的信息,例如文件名和扩展名?我几乎不知道它可以在实现 ILightWeightLabelDecorator
接口的文件的 decorate()
方法中使用 Object element
参数来完成。但是我不知道如何使用这个 element
对象?
每当将新文件添加到包资源管理器时,装饰器会自行显示还是需要刷新workbench?
我正在使用 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
有方法可以告诉您有关该文件的所有信息。
我正在尝试制作一个插件,以便每当创建一个具有某些属性(例如从文件内容派生)的新特定文件时,就会显示该类型的装饰器。
我知道如何通过扩展 org.eclipse.ui.decorator extension
来制作基本的装饰器。
但是,在应用描述符之前,如何知道关于文件的信息,例如文件名和扩展名?我几乎不知道它可以在实现 ILightWeightLabelDecorator
接口的文件的 decorate()
方法中使用 Object element
参数来完成。但是我不知道如何使用这个 element
对象?
每当将新文件添加到包资源管理器时,装饰器会自行显示还是需要刷新workbench?
我正在使用 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
有方法可以告诉您有关该文件的所有信息。