2016-09-29 62 views
1

请耐心阅读,我尽我所能解释的情况下,如果不是请评论 -在eclipse中如何评估属性?

我有两个插件说AB。在这两个插件中,我为命令定义了“和”表达式。 “和”表达式中的一个条件是测试一个属性,例如mypropA不取决于BB不取决于A

有一个属性测试器定义在第三个插件可以说CAB均取决于C

以及在第四插件D,用于org.eclipse.core.expressions.propertyTesters扩展点被定义和属性的列表,以在插件C定义测试仪进行测试。

AB也取决于插件D

我在eclipse中看到一个奇怪的行为 - 只有当由插件B定义的透视图处于活动状态时,才会调用myprop的属性测试器。 因此当RCP启动时,如果插件B尚未激活,属性测试程序不会测试属性myprop,并且当我在插件A的角度看它会返回意外的值。

后来当我调出插件B的角度时,属性测试仪测试myprop,然后插件A开始正常工作。

问题:为什么属性测试仪需要插件B为活动状态?如何通过eclipse框架评估属性,是否有订单?或者实际上我应该问:何时以及如何触发特定属性的属性测试器?有没有关于它的文档?

回答

1

您可能需要在test表达式的test元素上指定forcePluginActivation="true",因为它听起来像包含属性测试人员的插件未被任何东西激活。

+0

分钟后,我想出了你的答案。是的,我必须指定'forcePluginActivation =“true”'使其工作。但我会接受你的回答。我有一个问题,但。 'forcePluginActivation'应用于我的属性测试器类定义的插件'D',或者插件'C',其中扩展点被定义在哪个待测试属性列表中?我认为它应该已经应用到'C'上,因为属性测试器被其他属性击中。 – SomeDude

+0

它将是包含被激活的测试仪类的插件。 –

+0

其实它不是我发现的,当我在将'forcePluginActivation'指定为'true'之前,在我的测试程序类中设置断点时,断点被触发,这表明包含测试程序类的插件已被激活,了解'propertyTester'扩展中指定插件'D'的属性。 – SomeDude