【问题标题】:How to enable save action in Eclipse toolbar?如何在 Eclipse 工具栏中启用保存操作?
【发布时间】:2011-01-12 13:56:22
【问题描述】:

我在Eclipse插件开发下工作。我已经实现了两个视图部分来查看和更改一些对象。每个视图部分都实现了ISaveablePart 来保存修改过的对象并在工具栏上启用保存按钮。

问题是:当我在 Project Explorer 中选择我的对象时,Save 按钮未启用,只有 Save All 被启用。

所以我想知道在这种情况下是否可以启用保存按钮?

【问题讨论】:

    标签: eclipse eclipse-plugin swt eclipse-rcp


    【解决方案1】:

    你必须首先实现ISaveablePart,正如你上面提到的。

    您必须触发一个事件(请参阅IWorkbenchPartConstants.PROP_DIRTY),该事件会反过来询问您的编辑器它是否脏(ISaveablePart#isDirty())。如果答案是true,则将启用保存按钮。

    有关示例,请参阅 FormEditor#editorDirtyStateChanged()

    【讨论】:

    • 感谢您的帮助。我已经实现了 PROP_DIRTY 的触发,但我仍然有问题。我有两个实现 ISaveablePart 并变脏的视图,所以当我将焦点放在它们上时,启用 SAVE 按钮。这些视图修改在 ProjectExplorer 中选择的对象的属性(可以说使对象变脏)。所以问题是:当焦点设置在 ProjectExplorer 上时,我如何启用 SAVE 按钮,而不是这些视图。我的意思是如何在所选对象变脏时启用保存按钮,并且焦点不在有视图中。 span>
    • 您正在尝试做一些 Eclipse 框架不自然支持的事情。每个部分都有自己的保存生命周期。我能看到工作的唯一方法是让你的所有部分都注册到某种全局处理程序中。没有办法绕过它。您的 ProjectExplorer 必须实现 ISaveablePart,这意味着您必须自己动手。
    • 感谢您的回答!确实如此,唯一的办法就是实现我自己的CommonNavigator,但是还是会有很多问题。
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多