为什么Eclipse插件IHandler API默认返回false?

时间:2013-07-24 02:46:38

标签: eclipse eclipse-plugin

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

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

所以我的问题是:

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

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

有什么我应该注意的吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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