【问题标题】:pure E4 usage activeWhen Expression纯 E4 使用 activeWhen 表达式
【发布时间】:2016-01-02 23:32:07
【问题描述】:

我正在将我的 E3 迁移到纯 E4 应用程序。 E3 应用程序将 activeWhen-Core 表达式与 propertyTesters 结合使用来启用/禁用 ToolItems。现在在 E4 中只支持 VisibleWhen 核心表达式(对吗?)。

我现在应该使用@CanExecute-Annotation 执行此操作,还是有(隐藏的)activeWhen 表达式? 如果是这样,我可以在这种情况下使用已经存在的测试人员还是使用新方法会更好(例如针对个别情况的单独测试)?

【问题讨论】:

    标签: eclipse eclipse-rcp rcp e4 property-testing


    【解决方案1】:

    e4 中没有 activeWhen 表达式。

    如果您在 Application.e4xmi 的主处理程序表中为命令定义处理程序,则该处理程序在任何地方都处于活动状态,您必须使用其@CanExecute 来控制是否启用了 ToolItem/MenuItem。

    另一种方法是在部件(或窗口)的处理程序表中为命令定义处理程序。然后 ToolItem/MenuItem 只有在为活动部分定义了处理程序并且其@CanExecute 返回 true 时才会处于活动状态。

    【讨论】:

    • 感谢您的回复!单个处理程序是什么意思?现在我有多个命令和处理程序。每个 ToolItem 的每个。现在我想启用/禁用它们,我曾经使用 activeWhen 表达式来做到这一点。您的意思是现在通过 @CanExecute 执行此操作?
    • 我已经扩展了答案。
    • 啊,我明白了,所以你的意思是我可以在 2 个应用程序级别上为同一个命令创建 2 个处理程序,对吧?我已经对 CanExecute 进行了一些研究,为什么 CanExecute 总是连续执行 4 次可能是一个 pssoböe 原因?
    • Eclipse 可以随时免费运行@CanExecute。您必须查看源代码才能了解它对每个调用的作用。
    • 注意:Lars 的书第三版(现在称为“Eclipse 富客户端平台”)没有提到 400 毫秒。
    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 2015-11-06
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多