Package org.opentrafficsim.swing.gui
Class OtsControlPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.opentrafficsim.swing.gui.OtsControlPanel
- All Implemented Interfaces:
ActionListener
,WindowListener
,ImageObserver
,MenuContainer
,PropertyChangeListener
,Serializable
,Remote
,EventListener
,Accessible
,org.djutils.event.EventListener
public class OtsControlPanel
extends JPanel
implements ActionListener, PropertyChangeListener, WindowListener, org.djutils.event.EventListener
Peter's improved simulation control panel.
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
JLabel that displays the simulation time.protected class
Install the dispose on close when the OtsControlPanel is registered as part of a frame.(package private) static class
Extension of a DefaultFormatter that uses a regular expression.class
Entry field for time.(package private) class
JPanel that contains a JSider that uses a logarithmic scale.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
Modifier and TypeFieldDescriptionprotected boolean
Has the window close handler been registered?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
ConstructorDescriptionOtsControlPanel
(org.opentrafficsim.core.dsol.OtsSimulatorInterface simulator, org.opentrafficsim.core.dsol.OtsModelInterface model, OtsAnimationPanel otsAnimationPanel) Decorate a SimpleSimulator with a different set of control buttons. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
actionPerformed
(ActionEvent actionEvent) final void
Pause the simulator.protected final void
Update the enabled state of all the buttons.Provide access to the search panel.final org.opentrafficsim.core.dsol.OtsSimulatorInterface
final Font
final void
Install a handler for the window closed event that stops the simulator (if it is running).static final Icon
loadGrayscaleIcon
(String iconPath) Attempt to load and return an icon, which will be made gray-scale.static final Icon
Attempt to load and return an icon.final void
notify
(org.djutils.event.Event event) final void
void
setSimulationControlButtons
(boolean newState) Change the enabled/disabled state of the various simulation control buttons.final String
toString()
final void
final void
final void
final void
final void
final void
void
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, 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, update
Methods 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, validateTree
Methods 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, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
closeHandlerRegistered
protected boolean closeHandlerRegisteredHas the window close handler been registered?
-
-
Constructor Details
-
OtsControlPanel
public OtsControlPanel(org.opentrafficsim.core.dsol.OtsSimulatorInterface simulator, org.opentrafficsim.core.dsol.OtsModelInterface model, OtsAnimationPanel otsAnimationPanel) throws RemoteException Decorate a SimpleSimulator with a different set of control buttons.- Parameters:
simulator
- OtsSimulatorInterface; the simulatormodel
- OtsModelInterface; if non-null, the restart button should workotsAnimationPanel
- OtsAnimationPanel; the OTS animation panel- Throws:
RemoteException
- when simulator cannot be accessed for listener attachment
-
-
Method Details
-
setSimulationControlButtons
public void setSimulationControlButtons(boolean newState) Change the enabled/disabled state of the various simulation control buttons.- Parameters:
newState
- boolean; true if the buttons should become enabled; false if the buttons should become disabled
-
getOtsSearchPanel
Provide access to the search panel.- Returns:
- OtsSearchPanel; the OTS search panel
-
loadIcon
Attempt to load and return an icon.- Parameters:
iconPath
- String; the path that is used to load the icon- Returns:
- Icon; or null if loading failed
-
loadGrayscaleIcon
Attempt to load and return an icon, which will be made gray-scale.- Parameters:
iconPath
- String; the path that is used to load the icon- Returns:
- Icon; or null if loading failed
-
installWindowCloseHandler
public final void installWindowCloseHandler()Install a handler for the window closed event that stops the simulator (if it is running). -
actionPerformed
- Specified by:
actionPerformed
in interfaceActionListener
-
fixButtons
protected final void fixButtons()Update the enabled state of all the buttons. -
autoPauseSimulator
public final void autoPauseSimulator()Pause the simulator. -
propertyChange
- Specified by:
propertyChange
in interfacePropertyChangeListener
-
getSimulator
public final org.opentrafficsim.core.dsol.OtsSimulatorInterface getSimulator()- Returns:
- simulator.
-
windowOpened
- Specified by:
windowOpened
in interfaceWindowListener
-
windowClosing
- Specified by:
windowClosing
in interfaceWindowListener
-
windowClosed
- Specified by:
windowClosed
in interfaceWindowListener
-
windowIconified
- Specified by:
windowIconified
in interfaceWindowListener
-
windowDeiconified
- Specified by:
windowDeiconified
in interfaceWindowListener
-
windowActivated
- Specified by:
windowActivated
in interfaceWindowListener
-
windowDeactivated
- Specified by:
windowDeactivated
in interfaceWindowListener
-
getTimeFont
- Returns:
- timeFont.
-
notify
- Specified by:
notify
in interfaceorg.djutils.event.EventListener
- Throws:
RemoteException
-
toString
-