Skip to content

Commit 95a1adb

Browse files
committed
DefaultUIService: handle status events
Instead of having each StatusBar implementation listen for events with essentially the same onEvent code each time, the DefaultUIService will listen for status events and then pass the message on to each active UI's StatusBar.
1 parent 4af4d34 commit 95a1adb

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/main/java/org/scijava/ui/DefaultUIService.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,27 @@ protected void onEvent(@SuppressWarnings("unused") final AppQuitEvent event) {
434434
}
435435
}
436436

437+
@EventHandler
438+
protected void onEvent(final StatusEvent event) {
439+
if (event.isWarning()) {
440+
// report warning messages to the user in a dialog box
441+
final String message = event.getStatusMessage();
442+
if (message != null && !message.isEmpty()) {
443+
showDialog(message, MessageType.WARNING_MESSAGE);
444+
}
445+
}
446+
else {
447+
// tell each UI to report status updates in the status bar
448+
final int val = event.getProgressValue();
449+
final int max = event.getProgressMaximum();
450+
final String message = getStatusMessage(event);
451+
for (UserInterface ui : getAvailableUIs()) {
452+
ui.getStatusBar().setStatus(message);
453+
ui.getStatusBar().setProgress(val, max);
454+
}
455+
}
456+
}
457+
437458
// -- Helper methods --
438459

439460
private List<DisplayViewer<?>> displayViewers() {

0 commit comments

Comments
 (0)