Class ControlPanel

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, AddressListener
    Direct Known Subclasses:
    LearnControlPanel

    public class ControlPanel
    extends javax.swing.JInternalFrame
    implements java.beans.PropertyChangeListener, AddressListener
    A JInternalFrame that contains a JSlider to control loco speed, and buttons for forward, reverse and STOP.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JInternalFrame

        javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon
      • 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
      static int DEFAULT_BUTTON_SIZE  
      static int SLIDERDISPLAY  
      static int SLIDERDISPLAYCONTINUOUS  
      static int STEPDISPLAY  
      (package private) jmri.jmrit.throttle.ControlPanel.MyTranscoder transcoder  
      • Fields inherited from class javax.swing.JInternalFrame

        closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
      • 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
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void applyPreferences()
      Apply current throttles preferences to this panel
      void destroy()  
      int getDisplaySlider()
      Get the value indicating what speed input we're displaying
      boolean getHideSpeedStep()
      Get status of hiding speed step selector
      javax.swing.JSlider getSpeedSlider()
      Provide direct access to speed slider for scripting.
      java.lang.String getSwitchSliderFunction()  
      boolean getTrackSlider()
      Get status of real-time speed slider tracking
      org.jdom2.Element getXml()
      Collect the prefs of this object into XML Element Window prefs
      boolean isEnabled()
      is this enabled?
      boolean isSpeedControllerAvailable​(int displaySlider)
      Is this Speed Control selection method possible?
      void notifyAddressChosen​(LocoAddress l)
      Receive notification that a new address has been selected.
      void notifyAddressReleased​(LocoAddress la)
      Receive notification that an address has been released/dispatched
      void notifyAddressThrottleFound​(DccThrottle t)
      Receive notification that a throttle has been found
      void notifyConsistAddressChosen​(LocoAddress l)
      Receive notification that a new Consist address has been selected.
      void notifyConsistAddressReleased​(LocoAddress la)
      Receive notification that a consist address has been released/dispatched.
      void notifyConsistAddressThrottleFound​(DccThrottle t)
      Receive notification that a throttle has been found
      void propertyChange​(java.beans.PropertyChangeEvent e)  
      void saveToRoster​(RosterEntry re)  
      void setAddressPanel​(AddressPanel addressPanel)  
      void setEnabled​(boolean isEnabled)
      Enable/Disable all buttons and slider.
      void setForwardDirection​(boolean fwd)
      Intended for throttle scripting
      void setHideSpeedStep​(boolean hide)
      Set hiding speed step selector (or not)
      void setSpeedController​(int displaySlider)
      Set the Speed Control selection method
      void setSpeedStepsMode​(SpeedStepMode speedStepMode)
      Set the GUI to match the speed steps of the current address.
      void setSwitchSliderFunction​(java.lang.String fn)  
      void setTrackSlider​(boolean track)
      Set real-time tracking of speed slider, or not
      void setXml​(org.jdom2.Element e)
      Set the preferences based on the XML Element.
      void stop()
      Perform an emergency stop.
      • Methods inherited from class javax.swing.JInternalFrame

        addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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, 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, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • setEnabled

        public void setEnabled​(boolean isEnabled)
        Enable/Disable all buttons and slider.
        Overrides:
        setEnabled in class javax.swing.JComponent
        Parameters:
        isEnabled - True if the buttons/slider should be enabled, false otherwise.
      • isEnabled

        public boolean isEnabled()
        is this enabled?
        Overrides:
        isEnabled in class java.awt.Component
        Returns:
        true if enabled
      • setSpeedStepsMode

        public void setSpeedStepsMode​(SpeedStepMode speedStepMode)
        Set the GUI to match the speed steps of the current address. Initialises the speed slider and spinner - including setting their maximums based on the speed step setting and the max speed for the particular loco
        Parameters:
        speedStepMode - Desired speed step mode. One of: SpeedStepMode.NMRA_DCC_128, SpeedStepMode.NMRA_DCC_28, SpeedStepMode.NMRA_DCC_27, SpeedStepMode.NMRA_DCC_14 step mode
      • isSpeedControllerAvailable

        public boolean isSpeedControllerAvailable​(int displaySlider)
        Is this Speed Control selection method possible?
        Parameters:
        displaySlider - integer value. possible values: SLIDERDISPLAY = use speed slider display STEPDISPLAY = use speed step display
        Returns:
        true if speed controller of the selected type is available.
      • setSpeedController

        public void setSpeedController​(int displaySlider)
        Set the Speed Control selection method
        Parameters:
        displaySlider - integer value. possible values: SLIDERDISPLAY = use speed slider display STEPDISPLAY = use speed step display
      • getDisplaySlider

        public int getDisplaySlider()
        Get the value indicating what speed input we're displaying
        Returns:
        SLIDERDISPLAY, STEPDISPLAY or SLIDERDISPLAYCONTINUOUS
      • getSpeedSlider

        public javax.swing.JSlider getSpeedSlider()
        Provide direct access to speed slider for scripting.
        Returns:
        the speed slider
      • setTrackSlider

        public void setTrackSlider​(boolean track)
        Set real-time tracking of speed slider, or not
        Parameters:
        track - boolean value, true to track, false to set speed on unclick
      • getTrackSlider

        public boolean getTrackSlider()
        Get status of real-time speed slider tracking
        Returns:
        true if slider is tracking.
      • setHideSpeedStep

        public void setHideSpeedStep​(boolean hide)
        Set hiding speed step selector (or not)
        Parameters:
        hide - boolean value, true to hide, false to show
      • getHideSpeedStep

        public boolean getHideSpeedStep()
        Get status of hiding speed step selector
        Returns:
        true if speed step selector is hiden.
      • stop

        public void stop()
        Perform an emergency stop.
      • setForwardDirection

        public void setForwardDirection​(boolean fwd)
        Intended for throttle scripting
        Parameters:
        fwd - direction: true for forward; false for reverse.
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent e)
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
      • applyPreferences

        final void applyPreferences()
        Apply current throttles preferences to this panel
      • getXml

        public org.jdom2.Element getXml()
        Collect the prefs of this object into XML Element
        • Window prefs
        Returns:
        the XML of this object.
      • setXml

        public void setXml​(org.jdom2.Element e)
        Set the preferences based on the XML Element.
        • Window prefs
        Parameters:
        e - The Element for this object.