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<T> manager, Window owner) Creates an ExtensionManager dialog with the given ExtensionManager and the default title of "Extension Manager".ExtensionManagerDialog(ExtensionManager<T> manager, Window owner, UpdateManager updateManager) Creates an ExtensionManager dialog with the given ExtensionManager and the given UpdateSources instance, which may be null. -
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.booleanvoidsetAutoCommit(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).protected static StringtrimString(String input) Utility method to trim the given String to a max length of 50 chars, with a "..." added to it if we had to cut it down.static StringtrimString(String input, int LIMIT) Utility method to trim the given String to the given length, with a "..." added to it if it was too long.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 window. This dialog will be modal.
-
ExtensionManagerDialog
public ExtensionManagerDialog(ExtensionManager<T> manager, Window owner, UpdateManager updateManager) Creates an ExtensionManager dialog with the given ExtensionManager and the given UpdateSources instance, which may be null. If UpdateSources is specified, the "available" tab will be shown with options to query the remote update source for possible downloads.- Parameters:
manager- The ExtensionManager containing our list of extensions.owner- The owner window. This dialog will be modal.updateManager- An optional UpdateManager instance for querying remote downloadable extensions.
-
-
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.
-
isRestartRequired
public boolean isRestartRequired() -
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.
-
trimString
Utility method to trim the given String to a max length of 50 chars, with a "..." added to it if we had to cut it down. See trimString(String,int) for a more flexible version of this method. -
trimString
Utility method to trim the given String to the given length, with a "..." added to it if it was too long.- Parameters:
input- The String to be trimmed.LIMIT- The maximum length to allow.- Returns:
- The input string if it was shorter than LIMIT, or the chopped string plus "..." otherwise.
-