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:
KeyListener
,MouseListener
,MouseMotionListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
public class JProgressUpdateGlassPane
extends JPanel
implements MouseListener, MouseMotionListener, 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:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
The different types of progress update visualisations.Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, 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
ConstructorDescriptionConstructs an unblockingJProgressUpdateGlassPane
object and resets it.JProgressUpdateGlassPane
(JProgressUpdateGlassPane.EVisualisationType visualisationType, boolean showFractions) Constructs an unblockingJProgressUpdateGlassPane
object and resets it. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
done()
Resets the progress update glasspane and makes the glasspane invisible.final double
Returns the percentage completed.final boolean
Returns whether or not fractions are shown in the percentage completed (not shown by default).Returns the visualisation type to use.void
void
void
final void
final void
final void
final void
final void
final void
final void
void
final void
reset()
Resets the progress update glasspane, by setting the percentage completed to zero and making the glasspane visible.final void
setBlocking
(boolean blocking) Sets whether or not the glasspane should block all user mouse-input.final void
setFading
(boolean fading) Sets whether or not fading is enabled.final void
setMessageText
(String messageText) Sets the optional message text.final void
setPercentageCompleted
(double percentageCompleted) Directly sets the percentage completed.final void
setShowFractions
(boolean showFractions) Sets whether or not fractions are shown in the percentage completed (not shown by default).final void
setShowTimeEstimation
(boolean showTimeEstimation) Sets whether or not an estimation of the time left should be shown.final void
setTotalNrOfProgressUpdates
(int totalNrOfProgressUpdates) Sets the total number of progress updates expected, corresponding to 100% completion.final void
setVisualisationType
(JProgressUpdateGlassPane.EVisualisationType visualisationType) Sets the visualisation type to use.final void
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
-
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
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
- Overrides:
paintComponent
in classJComponent
-
mouseClicked
- Specified by:
mouseClicked
in interfaceMouseListener
-
mousePressed
- Specified by:
mousePressed
in interfaceMouseListener
-
mouseReleased
- Specified by:
mouseReleased
in interfaceMouseListener
-
mouseEntered
- Specified by:
mouseEntered
in interfaceMouseListener
-
mouseExited
- Specified by:
mouseExited
in interfaceMouseListener
-
mouseMoved
- Specified by:
mouseMoved
in interfaceMouseMotionListener
-
mouseDragged
- Specified by:
mouseDragged
in interfaceMouseMotionListener
-
keyPressed
- Specified by:
keyPressed
in interfaceKeyListener
-
keyReleased
- Specified by:
keyReleased
in interfaceKeyListener
-
keyTyped
- Specified by:
keyTyped
in interfaceKeyListener
-