Class ExtensionManagerDialog<T extends AppExtension>

Type Parameters:
T - Any implementation of AppExtension
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class ExtensionManagerDialog<T extends AppExtension> extends JDialog
Provides a standardized way of viewing and enabling extensions across applications. Basically wraps an ExtensionManagerPanel and provides facilities for auto-committing changes directly to the given ExtensionManager.

If you don't want a popup dialog, but would rather embed the UI onto some existing screen, use ExtensionManagerPanel directly, but be aware you have to commit the resulting changes (enabling or disabling of extensions).

By default, this dialog will auto-commit any changes to extension enabled status made by the user. This happens when the dialog is okayed. You can prevent this behaviour via setAutoCommit(false), if you'd rather handle the enabling or disabling of extensions yourself. Use isExtensionEnabled() in this class to determine if the user enabled or disabled a given extension.

Since:
2023-11-11
Author:
scorbo2
See Also:
  • Constructor Details

    • ExtensionManagerDialog

      public ExtensionManagerDialog(ExtensionManager manager, Frame owner)
      Creates an ExtensionManager dialog with the given ExtensionManager and the default title of "Extension Manager".
      Parameters:
      manager - The ExtensionManager containing our list of extensions.
      owner - The owner frame. This dialog will be modal.
    • ExtensionManagerDialog

      public ExtensionManagerDialog(ExtensionManager manager, Frame owner, String title)
      Creates an ExtensionManager dialog with the given ExtensionManager and the given window title.
      Parameters:
      manager - The ExtensionManager containing our list of extensions.
      owner - The owner frame. This dialog will be modal.
      title - The window title. Will be "Extension Manager" if null.
  • Method Details

    • setAutoCommit

      public void setAutoCommit(boolean value)
      Sets whether to auto-commit changes made in this dialog when the okay button is clicked (the default value for this property is true). Any extension that is enabled or disabled within this dialog will result in a message to ExtensionManager to enable or disable that extension. This happens when the dialog is okayed.
      Parameters:
      value - Whether to auto-commit as described above.
    • isAutoCommit

      public boolean isAutoCommit()
      Reports whether the dialog will auto-commit changes made when the okay button is clicked. Any extension that is enabled or disabled within this dialog will result in a message to ExtensionManager to enable or disable that extension. This will happen when the dialog is okayed.
      Returns:
      Whether auto-commit is enabled as described above.
    • wasOkayed

      public boolean wasOkayed()
      Reports whether the dialog was okayed or canceled.
      Returns:
      True if ok was clicked, false otherwise.
    • wasModified

      public boolean wasModified()
      Reports whether any extension was enabled or disabled while the dialog was open. If autoCommit is true, these changes are pushed to ExtensionManager as soon as the dialog is okayed.
      Returns:
      True if at least one extension was enabled or disabled in this dialog.
    • isExtensionEnabled

      public boolean isExtensionEnabled(String className)
      Reports whether the extension with the given class name was toggled to enabled or disabled while this dialog was open. If autoCommit is true, these changes are pushed to ExtensionManager as soon as the dialog is okayed, so you don't have to worry about this. If autoCommit is false, you can use this to manually determine which extensions have been enabled or disabled, by comparing this value to the equivalent value from ExtensionManager.isExtensionEnabled().
      Parameters:
      className - The fully qualified name of the extension in question.
      Returns:
      Whether or not the extension is marked as enabled in this dialog.