gpt4 book ai didi

java - 两个处理的项目在e4中使用相同的命令,一个被触发,另一个不被触发

转载 作者:行者123 更新时间:2023-12-02 11:41:11 25 4
gpt4 key购买 nike

我遇到了一个问题:

即:

我在e4xmi中添加了一个名为“saveCommand”的“命令”;

我在 e4xmi 中使用“saveCommand”添加了一个名为“save”的“已处理菜单项”;

我在 e4xmi 中添加了一个名为“save”的“已处理工具项”,使用“saveCommand”;

在“saveCommand”中,它使用“saveHandler”来控制两个保存按钮的操作:代码是:

@CanExecute
public boolean canExecute() {

if (caseNameValidatePass) {
return true;
}
return false;
}

但现在的问题是: 当canExecute函数返回true时,保存菜单按钮被启用, 但保存工具按钮仍然处于禁用状态。

这让我很困惑。为什么?有人可以帮助解答我的困惑吗?非常感谢!

最佳答案

每次显示菜单时都会为菜单项调用

@CanExecute,但对于工具项,您可能需要使用 UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC 请求运行它> 事件:

@Inject 
IEventBroker eventBroker;

eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, selector);

selector 可以是 UIEvents.ALL_ELEMENT_ID 来更新所有工具项或 org.eclipse.e4.ui.workbench.Selector 的实现选择要更新的特定项目。

每当您的 caseNameValidatePass 值发生变化时,您都需要调用此函数。

关于java - 两个处理的项目在e4中使用相同的命令,一个被触发,另一个不被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533922/

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