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.JTextFieldbootload(package private) javax.swing.JRadioButtoncheckhardwareexact(package private) javax.swing.JRadioButtoncheckhardwaregreater(package private) javax.swing.JRadioButtoncheckhardwareno(package private) javax.swing.JRadioButtonchecksoftwareless(package private) javax.swing.JRadioButtonchecksoftwareno(package private) javax.swing.JTextFielddelay(package private) intdelayval(package private) javax.swing.JTextFielddeveloper(package private) javax.swing.JTextFieldeestart(package private) inteestartval(package private) intendaddr(package private) javax.swing.JTextFielderaseBlockSize(package private) javax.swing.ButtonGrouphardgroup(package private) javax.swing.JTextFieldhardwareprotected LocoNetSystemConnectionMemomemoLnPanelInterface implementation makes "memo" object available as convenience(package private) javax.swing.JTextFieldmfg(package private) javax.swing.JTextFieldproduct(package private) static intPXCT2ENDOPERATION(package private) static intPXCT2SENDADDRESS(package private) static intPXCT2SENDDATA(package private) static intPXCT2SETUP(package private) static intPXCT2VERIFYDATA(package private) javax.swing.ButtonGroupsoftgroup(package private) javax.swing.JTextFieldsoftware(package private) intstartaddr-
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 voidactionPerformed(java.awt.event.ActionEvent e)protected voidaddChooserFilters(javax.swing.JFileChooser chooser)Add filter(s) for possible types to the input file chooser.protected voidaddOptionsPanel()Include code to add additional options here.protected voiddoLoad()protected voiddoVerify()java.lang.StringgetHelpTarget()Provide a help target string which an enclosing frame can provide as a help reference.java.lang.StringgetTitle()Provide a recommended title for an enclosing frame.java.lang.StringgetTitle(java.lang.String menuTitle)LnPanelInterface implementation creates standard form of title.protected voidhandleOptionsInFileContent(MemoryContents inputContent)voidinitComponents()This gets invoked early.voidinitComponents(LocoNetSystemConnectionMemo memo)2nd stage of initialization, invoked after the constructor is complete.voidinitContext(java.lang.Object context)3rd stage of initialization, invoked after Swing components exist.protected booleanparametersAreValid()Checks the values in the GUI text boxes to determine if any are invalid.(package private) voidsendOne(int pxct2, int d1, int d2, int d3, int d4, int d5, int d6, int d7, int d8)protected voidsetDefaultFieldValues()protected voidupdateDownloadVerifyButtons()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:
initContextin 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:
initComponentsin 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:
initComponentsin interfaceLnPanelInterface- Parameters:
memo- aLocoNetSystemConnectionMemoobject
-
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:AbstractLoaderPaneProvide 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:
getHelpTargetin classAbstractLoaderPane- Returns:
- the target String
-
getTitle
public java.lang.String getTitle()
Description copied from class:JmriPanelProvide a recommended title for an enclosing frame.
-
addOptionsPanel
protected void addOptionsPanel()
Description copied from class:AbstractLoaderPaneInclude code to add additional options here. By convention, if you include visible options, follow with a JSeparator.- Overrides:
addOptionsPanelin classAbstractLoaderPane
-
handleOptionsInFileContent
protected void handleOptionsInFileContent(MemoryContents inputContent)
- Overrides:
handleOptionsInFileContentin classAbstractLoaderPane
-
addChooserFilters
protected void addChooserFilters(javax.swing.JFileChooser chooser)
Add filter(s) for possible types to the input file chooser.- Overrides:
addChooserFiltersin classAbstractLoaderPane- Parameters:
chooser- a JFileChooser to which the filter is to be added
-
doLoad
protected void doLoad()
- Overrides:
doLoadin classAbstractLoaderPane
-
doVerify
protected void doVerify()
- Overrides:
doVerifyin 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:
setDefaultFieldValuesin 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:
parametersAreValidin 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:
updateDownloadVerifyButtonsin classAbstractLoaderPane
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Description copied from class:AbstractLoaderPane- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- Overrides:
actionPerformedin classAbstractLoaderPane
-
-