public void onOutput(OutputEvent event) {
try {
if (event instanceof ProgressStartEvent) {
ProgressStartEvent startEvent = (ProgressStartEvent) event;
ProgressOperation op = operations.start(startEvent.getShortDescription(), startEvent.getStatus(), startEvent.getOperationId(), startEvent.getParentOperationId());
updateText(op);
} else if (event instanceof ProgressCompleteEvent) {
ProgressOperation op = operations.complete(((ProgressCompleteEvent) event).getOperationId());
updateText(op.getParent());
} else if (event instanceof ProgressEvent) {
ProgressEvent progressEvent = (ProgressEvent) event;
ProgressOperation op = operations.progress(progressEvent.getStatus(), progressEvent.getOperationId());
updateText(op);
}
listener.onOutput(event);
} catch (Exception e) {
throw new RuntimeException("Unable to process incoming event '" + event