0

我是 Eclipse 插件的新手,并且能够使用以下链接创建一个 Eclipse 插件,该插件对默认文本编辑器有贡献。

该插件工作正常,但我有两个关于IHandler界面的问题。很长一段时间我意识到我的插件处理程序没有被调用。然后我看到默认情况下isEnabled()返回false。在我启用它为 true 后,我看到处理程序只被调用一次。然后我看到isHandled()设置为false。将两者都设置为 true 解决了我所有的问题。

所以我的问题是:

为什么这两个 API 默认都返回 false?(对我来说,插件开发人员希望它默认为 false 对我来说似乎很奇怪。)

我尝试在官方文档中理解他们的描述,但我仍然不明白为什么默认情况下应该返回 false。

有什么我应该注意的吗?

4

1 回答 1

1

例如,如果您有一个多页编辑器,您可能有多个选项卡。

每个选项卡可能有不同的操作。在这种情况下,您可能希望与该选项卡关联的处理程序只为其他选项卡返回 true 和 false。

同样对于资源管理器,您可能不希望所有节点都启用操作。例如,只有单击文件才能启用某些操作,而不是单击文件夹。

因此,要进行选择性启用,isEnabled() 默认返回 false。您可以提供自己的逻辑来启用或禁用。

于 2013-07-24T03:23:24.127 回答