G
Gast2
Gast
Hallo zusammen,
ich hab ein command und möchte gern in diesem Command einen anderen Command programmatisch ausführen. Jetzt möchte diesem Command gern einen eigenen von mir definierten Parameter übergeben. Da der andere Command einen Dialog öffnet einmal mit leerem Inhalt und einmal vorgefüllt mit einem Objekt dass in der Tabelle ausgewählt ist.
D.h wenn man in der Toolbar den command ausführt wird ein neuer Datensatz angelegt und wenn man in der Tabelle einen doppelklick (2.ter command) macht kann der aktuelle datensatz bearbeitet.
Der Open Command
ich hab ein command und möchte gern in diesem Command einen anderen Command programmatisch ausführen. Jetzt möchte diesem Command gern einen eigenen von mir definierten Parameter übergeben. Da der andere Command einen Dialog öffnet einmal mit leerem Inhalt und einmal vorgefüllt mit einem Objekt dass in der Tabelle ausgewählt ist.
D.h wenn man in der Toolbar den command ausführt wird ein neuer Datensatz angelegt und wenn man in der Tabelle einen doppelklick (2.ter command) macht kann der aktuelle datensatz bearbeitet.
Der Open Command
Java:
public class OpenMyDialog extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
//Hier würde ich gern noch ein Parameter auswerten wenn der gesetzt ist wird dem Dialog noch ein Objekt übergeben.
MyDialog dialog = new MyDialog (HandlerUtil.getActiveShell(event));
dialog.open();
if(dialog.getReturnCode() == Dialog.OK){
}
return null;
}
}
Java:
public class ShowSelected extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
.getActivePage().getSelection();
if (selection != null & selection instanceof IStructuredSelection) {
IStructuredSelection strucSelection = (IStructuredSelection) selection;
MyObejct o = (MyObejct ) strucSelection.getFirstElement();
IHandlerService handlerService = (IHandlerService)HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart().getSite().getService(IHandlerService.class);
try {
// wie kann ich dem command jetzt MyObject übergeben???
handlerService.executeCommand("add.command", null);
} catch (Exception ex) {
throw new RuntimeException("add.command");
}
}
return null;
}
}