我想创建一个简单的eclipse插件,它执行以下操作:当您右键单击一个Java项目时,它将显示一个弹出菜单,其菜单项带有标签“此项目中找到了N个Java文件”,其中“ N”是文件数。
我有一个想法,可以在“ selectionChanged”中更新标签:
public class CountAction implements IObjectActionDelegate {
public void selectionChanged(IAction action, ISelection selection) {
action.setText(countJavaFiles());
}
}
但是,如果我不单击该菜单项,将无法正常工作,因为尚未加载
CountAction
,因此在您右键单击该项目时不会调用selectionChanged
。我花了很多时间,但是还没有解决。请帮我。
最佳答案
@kett_chup建议的文章的替代方法是使用IElementUpdater
。只是
您的handler
必须实现IElementUpdater
handler.updateElement((UIElement element, Map parameters)
必须使用element.setText("new text")
设置所需的文本-此新文本将显示在菜单和工具栏中
每当您需要/想要更新命令文本时,请使用带有特定命令ID的ICommandService.refreshElements(String commandId, Map filter)
-全局命令服务通常就可以了IElementUpdater
界面还可用于更改检查状态-对于带有style=toggle
的命令-以及图标和工具提示。