Java PropertyTester在对话框中不工作

Java PropertyTester在对话框中不工作,java,eclipse-plugin,Java,Eclipse Plugin,我有最简单的PropertyTester: 公共类MyPropertyTester扩展了PropertyTester{ 公共布尔测试(对象接收器、字符串属性、对象[]参数、对象expectedValue){ System.out.println(“你好,世界!”); 返回false; } } 我将其添加到如下处理程序中: 当在主应用程序内部单击时(即当更改聚焦的工作台部件时),该处理程序被称为bunch。但是,一旦我打开向导或对话框,它就不再被调用。事实上,它甚至不会因为新窗口而被调用

我有最简单的
PropertyTester

公共类MyPropertyTester扩展了PropertyTester{
公共布尔测试(对象接收器、字符串属性、对象[]参数、对象expectedValue){
System.out.println(“你好,世界!”);
返回false;
}
}

我将其添加到如下处理程序中:


当在主应用程序内部单击时(即当更改聚焦的工作台部件时),该处理程序被称为bunch。但是,一旦我打开向导或对话框,它就不再被调用。事实上,它甚至不会因为新窗口而被调用一次


为什么??如何编写在所有应用程序窗口上都能可靠运行的
PropertyTester

选择框架使用property tester来确定处理程序是否必须处于活动状态,是否必须显示菜单等等

当必须评估某种全局可访问菜单(如上下文菜单、工具栏、视图菜单等)时,调用该函数:每次选择不同的内容时,Eclipse将评估新状态,并从所有可见菜单中禁用/启用/删除条目

您在向导或对话框中选择的内容通常不会传播到选择框架中(但如果您愿意,也可以)


从您的帖子中不清楚您想要实现什么,但请记住,property tester使用您和其他人在plugin.xml中定义的元素,这些元素可能出现在Eclipse中的任何可用菜单上。

这只是部分正确。当评估上下文更改时,将重新计算处理程序激活。当选择发生变化时,也会发生部分激活和其他事件。无论出于何种目的,这都是正确的答案。切换部件也可以使用选择框架。你提到“更多”事件。请您指定,以便我们更新答案?IIRC,切换部件不一定会导致选择更改-请考虑不是选择提供程序的部件,或者不选择任何内容的部件激活。对活动shell/worbench窗口和上下文的更改也会导致评估上下文更改(重新计算处理程序激活)。我们在向导中有一个工具栏,可以通过plugin.xml填充/添加该工具栏。有没有一种通用的方法可以使向导像主窗口一样运行并传播对评估上下文的更改?我也有类似的问题。我希望属性测试人员在保存一个首选项页面后重新评估,但它没有。我的解决方法是明确请求评估。请参阅和@Rüdigerhermann,因此我们需要跟踪对焦点控件的更改,以及我们自己对向导上所有控件的选择(可能更多),以便我们可以在适当的时间请求对property tester进行新的评估?据我所知,命令/处理程序也应该在对话框中工作。但是如果它们不起作用,那么你就必须自己更新i-enabled/activated状态。@Rüdigerhermann命令/处理程序可以自己工作,但是由于属性测试程序不工作,因此当新窗口弹出时,它们被禁用。由于我们希望在对话框的菜单中添加动态内容,因此在所有情况下请求对所有类型的属性测试人员进行评估有点棘手,属性测试人员通常会重新评估。