Class TaskControlPanel<R>
- Type Parameters:
R- task result type
- All Implemented Interfaces:
TaskListener<R>,ImageObserver,MenuContainer,Serializable,Accessible
TaskHandle.
The panel presents Start and Cancel buttons, a determinate or
indeterminate progress bar, status text, and elapsed worker time. It is
intentionally smaller than SimulationControlPanel: a one-shot task
has no meaningful pause, resume, or repeated-step controls.
Threading
TaskHandle listener callbacks are delivered on Swing's EDT, so
this panel updates its components directly. A Swing timer updates elapsed
time four times per second while work is active. Binding and unbinding
should also be performed on the EDT, as with ordinary Swing component
configuration.
Lifecycle
A panel may be constructed unbound and later attached with
bind(TaskHandle), or constructed with a handle. Rebinding first
unregisters the panel from its previous handle. Unbinding does not cancel
the task; task ownership remains with application code.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested 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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionCreates an unbound task control panel.TaskControlPanel(TaskHandle<R> handle) Creates and binds a task control panel. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidbind(TaskHandle<R> newHandle) Binds this panel to a task handle, replacing any previous binding.final JButtonfinal JLabelfinal JProgressBarfinal JButtonfinal JLabelfinal TaskHandle<R> voidonCompleted(TaskHandle<R> taskHandle, CompletionStatus status, Throwable error) Called exactly once for every terminal outcome, after the corresponding outcome-specific callback above.voidonMessage(TaskHandle<R> taskHandle, String message) Called for a coalesced status message.voidonProgress(TaskHandle<R> taskHandle, ProgressInfo progress) Called for a coalesced progress update.voidonStarted(TaskHandle<R> taskHandle) Called when execution begins.final voidunbind()Removes the current listener binding without stopping or cancelling work.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, 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, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface edu.cnu.mdi.sim.task.TaskListener
onCancelled, onFailed, onStopped, onSucceeded
-
Constructor Details
-
TaskControlPanel
public TaskControlPanel()Creates an unbound task control panel. -
TaskControlPanel
Creates and binds a task control panel.- Parameters:
handle- handle to control- Throws:
NullPointerException- ifhandleis null
-
-
Method Details
-
bind
Binds this panel to a task handle, replacing any previous binding. Binding does not start the task.- Parameters:
newHandle- handle to control- Throws:
NullPointerException- ifnewHandleis null
-
unbind
public final void unbind()Removes the current listener binding without stopping or cancelling work. -
getTaskHandle
- Returns:
- currently bound handle, or
null
-
getStartButton
- Returns:
- Start button, for application-specific presentation or automation
-
getCancelButton
- Returns:
- Cancel button, for application-specific presentation or automation
-
getProgressBar
- Returns:
- progress component displayed by this panel
-
getStatusLabel
- Returns:
- status label displayed by this panel
-
getElapsedLabel
- Returns:
- elapsed-time label displayed by this panel
-
onStarted
Description copied from interface:TaskListenerCalled when execution begins. @param handle originating handle- Specified by:
onStartedin interfaceTaskListener<R>
-
onProgress
Description copied from interface:TaskListenerCalled for a coalesced progress update.- Specified by:
onProgressin interfaceTaskListener<R>- Parameters:
taskHandle- originating handleprogress- latest progress value
-
onMessage
Description copied from interface:TaskListenerCalled for a coalesced status message.- Specified by:
onMessagein interfaceTaskListener<R>- Parameters:
taskHandle- originating handlemessage- latest message
-
onCompleted
Description copied from interface:TaskListenerCalled exactly once for every terminal outcome, after the corresponding outcome-specific callback above.- Specified by:
onCompletedin interfaceTaskListener<R>- Parameters:
taskHandle- originating handlestatus- terminal outcomeerror- failure, ornullfor a non-failure outcome
-