Package jmri.jmrix
Class AbstractLoaderPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.util.swing.JmriPanel
-
- jmri.jmrix.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
-
-
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
-
-
Constructor Summary
Constructors Constructor Description AbstractLoaderPane()
-
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 jmri.util.swing.JmriPanel
dispose, getMenus, getMinimumDimension, getTitle, getWindowInterface, initContext, 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
-
inputFileName
javax.swing.JLabel inputFileName
-
selectButton
protected javax.swing.JButton selectButton
-
loadButton
protected javax.swing.JButton loadButton
-
verifyButton
protected javax.swing.JButton verifyButton
-
abortButton
protected javax.swing.JButton abortButton
-
address24bit
javax.swing.JRadioButton address24bit
-
address16bit
javax.swing.JRadioButton address16bit
-
addressSizeButtonGroup
protected javax.swing.ButtonGroup addressSizeButtonGroup
-
bar
protected javax.swing.JProgressBar bar
-
status
protected javax.swing.JLabel status
-
inputFileNamePanel
javax.swing.JPanel inputFileNamePanel
-
inputContent
protected MemoryContents inputContent
-
abortOperation
protected boolean abortOperation
-
-
Constructor Detail
-
AbstractLoaderPane
public AbstractLoaderPane()
-
-
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 classJmriPanel
- 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.
-
initComponents
public void initComponents()
2nd stage of initialization, invoked after the constructor is complete.- Overrides:
initComponents
in classJmriPanel
-
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
-
handleOptionsInFileContent
protected void handleOptionsInFileContent(MemoryContents inputContent)
-
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()
-
doVerify
protected void doVerify()
-
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.
-
setOperationAborted
protected void setOperationAborted(boolean state)
-
isOperationAborted
protected boolean isOperationAborted()
-
setDefaultFieldValues
protected void setDefaultFieldValues()
-
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.
-
clearInputFileName
public void clearInputFileName()
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
-
-