net.agmodel.dialog
Class SlowTaskDialog

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Dialog
                          |
                          +--javax.swing.JDialog
                                |
                                +--net.agmodel.dialog.SlowTaskDialog
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, RootPaneContainer, Serializable, WindowConstants

public class SlowTaskDialog
extends JDialog

A dialog to help the user manage a slow running task.
Includes a progress bar, which can run indeterminately if necessary, a status message, and a cancel button.

See Also:
Serialized Form

Field Summary
static String CANCELBUTTONNAME
          The name of the cancel button - used in the ActionEvent sent when the cancel button is clicked.
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
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
SlowTaskDialog()
          Create a default non-modal dialog not linked to any frame.
SlowTaskDialog(Frame frame, String title, boolean modal)
          Creates a dialog (but doesn't display it).
 
Method Summary
 void addCancelListener(ActionListener cancelListener)
          Add a listener to be notified if the user clicks the cancel button
 void appear()
          Make the dialog appear, and start the progress bar running if autoProgress.
 void disappear()
          Hide the dialog, and stop the progess bar running if it is.
(package private)  void jbInit()
           
 void setAutoProgress(boolean autoProgress)
          If set true, the progress bar will steadily converge toward the right side, but never reach it.
 void setMessage(String text)
          Set the status message to appear in a JLabel above the progress bar.
 void setProgress(int percent)
          Set the progress bar to a particular position.
 void setProgressBarFractionUpdate(int fractionRemaining)
          Set the fraction of the remaining space "chewed up" by the progress bar on each refresh interval.
 void setProgressBarRefresh(int refreshms)
          Set how often the progress bar updates when in autoProgress mode.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, dispose, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, toBack, 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, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, 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, isOpaque, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CANCELBUTTONNAME

public static final String CANCELBUTTONNAME
The name of the cancel button - used in the ActionEvent sent when the cancel button is clicked.

See Also:
Constant Field Values
Constructor Detail

SlowTaskDialog

public SlowTaskDialog(Frame frame,
                      String title,
                      boolean modal)
Creates a dialog (but doesn't display it).

Parameters:
frame - the parent frame (can use JOptionPane.getFrameForComponent())
title - a title for the dialog.
modal - whether the dialog prevents other components from having the focus.

SlowTaskDialog

public SlowTaskDialog()
Create a default non-modal dialog not linked to any frame.

Method Detail

jbInit

void jbInit()
      throws Exception
Exception

addCancelListener

public void addCancelListener(ActionListener cancelListener)
Add a listener to be notified if the user clicks the cancel button

Parameters:
cancelListener -

setAutoProgress

public void setAutoProgress(boolean autoProgress)
If set true, the progress bar will steadily converge toward the right side, but never reach it.
This follows the pattern of Archilles and the Tortoise.

Parameters:
autoProgress - use true in situations where you don't know how long a task will take.

appear

public void appear()
Make the dialog appear, and start the progress bar running if autoProgress.


disappear

public void disappear()
Hide the dialog, and stop the progess bar running if it is.


setProgress

public void setProgress(int percent)
Set the progress bar to a particular position.

Parameters:
percent - 0 - left hand side, 100 - right hand side

setProgressBarRefresh

public void setProgressBarRefresh(int refreshms)
Set how often the progress bar updates when in autoProgress mode.

Parameters:
refreshms - the refresh interval in milliseconds.
See Also:
setProgressBarFractionUpdate(int)

setProgressBarFractionUpdate

public void setProgressBarFractionUpdate(int fractionRemaining)
Set the fraction of the remaining space "chewed up" by the progress bar on each refresh interval.

Parameters:
fractionRemaining - to consume quarter of the remaining empty space each refresh, use 4, to consume one third, use 3...
See Also:
setProgressBarRefresh(int)

setMessage

public void setMessage(String text)
Set the status message to appear in a JLabel above the progress bar.

Parameters:
text - the status message.