Package ca.corbett.extensions.ui
Class ExtensionManagerDialog<T extends AppExtension>
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
ca.corbett.extensions.ui.ExtensionManagerDialog<T>
- Type Parameters:
T- Any implementation of AppExtension
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer,WindowConstants
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionExtensionManagerDialog(ExtensionManager manager, Frame owner) Creates an ExtensionManager dialog with the given ExtensionManager and the default title of "Extension Manager".ExtensionManagerDialog(ExtensionManager manager, Frame owner, String title) Creates an ExtensionManager dialog with the given ExtensionManager and the given window title. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReports whether the dialog will auto-commit changes made when the okay button is clicked.booleanisExtensionEnabled(String className) Reports whether the extension with the given class name was toggled to enabled or disabled while this dialog was open.voidsetAutoCommit(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).booleanReports whether any extension was enabled or disabled while the dialog was open.booleanReports whether the dialog was okayed or canceled.Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBackMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFrontMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
ExtensionManagerDialog
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
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
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.
-