我想为自定义导航器视图弹出菜单实现自定义属性测试程序。不幸的是它实际上从未被调用。以下是plugin.xml
部分和类。
定义的属性测试器:
<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="com.mytest.MyPropertyTester"
id="com.mytest.myPropertyTester"
namespace="com.mytest.myPropertyTester"
properties="testProperty"
type="com.mytest.MyPropertyTester">
</propertyTester>
定义部分:
<extension
point="org.eclipse.core.expressions.definitions">
<definition
id="org.eclipse.example.testExtension">
<adapt
type="org.eclipse.core.resources.IResource">
<test
property="com.mytest.myPropertyTester.testProperty">
</test>
</adapt>
</definition>
可见部分:
<command
commandId="com.mytest.testcommand"
label="Test Command"
style="push">
<visibleWhen
checkEnabled="false">
<with
variable="activeMenuSelection">
<iterate
ifEmpty="false"
operator="or">
<or>
<reference
definitionId="org.eclipse.example.testExtension">
</reference>
</or>
</iterate>
</with>
</visibleWhen>
</command>
相应的课程:
package com.mytest;
import org.eclipse.core.expressions.PropertyTester;
public class MyPropertyTester extends PropertyTester {
public MyPropertyTester() {
System.out.println("PROPERTY TESTER CONSTRUCTOR");
}
@Override
public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {
System.out.println("PROPERTY TESTER CALLED");
return true;
}
}
没有&#34;测试&#34;在org.eclipse.core.expressions.definitions中使用的部分一切正常。
似乎甚至没有调用MyPropertyTester
类的构造函数。我还没有找到任何关于此的实例。
任何帮助都将不胜感激。
答案 0 :(得分:5)
我认为这是您type
定义中的type="com.mytest.MyPropertyTester"
值(propertyTester
)。
在测试测试人员之前,要测试的对象必须是类型的实例(或适应)(帮助对此非常模糊!)。
使用匹配大多数对象的type="org.eclipse.core.runtime.IAdaptable"
或type="org.eclipse.core.resources.IResource"
匹配资源。
答案 1 :(得分:4)
我知道这个问题已经回答了,但是由于不同的原因我遇到了同样的问题;所以我想我会把它放在这里。
在我的情况下,org.eclipse.core.expressions
插件在评估<test>
表达式时未激活,因此它只是跳过评估。
所以我必须使用forcePluginActivation=true
强制插件激活,例如:
<test
property="org.eclipse.wst.xml.core.isSelectedElementARunnableSeleniumTestSuite"
value="true"
forcePluginActivation="true">
</test>
- forcePluginActivation - 指示插件是否为标志 如有必要,应加载属性测试人员。如 这样,这个标志应该明智地使用,以避免 不必要的插件激活。大多数客户应该避免设置 这个标志为真。只有评估上下文才会尊重此标志 用于评估此表达式允许插件激活。除此以外 该标志被忽略,没有插件加载。