【发布时间】:2012-10-01 23:02:04
【问题描述】:
我为这个命令声明了一个命令和一个命令参数。我将此 commandParameter 的“值”指定为我自己实现的类。该类的实现如下,
public class ParameterValues implements IParameterValues {
@Override
public Map<String, Double> getParameterValues() {
// TODO Auto-generated method stub
Map<String, Double> values = new HashMap<String, Double>(2);
values.put("testParam", 1.1239);
values.put("AnotherTest", 4.1239);
return values;
}
}
这个命令的handler的实现是吹的,
public class testHandler extends AbstractHandler implements IHandler {
private static String PARAMETER_ID = "my.parameter1";
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
String value = event.getParameter(PARAMETER_ID);
MessageDialog.openInformation(HandlerUtil.getActiveShell(event),
"Test", "Parameter ID: " + PARAMETER_ID + "\nValue: " + value);
return null;
}
}
现在,我将命令贡献给菜单,
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="my.edit"
label="Edit">
<command
commandId="myCommand.test"
label="Test1">
<parameter
name="my.parameter1"
value="testParam">
</parameter>
</command>
由于我为 commandParater 指定了一个“值”类,我希望在单击菜单时,此代码行“String value = event.getParameter(PARAMETER_ID);”在处理程序类中返回 1.1239 而不是“testParam”。 但是,我仍然看到代码行返回“testParam”。
有什么问题?如何访问 getParameterValues() 返回的地图?
顺便说一句,即使我没有在地图中定义“ppp”,以下菜单声明仍然有效。
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="my.edit"
label="Edit">
<command
commandId="myCommand.test"
label="Test1">
<parameter
name="my.parameter1"
value="ppp">
</parameter>
</command>
谢谢!
【问题讨论】:
标签: eclipse-plugin eclipse-rcp