2012-03-24 2 views
2

in Eclipse 3.7 konnten wir dies tun:Erste Parameter parametrisiert Befehl in Eclipse RCP 4.2

public class HelloName extends AbstractHandler { 

    @Override 
    public Object execute(ExecutionEvent event) throws ExecutionException { 
     String name = event 
       .getParameter("de.vogella.rcp.commands.parameterfirst.commandParameter1"); 
     MessageDialog.openInformation(HandlerUtil.getActiveShell(event), 
       "Hello", "Hello " + name); 
     return null; 
    } 
} 

in Eclipse 4.2 ich diese Prozedur gemacht, und ich möchte die Teil-ID für findPart() als gegeben werden Parameter, aber woher bekomme ich den Parameter?

public class FocusHandler { 

    @Execute 
    public void execute(EPartService partService) { 
     MPart part = partService.findPart("nl.rh.parts.inbox"); 
     partService.activate(part, true); 
    } 
} 

Antwort

4

Ich fand die Antwort auf meine eigene Frage. Der Schlüssel besteht darin, eine @ Named Annotation mit Abhängigkeitsinjektion zu verwenden.

@Execute 
public void execute(EPartService partService, @Optional @Named("nl.rh.focusCommand.part") String partName) { 
    MPart part = partService.findPart(partName); 
    partService.activate(part, true); 
} 

Die Annotation @Named muss die ID des Befehlsparameters erhalten.