Wie schließe ich ein Dialog
in einem SelectionListener
? Derzeit ist mein SelectionListener
sieht wie folgt aus:JFace schließen Dialog im SelectionListener
public void widgetSelected(SelectionEvent e) {
ICommandService commandService = (ICommandService) PlatformUI.getWorkbench()
.getService(ICommandService.class);
IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench()
.getService(IHandlerService.class);
Command command = commandService
.getCommand("com.mainfirst.backoffice.gui.accounting.command.createBookingReversal");
Map<String, String> params = new HashMap<String, String>();
params.put("com.mainfirst.backoffice.gui.accounting.reversalCodeParameter",
String.valueOf(model.getVal().getCode()));
ParameterizedCommand paraCommand = ParameterizedCommand.generateCommand(command, params);
try {
handlerService.executeCommand(paraCommand, null);
} catch (Exception ex) {
Status status = new Status(IStatus.ERROR, AccountingActivator.PLUGIN_ID,
"Error opening reversal wizard", ex);
StatusManager.getManager().handle(status, StatusManager.SHOW);
throw new RuntimeException(ex);
}
close();
}
Wie man sehen kann ich close();
nennen, aber die Dialog
nicht bleiben am Ende offen. Das Verschieben des Anrufs innerhalb eines finally
Blocks hilft ebenfalls nicht. Mein Befehl öffnet eine neue Wizard
vor der Dialog
. Muß ich die Dialog
schließen, bevor die Wizard
öffnet?
@ greg-449 die Frage bearbeitet. [hier] (https://stackoverflow.com/questions/46113246/jface-disable-finish-button-in-wizard) ist meine zweite Frage – XtremeBaumer
Was macht der Befehl? Erwarten Sie, dass der Dialog geschlossen wird, bevor der Befehl beendet wird (wird nicht ausgeführt)? –
Der Befehl ruft den Handler auf, der wiederum nur den Assistenten öffnet. Ich erwarte, dass der Dialog geschlossen wird, sobald auf die Schaltfläche geklickt wird, aber der Befehl sollte trotzdem ausgeführt werden – XtremeBaumer