Class 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-2020 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      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.
      OTSSearchPanel getOtsSearchPanel()
      Provide access to the search panel.
      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 Detail

      • closeHandlerRegistered

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

      • OTSControlPanel

        public OTSControlPanel​(DEVSSimulatorInterface.TimeDoubleUnit simulator,
                               OTSModelInterface model,
                               OTSAnimationPanel otsAnimationPanel)
                        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
        otsAnimationPanel - OTSAnimationPanel; the OTS animation panel
        Throws:
        java.rmi.RemoteException - when simulator cannot be accessed for listener attachment
    • Method Detail

      • getOtsSearchPanel

        public OTSSearchPanel getOtsSearchPanel()
        Provide access to the search panel.
        Returns:
        OTSSearchPanel; the OTS search panel
      • 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
      • 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.
      • toString

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