edu.northwestern.at.utils.swing
Class ModalDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by edu.northwestern.at.utils.swing.ModalDialog
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
AnnotationEditor, DisplayImage, DisplayListBox, DisplayStyledText, ErrorMessage, FontPrefsDialog, GoToDialog, InformationMessage, LoginDialog, PrintPreview, ProgressDialog, SearchAndReplaceDialog, SiteDialog, SkeletonDialog, TranslationsDialog, UserInput, WarningMessage

public class ModalDialog
extends javax.swing.JDialog

A modal dialog.

This class makes it a bit easier to construct typical Swing modal dialogs which contain one or more components arranged vertically and left-aligned, then one or more buttons arranged horizontally and right-aligned with the other components, all separated by an appropriate and consistent amount of white space.

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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static boolean usePlatformPositionForDefaultButton
          True to ensure default button displays in platform specific location.
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ModalDialog(java.lang.String title)
          Constructs a new modal dialog.
ModalDialog(java.lang.String title, java.awt.Frame parentWindow)
          Constructs a new modal dialog.
 
Method Summary
 void add(int spacing)
          Adds a vertical spacing component.
 void add(javax.swing.JComponent component)
          Adds a body component with zero spacing.
 void add(javax.swing.JComponent component, int spacing)
          Adds a body component.
 void add(java.lang.String str)
          Adds a string component with zero spacing.
 void add(java.lang.String str, int spacing)
          Adds a string component.
 javax.swing.JButton addButton(java.lang.String label, java.awt.event.ActionListener actionListener)
          Adds a button.
 javax.swing.JButton addDefaultButton(java.lang.String label, java.awt.event.ActionListener actionListener)
          Adds the default button.
protected  void fixDefaultButtonPosition()
          Move the default button to the system-defined position.
 boolean getUsePlatformPositionForDefaultButton()
          Get flag for repositioning default button to platform location.
 void paintImmediately()
          Paint the dialog immediately.
 void setInitialFocus(javax.swing.JComponent component)
          Sets the intial focus component.
protected  void setUsePlatformPositionForDefaultButton(boolean usePlatformPositionForDefaultButton)
          Set flag for repositioning default button to platform location.
 void setVisible(boolean show)
          Shows or hides the dialog.
 void show(java.awt.Window parent)
          Packs and shows the dialog.
 void showUnpacked()
          Shows the dialog without packing it.
 void showUnpacked(java.awt.Window parent)
          Shows the dialog without packing it.
 
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, setModal, setModalityType, setResizable, setTitle, setUndecorated, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, transferFocusBackward, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

usePlatformPositionForDefaultButton

protected static boolean usePlatformPositionForDefaultButton
True to ensure default button displays in platform specific location.

Static so it can be set once for all modal dialogs.

Constructor Detail

ModalDialog

public ModalDialog(java.lang.String title,
                   java.awt.Frame parentWindow)
Constructs a new modal dialog.

Parameters:
title - Dialog window title.
parentWindow - Parent window.

ModalDialog

public ModalDialog(java.lang.String title)
Constructs a new modal dialog.

Parameters:
title - Dialog window title.
Method Detail

add

public void add(javax.swing.JComponent component,
                int spacing)
Adds a body component.

Parameters:
component - The component.
spacing - The number of vertical spacing pixels between this component and the previous component.

add

public void add(int spacing)
Adds a vertical spacing component.

Parameters:
spacing - The number of vertical spacing pixels.

add

public void add(javax.swing.JComponent component)
Adds a body component with zero spacing.

Parameters:
component - The component.

add

public void add(java.lang.String str,
                int spacing)
Adds a string component.

Parameters:
str - The string. This is turned into a JLabel component.
spacing - The number of vertical spacing pixels between this component and the previous component.

add

public void add(java.lang.String str)
Adds a string component with zero spacing.

Parameters:
str - The string. This is turned into a JLabel component.

addButton

public javax.swing.JButton addButton(java.lang.String label,
                                     java.awt.event.ActionListener actionListener)
Adds a button.

Parameters:
label - The button label.
actionListener - The ActionListener for the button.
Returns:
The button.

addDefaultButton

public javax.swing.JButton addDefaultButton(java.lang.String label,
                                            java.awt.event.ActionListener actionListener)
Adds the default button.

Parameters:
label - The button label.
actionListener - The ActionListener for the button.
Returns:
The button.

setInitialFocus

public void setInitialFocus(javax.swing.JComponent component)
Sets the intial focus component.

Parameters:
component - The component which should get the initial keyboard focus.

show

public void show(java.awt.Window parent)
Packs and shows the dialog.

Parameters:
parent - The parent window, or null if none. The dialog is positioned centered over its parent window horizontally and positioned with its top 25 pixels below the top of its parent.

setVisible

public void setVisible(boolean show)
Shows or hides the dialog.

Overrides:
setVisible in class java.awt.Dialog
Parameters:
show - true to show dialog with no parent window, false to hide dialog.

showUnpacked

public void showUnpacked()
Shows the dialog without packing it.

The dialog should already have been previously packed.


showUnpacked

public void showUnpacked(java.awt.Window parent)
Shows the dialog without packing it.

Parameters:
parent - The parent window, or null if none. The dialog is positioned centered over its parent window horizontally and positioned with its top 25 pixels below the top of its parent.

The dialog should already have been previously packed.


paintImmediately

public void paintImmediately()
Paint the dialog immediately.


getUsePlatformPositionForDefaultButton

public boolean getUsePlatformPositionForDefaultButton()
Get flag for repositioning default button to platform location.

Returns:
True to use platform position for default button.

setUsePlatformPositionForDefaultButton

protected void setUsePlatformPositionForDefaultButton(boolean usePlatformPositionForDefaultButton)
Set flag for repositioning default button to platform location.

Parameters:
usePlatformPositionForDefaultButton - True to use platform position for default button.

For Windows, the default button (if any) is moved to the far right. For Mac OS X and other systems, the button positions are left unchanged.


fixDefaultButtonPosition

protected void fixDefaultButtonPosition()
Move the default button to the system-defined position.

For Windows, the default button (if any) is moved to the far right. For Mac OSX, the default button is moved to the far left. For other systems, the button positions are left unchanged.