RCP Command with object argument
Asked Answered
S

1

6

I want to call an RCP command in code, like this:

IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    IHandlerService handlerService = (IHandlerService)window.getService(IHandlerService.class);
    handlerService.executeCommand(cmdID, null);

With considerably more code, I can call the command with a string argument by assembling a Parameterization object then building a ParameterizedCommand and so forth but Paramaterization only allows for string values, and can't be subclassed.

What I really want to do is call the command with an object as a parameter. How can I do this?

Suffer answered 30/8, 2010 at 9:40 Comment(0)
H
2

Use ParameterizedCommand.generateCommand(). You can pass the command object (obtained from ICommandService) and the parameters in a map.

Hardshell answered 10/3, 2011 at 5:18 Comment(2)
That doesn't work. I'm only getting a "cannot be cast to java.lang.String" exception if i try to add an object instead of a String.Mcburney
I looked into this, it looks like you also need define a ParemeterValueConverter to converter your objects into Strings and back. I find that very impractical, tbh. You might be able to get away with using HandlerUtil.getCurrentSelection(event) for some parameters.Inflatable

© 2022 - 2024 — McMap. All rights reserved.