Manage the active UI in a better way #465
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thanks to the HeadlessUI, we now always have at least one UI available to SciJava Common. This commit introduces the concept internally of an active UI: the one that will be used when UI-centric operations are performed via the UIService (rather than directly on a UserInterface).
The logic is as follows:
This PR also fixes a regression, introduced in #461, where calling
uiService.show(thing)
would also cause the default UI to become visible. Previously, it would only show that thing using the default UI, but the main window would not appear, and the UI as a whole would still be considered not visible. (To be fair: the "regression" here was explicitly stated as an intended change in that PR—but after discussion and reflection, we decided we don't want to change this behavior after all.)Might also fix #460?Edit: Nope, doesn't.