Package io.github.jonestimd.swing.dialog
Class ValidatedDialog
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- io.github.jonestimd.swing.dialog.MessageDialog
-
- io.github.jonestimd.swing.dialog.ValidatedDialog
-
- All Implemented Interfaces:
StatusIndicator
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
- Direct Known Subclasses:
FormDialog
public class ValidatedDialog extends MessageDialog
A dialog with save and cancel buttons and a validation status area. The save action is disabled when there are validation errors. Other conditions for enabling the save action can be added usingaddSaveCondition(BooleanSupplier)
.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
-
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
BUTTON_BAR_BORDER
protected javax.swing.JComponent
buttonBar
protected CancelAction
cancelAction
protected javax.swing.JPanel
formPanel
protected static java.lang.String
SAVE_MNEMONIC_AND_NAME
protected javax.swing.Action
saveAction
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description ValidatedDialog(java.awt.Window owner, java.lang.String title, java.awt.Dialog.ModalityType modalityType, java.util.ResourceBundle bundle)
ValidatedDialog(java.awt.Window owner, java.lang.String title, java.util.ResourceBundle bundle)
Create a document modal dialog.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addButton(javax.swing.Action action)
Add a button to the button bar.void
addSaveCondition(java.util.function.BooleanSupplier condition)
Add a condition for enabling the save action.protected void
addValidationListener(java.util.function.Consumer<java.util.Collection<java.lang.String>> listener)
protected javax.swing.JPanel
getFormPanel()
protected int
getStatusHeight()
java.util.Collection<java.lang.String>
getValidationMessages()
boolean
isCancelled()
boolean
isSaveEnabled()
Get the enabled state of the save action.protected void
onSave()
Dispose the dialog when the save button is clicked.protected void
setStatusText(java.util.Collection<java.lang.String> messages)
Set the messages in the validation status area.void
setVisible(boolean visible)
Overridden to reset the cancel action.void
updateSaveEnabled()
Update the enabled state of the save action.-
Methods inherited from class io.github.jonestimd.swing.dialog.MessageDialog
disableUI, enableUI, setStatusMessage
-
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, update
-
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
-
Methods 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, toFront
-
Methods 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, validateTree
-
Methods 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
-
-
-
-
Field Detail
-
BUTTON_BAR_BORDER
protected static final int BUTTON_BAR_BORDER
- See Also:
- Constant Field Values
-
SAVE_MNEMONIC_AND_NAME
protected static final java.lang.String SAVE_MNEMONIC_AND_NAME
-
formPanel
protected final javax.swing.JPanel formPanel
-
cancelAction
protected final CancelAction cancelAction
-
saveAction
protected final javax.swing.Action saveAction
-
buttonBar
protected final javax.swing.JComponent buttonBar
-
-
Constructor Detail
-
ValidatedDialog
public ValidatedDialog(java.awt.Window owner, java.lang.String title, java.util.ResourceBundle bundle)
Create a document modal dialog.
-
ValidatedDialog
public ValidatedDialog(java.awt.Window owner, java.lang.String title, java.awt.Dialog.ModalityType modalityType, java.util.ResourceBundle bundle)
-
-
Method Detail
-
addSaveCondition
public void addSaveCondition(java.util.function.BooleanSupplier condition)
Add a condition for enabling the save action. All save conditions must be true for the action to be enabled.
-
getStatusHeight
protected int getStatusHeight()
-
getFormPanel
protected javax.swing.JPanel getFormPanel()
-
addValidationListener
protected void addValidationListener(java.util.function.Consumer<java.util.Collection<java.lang.String>> listener)
-
addButton
protected void addButton(javax.swing.Action action)
Add a button to the button bar. The button is added before the Cancel button.
-
updateSaveEnabled
public void updateSaveEnabled()
Update the enabled state of the save action.
-
isSaveEnabled
public boolean isSaveEnabled()
Get the enabled state of the save action.
-
onSave
protected void onSave()
Dispose the dialog when the save button is clicked.
-
setVisible
public void setVisible(boolean visible)
Overridden to reset the cancel action.- Overrides:
setVisible
in classMessageDialog
-
getValidationMessages
public java.util.Collection<java.lang.String> getValidationMessages()
-
isCancelled
public boolean isCancelled()
- Returns:
- true if the dialog was cancelled
-
setStatusText
protected void setStatusText(java.util.Collection<java.lang.String> messages)
Set the messages in the validation status area.
-
-