Package org.sm.smtools.application.util
Class JProgressUpdateGlassPane
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.sm.smtools.application.util.JProgressUpdateGlassPane
- All Implemented Interfaces:
java.awt.event.KeyListener
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
public class JProgressUpdateGlassPane
extends javax.swing.JPanel
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener
The
JProgressUpdateGlassPane
class provides the basic functionality for a progress updating glasspane.
In order to meaningfully use the progress updater, a user first has to set the total number of expected progress updates via
setTotalNrOfProgressUpdates(int)
. Each time an update is done, the user should call signalProgressUpdate()
which repaints the glasspane.
If needed, the glasspane can block the mouse and keyboard input to the GUI via the setBlocking(boolean)
method.
Note that the menubar can still be accessed via its defined accelerator controls.
The following visualisations are supported:
Bar:
Circles:
Sector (fixed):
Sector (rotating):
- Version:
- 08/02/2015
- Author:
- Sven Maerivoet
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JProgressUpdateGlassPane.EVisualisationType
The different types of progress update visualisations.Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
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
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
Constructors Constructor Description JProgressUpdateGlassPane()
Constructs an unblockingJProgressUpdateGlassPane
object and resets it.JProgressUpdateGlassPane(JProgressUpdateGlassPane.EVisualisationType visualisationType, boolean showFractions)
Constructs an unblockingJProgressUpdateGlassPane
object and resets it. -
Method Summary
Modifier and Type Method Description void
done()
Resets the progress update glasspane and makes the glasspane invisible.double
getPercentageCompleted()
Returns the percentage completed.boolean
getShowFractions()
Returns whether or not fractions are shown in the percentage completed (not shown by default).JProgressUpdateGlassPane.EVisualisationType
getVisualisationType()
Returns the visualisation type to use.void
keyPressed(java.awt.event.KeyEvent e)
void
keyReleased(java.awt.event.KeyEvent e)
void
keyTyped(java.awt.event.KeyEvent e)
void
mouseClicked(java.awt.event.MouseEvent e)
void
mouseDragged(java.awt.event.MouseEvent e)
void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(java.awt.event.MouseEvent e)
void
mouseMoved(java.awt.event.MouseEvent e)
void
mousePressed(java.awt.event.MouseEvent e)
void
mouseReleased(java.awt.event.MouseEvent e)
void
paintComponent(java.awt.Graphics g)
void
reset()
Resets the progress update glasspane, by setting the percentage completed to zero and making the glasspane visible.void
setBlocking(boolean blocking)
Sets whether or not the glasspane should block all user mouse-input.void
setFading(boolean fading)
Sets whether or not fading is enabled.void
setMessageText(java.lang.String messageText)
Sets the optional message text.void
setPercentageCompleted(double percentageCompleted)
Directly sets the percentage completed.void
setShowFractions(boolean showFractions)
Sets whether or not fractions are shown in the percentage completed (not shown by default).void
setShowTimeEstimation(boolean showTimeEstimation)
Sets whether or not an estimation of the time left should be shown.void
setTotalNrOfProgressUpdates(int totalNrOfProgressUpdates)
Sets the total number of progress updates expected, corresponding to 100% completion.void
setVisualisationType(JProgressUpdateGlassPane.EVisualisationType visualisationType)
Sets the visualisation type to use.void
signalProgressUpdate()
Increases the number of progress updates already completed and repaints the glasspane.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, list, list, list, paintAll, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
JProgressUpdateGlassPane
public JProgressUpdateGlassPane()Constructs an unblockingJProgressUpdateGlassPane
object and resets it.A bar is used as the type of visualisation, fractions are not shown in the percentage completed.
-
JProgressUpdateGlassPane
public JProgressUpdateGlassPane(JProgressUpdateGlassPane.EVisualisationType visualisationType, boolean showFractions)Constructs an unblockingJProgressUpdateGlassPane
object and resets it.- Parameters:
visualisationType
- the type of the visualisation to showshowFractions
- aboolean
indicating whether or not fractions are shown in the percentage completed
-
-
Method Details
-
setFading
public final void setFading(boolean fading)Sets whether or not fading is enabled.- Parameters:
fading
- aboolean
specifying whether fading is enabled or not
-
setShowTimeEstimation
public final void setShowTimeEstimation(boolean showTimeEstimation)Sets whether or not an estimation of the time left should be shown.- Parameters:
showTimeEstimation
- aboolean
specifying whether or not an estimation of the time left should be shown
-
setVisualisationType
public final void setVisualisationType(JProgressUpdateGlassPane.EVisualisationType visualisationType)Sets the visualisation type to use.- Parameters:
visualisationType
- the type of the visualisation to use
-
getVisualisationType
Returns the visualisation type to use.- Returns:
- the type of the visualisation to use
-
setShowFractions
public final void setShowFractions(boolean showFractions)Sets whether or not fractions are shown in the percentage completed (not shown by default).- Parameters:
showFractions
- aboolean
indicating whether or not fractions are shown in the percentage completed
-
getShowFractions
public final boolean getShowFractions()Returns whether or not fractions are shown in the percentage completed (not shown by default).- Returns:
- a
boolean
indicating whether or not fractions are shown in the percentage completed
-
setMessageText
public final void setMessageText(java.lang.String messageText)Sets the optional message text.- Parameters:
messageText
- the message text to show
-
reset
public final void reset()Resets the progress update glasspane, by setting the percentage completed to zero and making the glasspane visible. -
setTotalNrOfProgressUpdates
public final void setTotalNrOfProgressUpdates(int totalNrOfProgressUpdates)Sets the total number of progress updates expected, corresponding to 100% completion.- Parameters:
totalNrOfProgressUpdates
- the total number of progress updates expected
-
signalProgressUpdate
public final void signalProgressUpdate()Increases the number of progress updates already completed and repaints the glasspane. -
setPercentageCompleted
public final void setPercentageCompleted(double percentageCompleted)Directly sets the percentage completed.- Parameters:
percentageCompleted
- the percentage completed
-
getPercentageCompleted
public final double getPercentageCompleted()Returns the percentage completed.- Returns:
- the percentage completed
-
done
public final void done()Resets the progress update glasspane and makes the glasspane invisible. -
setBlocking
public final void setBlocking(boolean blocking)Sets whether or not the glasspane should block all user mouse-input.- Parameters:
blocking
- aboolean
that indicates whether or not the glasspane should block all user mouse-input
-
paintComponent
public void paintComponent(java.awt.Graphics g)- Overrides:
paintComponent
in classjavax.swing.JComponent
-
mouseClicked
public final void mouseClicked(java.awt.event.MouseEvent e)- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
mousePressed
public final void mousePressed(java.awt.event.MouseEvent e)- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
-
mouseReleased
public final void mouseReleased(java.awt.event.MouseEvent e)- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
-
mouseEntered
public final void mouseEntered(java.awt.event.MouseEvent e)- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
-
mouseExited
public final void mouseExited(java.awt.event.MouseEvent e)- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
mouseMoved
public final void mouseMoved(java.awt.event.MouseEvent e)- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
-
mouseDragged
public final void mouseDragged(java.awt.event.MouseEvent e)- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
-
keyPressed
public void keyPressed(java.awt.event.KeyEvent e)- Specified by:
keyPressed
in interfacejava.awt.event.KeyListener
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent e)- Specified by:
keyReleased
in interfacejava.awt.event.KeyListener
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent e)- Specified by:
keyTyped
in interfacejava.awt.event.KeyListener
-