Package edu.cnu.mdi.sim.ui
Class IconSimulationControlPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
edu.cnu.mdi.sim.ui.IconSimulationControlPanel
- All Implemented Interfaces:
SimulationListener,ISimulationControlPanel,ImageObserver,MenuContainer,Serializable,Accessible
public class IconSimulationControlPanel
extends JPanel
implements SimulationListener, ISimulationControlPanel
A more graphical variant of
SimulationControlPanel that prefers icons and
supports either an indeterminate "busy" graphic (when available) or an indeterminate
progress bar fallback.
MDI-agnostic: icons are supplied by an IconSimulationControlPanel.IconProvider.
- See Also:
-
Nested Class Summary
Nested ClassesNested 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
ConstructorsConstructorDescriptionIconSimulationControlPanel(IconSimulationControlPanel.IconProvider icons, boolean includeStartButton) -
Method Summary
Modifier and TypeMethodDescriptionvoidbind(ISimulationHost host) Bind this panel to a host: stores the host reference, registers this panel as aSimulationListener, and updates the UI to reflect the host's current state.voidCalled when cancellation is requested viaSimulationEngine.requestCancel().voidonDone(SimulationContext ctx) Called when the engine ends normally (reachesSimulationState.TERMINATED).voidonFail(SimulationContext ctx, Throwable error) Called when the engine fails (reachesSimulationState.FAILED).voidonMessage(SimulationContext ctx, String message) Called for status/log messages intended for UI display.voidonPause(SimulationContext ctx) Called when the engine entersSimulationState.PAUSED.voidonProgress(SimulationContext ctx, ProgressInfo progress) Called for progress updates (indeterminate or determinate).voidCalled for a graphics refresh/update event.voidCalled when the engine resumes fromSimulationState.PAUSEDback toSimulationState.RUNNING.voidonRun(SimulationContext ctx) Called when the engine begins execution (entersSimulationState.RUNNING).voidonStateChange(SimulationContext ctx, SimulationState from, SimulationState to, String reason) Called on every state transition.static IconSimulationControlPanelsimplifiedPanel(boolean includeStartButton) voidunbind()Release any current host binding.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.SimulationListener
onCompleted, onInit, onReady
-
Constructor Details
-
IconSimulationControlPanel
public IconSimulationControlPanel(IconSimulationControlPanel.IconProvider icons, boolean includeStartButton)
-
-
Method Details
-
bind
Bind this panel to a host: stores the host reference, registers this panel as aSimulationListener, and updates the UI to reflect the host's current state.Note: this method does not implicitly unbind first. Calling it again with a different host while already bound leaves this panel registered as a stale listener on the previous host's engine; call
unbind()first if rebinding.- Specified by:
bindin interfaceISimulationControlPanel- Parameters:
host- the simulation host (non-null)
-
unbind
public void unbind()Description copied from interface:ISimulationControlPanelRelease any current host binding.- Specified by:
unbindin interfaceISimulationControlPanel
-
onStateChange
public void onStateChange(SimulationContext ctx, SimulationState from, SimulationState to, String reason) Description copied from interface:SimulationListenerCalled on every state transition.- Specified by:
onStateChangein interfaceSimulationListener- Parameters:
ctx- simulation contextfrom- previous stateto- new statereason- human-readable reason (may be null)
-
onRun
Description copied from interface:SimulationListenerCalled when the engine begins execution (entersSimulationState.RUNNING).- Specified by:
onRunin interfaceSimulationListener- Parameters:
ctx- simulation context
-
onResume
Description copied from interface:SimulationListenerCalled when the engine resumes fromSimulationState.PAUSEDback toSimulationState.RUNNING.- Specified by:
onResumein interfaceSimulationListener- Parameters:
ctx- simulation context
-
onPause
Description copied from interface:SimulationListenerCalled when the engine entersSimulationState.PAUSED.- Specified by:
onPausein interfaceSimulationListener- Parameters:
ctx- simulation context
-
onDone
Description copied from interface:SimulationListenerCalled when the engine ends normally (reachesSimulationState.TERMINATED).- Specified by:
onDonein interfaceSimulationListener- Parameters:
ctx- simulation context
-
onFail
Description copied from interface:SimulationListenerCalled when the engine fails (reachesSimulationState.FAILED).- Specified by:
onFailin interfaceSimulationListener- Parameters:
ctx- simulation contexterror- the exception/error that caused failure
-
onCancelRequested
Description copied from interface:SimulationListenerCalled when cancellation is requested viaSimulationEngine.requestCancel().This callback occurs on the EDT; the simulation thread observes cancellation via
SimulationContext.isCancelRequested().- Specified by:
onCancelRequestedin interfaceSimulationListener- Parameters:
ctx- simulation context
-
onMessage
Description copied from interface:SimulationListenerCalled for status/log messages intended for UI display.- Specified by:
onMessagein interfaceSimulationListener- Parameters:
ctx- simulation contextmessage- message text (non-null)
-
onProgress
Description copied from interface:SimulationListenerCalled for progress updates (indeterminate or determinate).- Specified by:
onProgressin interfaceSimulationListener- Parameters:
ctx- simulation contextprogress- progress payload
-
onRefresh
Description copied from interface:SimulationListenerCalled for a graphics refresh/update event. Views typically repaint in response.- Specified by:
onRefreshin interfaceSimulationListener- Parameters:
ctx- simulation context
-
simplifiedPanel
-