语境
我正在为 eclipse 3.4 及更多版本构建一个插件。我有一个带有 id 的视图,mrp.view
其中 menuContribution 设置为toolbar:mrp.view
. 这个 menuContribution 有一些命令,我有这个:
<handler
class="mrp.handlers.export"
commandId="mrp.commands.export">
</handler>
<command
commandId="mrp.commands.export"
label="My command"
style="push">
</command>
我的处理程序mrp.handlers.export
有一个动态 ìsEnabled()` 方法,如下所示:
@Override
public boolean isEnabled() {
return !getMySelection().isEmpty();
}
问题
数据更改时如何刷新工具栏上的按钮?(如果我单击工具栏的另一个按钮,则会自动完成刷新,但如果我不...)
我试过了..
ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
service.refreshElements("mrp.commands.export", null);
但它似乎没有做任何事情。
还有这个:
public class Export extends AbstractHandler implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
setBaseEnabled(!getSelection().isEmpty());
}
// ....
}
它被调用,但我的视图菜单上的图标没有刷新(在 eclipse 3.7 上)。我做错什么了吗 ?