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:
java.awt.event.ActionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, EventListenerInterface

public class OTSControlPanel
extends javax.swing.JPanel
implements java.awt.event.ActionListener, java.beans.PropertyChangeListener, java.awt.event.WindowListener, EventListenerInterface
Peter's improved simulation control panel.

Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

$LastChangedDate: 2018-10-11 22:54:04 +0200 (Thu, 11 Oct 2018) $, @version $Revision: 4696 $, by $Author: averbraeck $, initial version 11 dec. 2014

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
Serialized Form
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    class  OTSControlPanel.ClockLabel
    JLabel that displays the simulation time.
    protected class  OTSControlPanel.DisposeOnCloseThread
    Install the dispose on close when the OTSControlPanel is registered as part of a frame.
    class  OTSControlPanel.TimeEdit
    Entry field for time.

    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 
    Modifier and Type Field Description
    protected boolean closeHandlerRegistered
    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

    Constructors 
    Constructor Description
    OTSControlPanel​(DEVSSimulatorInterface.TimeDoubleUnit simulator, OTSModelInterface model)
    Decorate a SimpleSimulator with a different set of control buttons.
  • Method Summary

    Modifier and Type Method Description
    void actionPerformed​(java.awt.event.ActionEvent actionEvent)
    void autoPauseSimulator()
    Pause the simulator.
    protected void fixButtons()
    Update the enabled state of all the buttons.
    DEVSSimulator<Time,​Duration,​SimTimeDoubleUnit> getSimulator()  
    java.awt.Font getTimeFont()  
    void installWindowCloseHandler()
    Install a handler for the window closed event that stops the simulator (if it is running).
    static javax.swing.Icon loadGrayscaleIcon​(java.lang.String iconPath)
    Attempt to load and return an icon, which will be made gray-scale.
    static javax.swing.Icon loadIcon​(java.lang.String iconPath)
    Attempt to load and return an icon.
    void notify​(EventInterface event)
    void propertyChange​(java.beans.PropertyChangeEvent evt)
    java.lang.String toString()
    void windowActivated​(java.awt.event.WindowEvent e)
    void windowClosed​(java.awt.event.WindowEvent e)
    void windowClosing​(java.awt.event.WindowEvent e)
    void windowDeactivated​(java.awt.event.WindowEvent e)
    void windowDeiconified​(java.awt.event.WindowEvent e)
    void windowIconified​(java.awt.event.WindowEvent e)
    void windowOpened​(java.awt.event.WindowEvent e)

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • closeHandlerRegistered

      protected boolean closeHandlerRegistered
      Has the window close handler been registered?
  • Constructor Details

    • OTSControlPanel

      public OTSControlPanel​(DEVSSimulatorInterface.TimeDoubleUnit simulator, OTSModelInterface model) throws java.rmi.RemoteException
      Decorate a SimpleSimulator with a different set of control buttons.
      Parameters:
      simulator - DEVSSimulatorInterface.TimeDoubleUnit; the simulator
      model - OTSModelInterface; if non-null, the restart button should work
      Throws:
      java.rmi.RemoteException - when simulator cannot be accessed for listener attachment
  • Method Details

    • loadIcon

      public static final javax.swing.Icon loadIcon​(java.lang.String iconPath)
      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

      public static final javax.swing.Icon loadGrayscaleIcon​(java.lang.String iconPath)
      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

      public final void actionPerformed​(java.awt.event.ActionEvent actionEvent)
      Specified by:
      actionPerformed in interface java.awt.event.ActionListener
    • fixButtons

      protected final void fixButtons()
      Update the enabled state of all the buttons.
    • autoPauseSimulator

      public final void autoPauseSimulator()
      Pause the simulator.
    • propertyChange

      public final void propertyChange​(java.beans.PropertyChangeEvent evt)
      Specified by:
      propertyChange in interface java.beans.PropertyChangeListener
    • getSimulator

      public final DEVSSimulator<Time,​Duration,​SimTimeDoubleUnit> getSimulator()
      Returns:
      simulator.
    • windowOpened

      public void windowOpened​(java.awt.event.WindowEvent e)
      Specified by:
      windowOpened in interface java.awt.event.WindowListener
    • windowClosing

      public final void windowClosing​(java.awt.event.WindowEvent e)
      Specified by:
      windowClosing in interface java.awt.event.WindowListener
    • windowClosed

      public final void windowClosed​(java.awt.event.WindowEvent e)
      Specified by:
      windowClosed in interface java.awt.event.WindowListener
    • windowIconified

      public final void windowIconified​(java.awt.event.WindowEvent e)
      Specified by:
      windowIconified in interface java.awt.event.WindowListener
    • windowDeiconified

      public final void windowDeiconified​(java.awt.event.WindowEvent e)
      Specified by:
      windowDeiconified in interface java.awt.event.WindowListener
    • windowActivated

      public final void windowActivated​(java.awt.event.WindowEvent e)
      Specified by:
      windowActivated in interface java.awt.event.WindowListener
    • windowDeactivated

      public final void windowDeactivated​(java.awt.event.WindowEvent e)
      Specified by:
      windowDeactivated in interface java.awt.event.WindowListener
    • getTimeFont

      public final java.awt.Font getTimeFont()
      Returns:
      timeFont.
    • notify

      public final void notify​(EventInterface event) throws java.rmi.RemoteException
      Specified by:
      notify in interface EventListenerInterface
      Throws:
      java.rmi.RemoteException
    • toString

      public final java.lang.String toString()
      Overrides:
      toString in class java.awt.Component