This commit introduces several bits of quicksetup plumbing necessary to support the upgrader's interaction in asking the user whether they would like to cancel an upgrade if there are problems found:
- The notion of a 'UserInteraction' which can be used by applications to prompt the user regardless of whether or not they are running in CLI or GUI mode. There are two subclasses of this, one for the CLI and one for the GUI. Unlike existing code for prompting the user in the CLI UserInteraction is intended to be used during the coarse of the progress panel but can be used elsewhere as well. UserInteraction has two methods currently that take arguments similar to JOptionPane's showConfirmDialog. One of the methods allows an application to present the user a dialog having a 'Details' section which in the GUI shows the user a JOptionPane have a 'Show Details' button that when clicked expands the panel to show details. Care has been taken to extend JOptionPane rather than invent a new dialog whose look and feel may not be compatible with future Swing look and feels.
- Code for the upgrader to use the new functionality in asking the user if they would like to back out of an upgrade if there are errors found. The user is presented with an option pane in the GUI with a 'Show Details' button where they can get more information. The CLI has an option for viewing the details if in an interactive session. The previous behavior was to back out automatically. The upgrader CLI supports a noninteractive argument to support the current behavior.
- Common support for 'silent' and 'noninteractive' command line parsing. The uninstaller and installer still retain their separate method for determining this but they could easily adopt the common approach now present in CliApplicationHelper.