gpt4 book ai didi

eclipse-plugin - 属性测试器 : How to determine Project Type on right click?

转载 作者:行者123 更新时间:2023-12-04 06:51:42 25 4
gpt4 key购买 nike

我可以检查我想要的项目类型,例如通过使用

<instanceof value="org.eclipse.core.resources.IProject"/>
<test property="org.eclipse.core.resources.projectNature"
value="org.eclipse.wst.jsdt.core.jsNature"/>

在我的弹出菜单命令中,然后相应地显示我的菜单条目。但是,有一些复杂的条件需要检查,因此我被要求使用 Property Tester。下面是 plugin.xml 摘录:

<with variable="selection">
<test forcePluginActivation="true"
property="testWizard.propertyTester.checkFolder"/>

<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="testwizard.wizards.MyPropTester"
id="MyPropTester"
namespace="testWizard.propertyTester"
properties="checkFolder"
type="org.eclipse.core.resources.IProject">
</propertyTester>
</extension>

...和 ​​PropertyTester java 代码:

package testwizard.wizards;

import org.eclipse.core.internal.propertytester.ResourcePropertyTester;
import org.eclipse.core.resources.IResource;

@SuppressWarnings("restriction")
public class MyPropTester extends ResourcePropertyTester {

@Override
public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {

IResource res = (IResource) receiver;

if(res instanceof IProject)
{
return true;
}
return false;
}

}

我对使用 Property Testers 还很陌生,如果有人能指导我我的错误所在,我将不胜感激。

最佳答案

找到解决办法:你需要像之前给的那样定义一个属性Tester并使用

<test property="org.eclipse.core.resources.projectNature" value="org.eclipse.wst.jsdt.core.jsNature"/> ,这里的值作为Property Tester类的测试方法中的期望值,然后使用

IProject project=(IProject)receiver;
if(project.hasNature(expectedValue.toString())) return true;

关于eclipse-plugin - 属性测试器 : How to determine Project Type on right click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com