如何在 Eclipse 4.3 中使用 ParameterizedCommand 注入参数?

2024-01-22

我目前正在实现 Eclipse 4.3 应用程序并遇到问题。我尝试参数化命令来删除特定文件。我的方法对应于在 Eclipse RCP 4.2 中获取参数化命令的参数 https://stackoverflow.com/questions/9852088/getting-parameter-of-parameterized-command-in-eclipse-rcp-4-2,但我不知何故无法正常工作。

在我的 Application.e4xmi 中,我添加了一个带有参数的命令:

<commands xmi:id="_K1MVgDGKEeOO8o2ChqdHMA" elementId="first.application.command.deleteproject" commandName="deleteProjectCommand">
<parameters xmi:id="_Hr4FEDGTEeOO8o2ChqdHMA" elementId="cmd0" name="cmd0" typeId="" optional="false"/>
</commands>

在我的代码中的某一时刻,我创建命令、设置参数并执行它:

Map<String, String> parameters = new HashMap<String, String>();
parameters.put("cmd0", "test");
final Command command =commandService.getCommand("first.application.command.deleteproject");
final ParameterizedCommand pcmd = ParameterizedCommand.generateCommand(command, parameters);
pcmd.executeWithChecks(null, null);

我有一个与命令链接的处理程序,它具有以下执行方法:

@Execute
public void execute(@Optional @Named("cmd0") String file) {
  System.out.println("delete project " + file);
}

一切正常,只是file没有被注入,它保留下来null。当我检查pcmd在我执行它之前,它告诉我它已正确设置参数{cmd0=test} (using System.out.println(pcmd.getParameterMap());)。当我删除时@Optional,根本没有调用execute方法。

某个地方的参数cmd0丢失了。我的代码哪里有错误?

Thanks!


刚刚找到解决方案。执行与pcmd.executeWithChecks(null, null);似乎没有按预期工作。相反,我们需要EHandlerService我们注入:

@Inject
private EHandlerService handlerService;

现在我们使用服务执行命令,如下所示:

handlerService.executeHandler(pcmd);

Voila!

我希望这也可以帮助别人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Eclipse 4.3 中使用 ParameterizedCommand 注入参数? 的相关文章

随机推荐

  • 如何创建一个android自动启动应用程序?

    如何创建一个安卓自动启动应用程序 我的应用程序显示特殊日期通知 并且它必须自动启动 tnx 您可以使用报警管理器 http developer android com reference android app AlarmManager h
  • 如何使屏幕上的按钮水平和垂直居中且等距?

    我已经绞尽脑汁 这里是android新手 所以不难做到 有一段时间试图找出如何实现这一点 使用RelativeLayout或AbsoluteLayout以外的东西来创建它 我有 Windows 编程背景 其中设备会为您调整 绝对 定位 并且
  • 哈希集与树集

    我一直很喜欢树 真好O n log n 以及它们的整洁 然而 我认识的每一位软件工程师都尖锐地问我为什么要使用TreeSet 从 CS 背景来看 我认为你使用什么并不重要 而且我不喜欢乱搞哈希函数和存储桶 在这种情况下 Java 在什么情况
  • REDCap 自动填充早期记录中的字段

    我想用早期记录中该字段中插入的内容填充下拉菜单 不带管道的形式 具体来说 我有一个名为 杂志 如果之前有人记录过日记 代谢组学 我希望它出现在下拉菜单 或类似的菜单 中 如果日记是新的 我会添加一个文本字段 可以在其中添加新日记 感谢您的帮
  • kotlin 嵌套线程 - “此范围内有多个具有此类名称的标签”

    我有一些与此类似的 kotlin 代码 Thread Thread return Thread start start 现在我收到以下警告 我知道 kotlin 对于此时要返回哪个线程感到困惑 无论是外线程还是内线程 但我不知道如何告诉它
  • 如何查找哪些对象产生的垃圾最多

    我的应用程序包含 80 个不同类的大约 80 个实例 这些类的某些子集生成的垃圾量是不可接受的 并且停止世界的暂停时间太长 因为我的应用程序是实时的 我想找到的是哪些类负责创建最大的number堆上对象的数量 不是聚合大小 而是对象的原始数
  • Automapper:映射到受保护的财产

    我需要映射到protected使用类的属性Automapper 我有一个public此类上公开的方法 用于设置属性的值 该方法需要一个parameter 如何将值映射到此类 目的地舱位 public class Policy private
  • Pyspark 性能:dataframe.collect() 非常慢

    当我尝试在数据帧上进行收集时 似乎花费了太长时间 我想从数据框中收集数据 将其转换为字典并将其插入到 documentdb 中 但是执行day rows collect 时性能似乎很慢 day rows self sc sql select
  • 如何使两个数组连续以便 Numba 可以加速 np.dot()

    我有以下代码 import numpy as np from numba import jit Nx 15 Ny 1000 v np ones Nx Ny v np reshape v Nx Ny A np random rand Nx N
  • 考虑以下代码 索引 html
  • 无法在 Rails 4 中自动加载常量 API 控制器

    我正在 Rails 4 2 6 应用程序中创建一个简单的 api 端点 但遇到了问题 当我点击网址时 http lvh me 9077 api v1 grubs http lvh me 9077 api v1 grubs我收到以下错误 Un
  • 如何从 Play 2.0 中的 POST 获取有效负载

    我正在尝试使用 Play 2 0 Scala 实现 REST API 但我陷入了 POST 方法 如何从 Request 对象获取有效负载 我没有找到任何有关它的文档 也无法从源代码中找出答案 您应该能够执行以下操作 def index A
  • iTextSharp 创建页脚页#(共 # 页)

    我正在尝试使用 iTextSharp 在 PDF 文档的每个页面上创建页脚 格式为 Page of 遵循 iText 页面和书中的教程 虽然我一直在 cb SetFontAndSize helv 12 上遇到异常 未将对象引用设置为对象 有
  • BackboneJS:在视图中的哪里声明函数?

    我开始学习BackboneJS 这是我的代码 var TodoItem Backbone Model extend var todoItem new TodoItem description Pick up milk status inco
  • 无论如何,多线程pdf挖掘?

    我有一个代码正在一堆 pdf 中寻找特定的字符串序列 问题是这个过程极其缓慢 有时我会得到超过 50000 页的 pdf 有没有办法实现多线程 不幸的是 尽管我进行了搜索 但我对线程代码还是一无所知 import os import shu
  • 添加了tomcat-embed-jasper但是jsp页面Whitelabel 404错误

    当我添加tomcat embed jasper依赖性我的项目有红色意味着 项目中出现错误 然后 当我运行我的项目时 得到了Error Could not find or load main class 依赖性 are
  • Combres 和 DotLessCssFilter

    好吧 短期内我无法让它发挥作用 该过滤器似乎无法自行应用 我正在尝试让梳子与我的 MVC 3 剃须刀应用程序一起使用 除了 DotLessCssFilter 之外 我已经完成了所有工作 在文档中它说In order to apply a f
  • Java抽象方法具有抽象参数和继承

    我最近摸索到一个 API 和实现的问题 其中出现了以下类型的代码 public abstract class A public A sum A a System out println A sum A called return null
  • 回滚到以前的版本后获取完整的 git 日志

    我是 git 新手 可能没有使用正确的术语 所以请耐心等待 假设我有一个包含 5 个更改的存储库 例如 D test gitrepo2 gt git log oneline 3a5fd33 555 3cfbfae 444 e9a78c8 3
  • 如何在 Eclipse 4.3 中使用 ParameterizedCommand 注入参数?

    我目前正在实现 Eclipse 4 3 应用程序并遇到问题 我尝试参数化命令来删除特定文件 我的方法对应于在 Eclipse RCP 4 2 中获取参数化命令的参数 https stackoverflow com questions 985