【发布时间】:2010-04-24 14:01:32
【问题描述】:
我正在使用 org.eclipse.ui.popupMenus 扩展点添加一个子菜单,其 Action 绑定到以下类:
public class MyAction implements IObjectActionDelegate {
private Logic logic = Logic.getInstance(); // Singleton
public void setActivePart(IAction a, IWorkbenchPart targetPart) {
// Nothing here
}
public void run(IAction a) {
// Do something...
}
public void selectionChanged(IAction a, ISelection s) {
a.setEnabled(logic.isEnabled(s));
}
}
此操作在大多数情况下都能正常工作(包括在selectionChanged() 中调用a.setEnabled())。
第一次调用我的操作时的问题。 selectionChanged 方法仅在显示菜单项后 被调用(而不是在用户做出选择时),这意味着对a.setEnabled() 的调用将没有任何影响。
关于如何让我的操作在第一次被调用之前收到selectionChanged() 通知的任何想法?
【问题讨论】:
标签: java eclipse-plugin