Package jmri.jmrix

Class AbstractLoaderPane

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
    Direct Known Subclasses:
    LoaderPane, LoaderPane

    public abstract class AbstractLoaderPane
    extends JmriPanel
    implements java.awt.event.ActionListener
    Pane for downloading .hex files and .dmf files to those LocoNet devices which support firmware updates via LocoNet IPL messages. This version relies on the file contents interpretation mechanisms built into the readHex() methods found in class jmri.jmrit.MemoryContents to automatically interpret the file's addressing type - either 16-bit or 24-bit addressing. The interpreted addressing type is reported in the pane after a file is read. The user cannot select the addressing type. This version relies on the file contents checking mechanisms built into the readHex() methods found in class jmri.jmrit.MemoryContents to check for a wide variety of possible issues in the contents of the firmware update file. Any exception thrown by at method is used to select an error message to display in the status line of the pane.
    See Also:
    Serialized Form
    • Nested Class Summary

      • 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 javax.swing.JButton abortButton  
      protected boolean abortOperation  
      (package private) javax.swing.JRadioButton address16bit  
      (package private) javax.swing.JRadioButton address24bit  
      protected javax.swing.ButtonGroup addressSizeButtonGroup  
      protected javax.swing.JProgressBar bar  
      protected MemoryContents inputContent  
      (package private) javax.swing.JLabel inputFileName  
      (package private) javax.swing.JPanel inputFileNamePanel  
      protected javax.swing.JButton loadButton  
      protected javax.swing.JButton selectButton  
      protected javax.swing.JLabel status  
      protected javax.swing.JButton verifyButton  
      • 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 Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      protected void addChooserFilters​(javax.swing.JFileChooser chooser)
      Add filter(s) for possible types to the input file chooser.
      protected void addOptionsPanel()
      Include code to add additional options here.
      void clearInputFileName()  
      protected void disableDownloadVerifyButtons()
      Cleans up the GUI interface after a firmware file read fails.
      protected void doLoad()  
      protected void doRead​(javax.swing.JFileChooser chooser)
      Read file into local memory.
      protected void doVerify()  
      protected void enableDownloadVerifyButtons()
      Cleans up the GUI interface.
      abstract java.lang.String getHelpTarget()
      Provide a help target string which an enclosing frame can provide as a help reference.
      protected void handleOptionsInFileContent​(MemoryContents inputContent)  
      void initComponents()
      2nd stage of initialization, invoked after the constructor is complete.
      protected boolean intParameterIsValid​(javax.swing.JTextField jtf, int minOk, int maxOk)  
      protected boolean isOperationAborted()  
      protected boolean parametersAreValid()
      Checks the values in the GUI text boxes to determine if any are invalid.
      protected void setDefaultFieldValues()  
      protected void setOperationAborted​(boolean state)  
      protected void updateDownloadVerifyButtons()
      Conditionally enables or disables the Download and Verify GUI buttons based on the validity of the parameter values in the GUI and the state of the memory contents object.
      • 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, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

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

      • getHelpTarget

        public abstract java.lang.String getHelpTarget()
        Provide a help target string which an enclosing frame can provide as a help reference.

        This automatically provides a reference to the usual place for JMRI window-specific help pages that are named for the implementing class, but note this is a Pane class, not a Frame class.

        Overrides:
        getHelpTarget in class JmriPanel
        Returns:
        the target String
      • addOptionsPanel

        protected void addOptionsPanel()
        Include code to add additional options here. By convention, if you include visible options, follow with a JSeparator.
      • addChooserFilters

        protected void addChooserFilters​(javax.swing.JFileChooser chooser)
        Add filter(s) for possible types to the input file chooser.
        Parameters:
        chooser - the file chooser to add filter(s) to
      • doRead

        protected void doRead​(javax.swing.JFileChooser chooser)
        Read file into local memory.
        Parameters:
        chooser - chooser to select the file to read from
      • doLoad

        protected void doLoad()
      • enableDownloadVerifyButtons

        protected void enableDownloadVerifyButtons()
        Cleans up the GUI interface. Updates status line to a localized "done" message or a localized "aborted" message depending on the value returned by isOperationAborted() . Assumes that the file was properly read to memory and is usable for firmware update and/or verify operations, and configures the Load, and Verify GUI buttons as enabled, and the Abort GUI button as disabled.
      • disableDownloadVerifyButtons

        protected void disableDownloadVerifyButtons()
        Cleans up the GUI interface after a firmware file read fails. Assumes that the invoking code will update the GUI status line as appropriate for the particular cause of failure. Configures the Load, Verify and Abort GUI buttons as disabled.
      • parametersAreValid

        protected boolean parametersAreValid()
        Checks the values in the GUI text boxes to determine if any are invalid. Intended for use immediately after reading a firmware file for the purpose of validating any key/value pairs found in the file. Also intended for use immediately before a "verify" or "download" operation to check that the user has not changed any of the GUI text values to ones that are unsupported. Note that this method cannot guarantee that the values are suitable for the hardware being updated and/or for the particular firmware information which was read from the firmware file.
        Returns:
        false if one or more GUI text box contains an invalid value
      • intParameterIsValid

        protected boolean intParameterIsValid​(javax.swing.JTextField jtf,
                                              int minOk,
                                              int maxOk)
      • updateDownloadVerifyButtons

        protected void updateDownloadVerifyButtons()
        Conditionally enables or disables the Download and Verify GUI buttons based on the validity of the parameter values in the GUI and the state of the memory contents object.
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener