Class LoaderPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.util.swing.JmriPanel
-
- jmri.jmrix.AbstractLoaderPane
-
- jmri.jmrix.loconet.downloader.LoaderPane
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,LnPanelInterface
public class LoaderPane extends AbstractLoaderPane implements LnPanelInterface
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
-
-
Field Summary
Fields Modifier and Type Field Description (package private) javax.swing.JTextField
bootload
(package private) javax.swing.JRadioButton
checkhardwareexact
(package private) javax.swing.JRadioButton
checkhardwaregreater
(package private) javax.swing.JRadioButton
checkhardwareno
(package private) javax.swing.JRadioButton
checksoftwareless
(package private) javax.swing.JRadioButton
checksoftwareno
(package private) javax.swing.JTextField
delay
(package private) int
delayval
(package private) javax.swing.JTextField
developer
(package private) javax.swing.JTextField
eestart
(package private) int
eestartval
(package private) int
endaddr
(package private) javax.swing.JTextField
eraseBlockSize
(package private) javax.swing.ButtonGroup
hardgroup
(package private) javax.swing.JTextField
hardware
protected LocoNetSystemConnectionMemo
memo
LnPanelInterface implementation makes "memo" object available as convenience(package private) javax.swing.JTextField
mfg
(package private) javax.swing.JTextField
product
(package private) static int
PXCT2ENDOPERATION
(package private) static int
PXCT2SENDADDRESS
(package private) static int
PXCT2SENDDATA
(package private) static int
PXCT2SETUP
(package private) static int
PXCT2VERIFYDATA
(package private) javax.swing.ButtonGroup
softgroup
(package private) javax.swing.JTextField
software
(package private) int
startaddr
-
Fields inherited from class jmri.jmrix.AbstractLoaderPane
abortButton, abortOperation, addressSizeButtonGroup, bar, inputContent, loadButton, selectButton, status, 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
-
-
Constructor Summary
Constructors Constructor Description LoaderPane()
-
Method Summary
All Methods Instance 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.protected void
doLoad()
protected void
doVerify()
java.lang.String
getHelpTarget()
Provide a help target string which an enclosing frame can provide as a help reference.java.lang.String
getTitle()
Provide a recommended title for an enclosing frame.java.lang.String
getTitle(java.lang.String menuTitle)
LnPanelInterface implementation creates standard form of title.protected void
handleOptionsInFileContent(MemoryContents inputContent)
void
initComponents()
This gets invoked early.void
initComponents(LocoNetSystemConnectionMemo memo)
2nd stage of initialization, invoked after the constructor is complete.void
initContext(java.lang.Object context)
3rd stage of initialization, invoked after Swing components exist.protected boolean
parametersAreValid()
Checks the values in the GUI text boxes to determine if any are invalid.(package private) void
sendOne(int pxct2, int d1, int d2, int d3, int d4, int d5, int d6, int d7, int d8)
protected void
setDefaultFieldValues()
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 jmri.jmrix.AbstractLoaderPane
clearInputFileName, disableDownloadVerifyButtons, doRead, enableDownloadVerifyButtons, intParameterIsValid, isOperationAborted, setOperationAborted
-
Methods inherited from class jmri.util.swing.JmriPanel
dispose, getMenus, getMinimumDimension, getWindowInterface, isMultipleInstances, setWindowInterface
-
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
-
-
-
-
Field Detail
-
memo
protected LocoNetSystemConnectionMemo memo
LnPanelInterface implementation makes "memo" object available as convenience
-
bootload
javax.swing.JTextField bootload
-
mfg
javax.swing.JTextField mfg
-
developer
javax.swing.JTextField developer
-
product
javax.swing.JTextField product
-
hardware
javax.swing.JTextField hardware
-
software
javax.swing.JTextField software
-
delay
javax.swing.JTextField delay
-
eestart
javax.swing.JTextField eestart
-
eraseBlockSize
javax.swing.JTextField eraseBlockSize
-
checkhardwareno
javax.swing.JRadioButton checkhardwareno
-
checkhardwareexact
javax.swing.JRadioButton checkhardwareexact
-
checkhardwaregreater
javax.swing.JRadioButton checkhardwaregreater
-
hardgroup
javax.swing.ButtonGroup hardgroup
-
checksoftwareno
javax.swing.JRadioButton checksoftwareno
-
checksoftwareless
javax.swing.JRadioButton checksoftwareless
-
softgroup
javax.swing.ButtonGroup softgroup
-
PXCT2SETUP
static int PXCT2SETUP
-
PXCT2SENDADDRESS
static int PXCT2SENDADDRESS
-
PXCT2SENDDATA
static int PXCT2SENDDATA
-
PXCT2VERIFYDATA
static int PXCT2VERIFYDATA
-
PXCT2ENDOPERATION
static int PXCT2ENDOPERATION
-
startaddr
int startaddr
-
endaddr
int endaddr
-
delayval
int delayval
-
eestartval
int eestartval
-
-
Constructor Detail
-
LoaderPane
public LoaderPane()
-
-
Method Detail
-
initContext
public void initContext(java.lang.Object context)
3rd stage of initialization, invoked after Swing components exist.- Overrides:
initContext
in classJmriPanel
- Parameters:
context
- the context that this panel may be initialized with
-
initComponents
public void initComponents()
This gets invoked early. We don't want it to do anything, so we just fail to pass it up. Instead, we wait for the later call of initComponents(LocoNetSystemConnectionMemo memo)- Overrides:
initComponents
in classAbstractLoaderPane
-
initComponents
public void initComponents(LocoNetSystemConnectionMemo memo)
2nd stage of initialization, invoked after the constructor is complete.This needs to be connected to the initContext() method in implementing classes.
- Specified by:
initComponents
in interfaceLnPanelInterface
- Parameters:
memo
- aLocoNetSystemConnectionMemo
object
-
getTitle
public java.lang.String getTitle(java.lang.String menuTitle)
LnPanelInterface implementation creates standard form of title.- Parameters:
menuTitle
- is a string containing the name of the tool- Returns:
- a new string containing the connection's UserName plus the name of the tool
-
getHelpTarget
public java.lang.String getHelpTarget()
Description copied from class:AbstractLoaderPane
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.
- Specified by:
getHelpTarget
in classAbstractLoaderPane
- Returns:
- the target String
-
getTitle
public java.lang.String getTitle()
Description copied from class:JmriPanel
Provide a recommended title for an enclosing frame.
-
addOptionsPanel
protected void addOptionsPanel()
Description copied from class:AbstractLoaderPane
Include code to add additional options here. By convention, if you include visible options, follow with a JSeparator.- Overrides:
addOptionsPanel
in classAbstractLoaderPane
-
handleOptionsInFileContent
protected void handleOptionsInFileContent(MemoryContents inputContent)
- Overrides:
handleOptionsInFileContent
in classAbstractLoaderPane
-
addChooserFilters
protected void addChooserFilters(javax.swing.JFileChooser chooser)
Add filter(s) for possible types to the input file chooser.- Overrides:
addChooserFilters
in classAbstractLoaderPane
- Parameters:
chooser
- a JFileChooser to which the filter is to be added
-
doLoad
protected void doLoad()
- Overrides:
doLoad
in classAbstractLoaderPane
-
doVerify
protected void doVerify()
- Overrides:
doVerify
in classAbstractLoaderPane
-
sendOne
void sendOne(int pxct2, int d1, int d2, int d3, int d4, int d5, int d6, int d7, int d8)
-
setDefaultFieldValues
protected void setDefaultFieldValues()
- Overrides:
setDefaultFieldValues
in classAbstractLoaderPane
-
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.
- Overrides:
parametersAreValid
in classAbstractLoaderPane
- Returns:
- false if one or more GUI text box contains an invalid value
-
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.- Overrides:
updateDownloadVerifyButtons
in classAbstractLoaderPane
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Description copied from class:AbstractLoaderPane
- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classAbstractLoaderPane
-
-