gpt4 book ai didi

java - 在 Eclipse RCP 中,如何根据编辑器中的 "dirty"属性禁用保存工具栏按钮

转载 作者:搜寻专家 更新时间:2023-11-01 01:39:27 27 4
gpt4 key购买 nike

在我的 eclipse RCP 3.3 应用程序中,我想根据当前编辑器启用或禁用“保存”工具栏按钮 dirty flag .

我正在尝试使用 < enabledWhen > 标记,但我无法让它工作。

这是 plugin.xml 中的部分代码:

<command
commandId="org.acme.command.save"
icon="icons/save.png"
id="org.acme.command.save"
style="push">
<enabledWhen>
<instanceof value="activeEditor"/>
<test property="dirty" value="true"/>
</enabledWhen>
</command>

你知道它应该如何工作吗?

最佳答案

工作台提供了对“保存”和“全部保存”操作的支持,因此您无需像尝试做的那样自己实现它。

推荐的方法是在扩展 ActionBarAdvisor 的类中添加支持。确切的代码将取决于类的结构,但您需要的代码如下。

在您的字段声明中:

private IWorkbenchAction saveAction;
private IWorkbenchAction saveAllAction;

在您的 makeActions 方法中:

    saveAction = ActionFactory.SAVE.create(window);
register(saveAction);

saveAllAction = ActionFactory.SAVE_ALL.create(window);
register(saveAllAction);

在您的 fillActionBars 方法中:

    IToolBarManager saveToolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
saveToolbar.add(saveAction);
saveToolbar.add(saveAllAction);
coolBar.add(new ToolBarContributionItem(saveToolbar, "save"));

工作台将为您负责启用和禁用。

如果您出于某种原因确实想要实现自己的代码来执行此操作,那么您所采用的方法将会奏效。您将需要更正 XML(例如,instanceof 元素正在检查所选对象是否是名为“activeEditor”的类的实例,这可能不是预期的)。

关于java - 在 Eclipse RCP 中,如何根据编辑器中的 "dirty"属性禁用保存工具栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650775/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com