如何为java方法应用decorator
我正在开发一个eclipse插件,它将使用装饰器在java项目中显示一些通知。我能够在.java文件和ICompilation单元中显示前缀和装饰符。但我不能提供方法的装饰 我已经提供了下面的片段如何为java方法应用decorator,java,plugins,eclipse-plugin,eclipse-rcp,decorator,Java,Plugins,Eclipse Plugin,Eclipse Rcp,Decorator,我正在开发一个eclipse插件,它将使用装饰器在java项目中显示一些通知。我能够在.java文件和ICompilation单元中显示前缀和装饰符。但我不能提供方法的装饰 我已经提供了下面的片段 <extension point="org.eclipse.ui.decorators"> <decorator id="com.eclipse.plugin.test.plugin.decorator.decorators" label="Decor
<extension point="org.eclipse.ui.decorators">
<decorator
id="com.eclipse.plugin.test.plugin.decorator.decorators"
label="Decorators"
state="true"
class="com.eclipse.plugin.test.ui.plugin.decorator.Decorators"
objectClass="org.eclipse.core.resources.IResource"
adaptable="true">
</decorator>
</extension>
添加persistance属性时,我无法为方法设置装饰器,因为method.getresource()
将再次指向ICompilationUnit only
public static void addPersistentProperty (IResource resource,String localName,String value){
/**
* Get the correct Qualified Name
*/
QualifiedName qName = PersistentPropertyTypes.getInstance().
getQualifiedName(localName);
try{
resource.setPersistentProperty(qName, value);
}catch(Exception e){
Ilogger console=Console.getInstance();
console.logger("Exception arised:"+e);
}
}
当我使用下面的代码时,它不会修饰方法,而是再次修饰ICompilationUnit
ResourcePropertiesManager.addPersistentProperty (method.getResource(),"IMethod", "method");
DecoratorManager.addSuccessResources (method.getResource());
/**
* Refresh the label decorations...
* Change it to DecoratorWithImageCaching if image caching should be used
*/
Decorators.getDemoDecorator().refresh();
这是JDT代码用于方法上覆盖指示器的内容:
%OverrideIndicatorLabelDecorator.description
注意:这是使用一个轻量级装饰器,因此您实现了
ILightWeightLabelCorator
这是JDT代码用于方法上覆盖指示器的内容:
%OverrideIndicatorLabelDecorator.description
注意:这是使用一个轻量级装饰器,因此您实现了ILightWeightLabelCorator
ResourcePropertiesManager.addPersistentProperty (method.getResource(),"IMethod", "method");
DecoratorManager.addSuccessResources (method.getResource());
/**
* Refresh the label decorations...
* Change it to DecoratorWithImageCaching if image caching should be used
*/
Decorators.getDemoDecorator().refresh();