Class SprogConsoleFrame
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- jmri.util.JmriJFrame
-
- jmri.jmrix.AbstractMonFrame
-
- jmri.jmrix.sprog.console.SprogConsoleFrame
-
- All Implemented Interfaces:
java.awt.event.ComponentListener
,java.awt.event.WindowListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
,BeanInterface
,SprogListener
,SprogVersionListener
,ModifiedFlag
,WindowInterface
public class SprogConsoleFrame extends AbstractMonFrame implements SprogListener, SprogVersionListener
Frame for Sprog ConsoleUpdated Jan 2010 by Andrew Berridge - fixed errors caused by trying to send some commands while slot manager is active
Updated April 2016 by Andrew Crosland - remove the checks on slot manager status, implement a timeout and look for the correct replies which may be delayed by replies for slot manager.
Refactored, I18N
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
SprogConsoleFrame.State
-
Nested classes/interfaces inherited from class jmri.util.JmriJFrame
JmriJFrame.ScreenDimensions
-
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
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
-
Nested classes/interfaces inherited from interface jmri.util.swing.WindowInterface
WindowInterface.Hint
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.JCheckBox
blueCheckBox
protected javax.swing.JLabel
cmdLabel
protected javax.swing.JTextField
cmdTextField
protected javax.swing.JLabel
currentLabel
protected int
currentLimit
protected javax.swing.JTextField
currentTextField
protected int
modeWord
(package private) java.lang.String
replyString
protected javax.swing.JButton
saveButton
protected javax.swing.JButton
sendButton
protected javax.swing.JRadioButton
speed128Button
protected javax.swing.JRadioButton
speed14Button
protected javax.swing.JRadioButton
speed28Button
protected javax.swing.ButtonGroup
speedGroup
protected javax.swing.JLabel
speedLabel
(package private) SprogConsoleFrame.State
state
(package private) SprogVersion
sv
(package private) SprogTrafficController
tc
protected int
TIMEOUT
(package private) javax.swing.Timer
timer
(package private) java.lang.String
tmpString
protected javax.swing.JCheckBox
unlockCheckBox
protected javax.swing.JCheckBox
ztcCheckBox
-
Fields inherited from class jmri.jmrix.AbstractMonFrame
alwaysOnTopCheckBox, autoScrollCheckBox, clearButton, enterButton, entryField, freezeButton, jScrollPane1, logFileChooser, monTextPane, openFileChooserButton, rawCheckBox, startLogButton, stopLogButton, timeCheckBox, userPrefs
-
Fields inherited from class jmri.util.JmriJFrame
allowInFrameServlet, properties, reuseFrameSavedPosition, reuseFrameSavedSized, windowInterface
-
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description SprogConsoleFrame(SprogSystemConnectionMemo memo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
When window is finally destroyed, remove it from the list of windows.protected void
init()
Initialize the data source.void
initComponents()
By default, Swing components should be created an installed in this method, rather than in the ctor itself.boolean
isBlueLineSupportPossible()
boolean
isCurrentLimitPossible()
boolean
isFirmwareUnlockPossible()
boolean
isZTCModePossible()
void
notifyMessage(SprogMessage l)
void
notifyReply(SprogReply l)
Handle a SprogReply in a console specific way.void
notifyVersion(SprogVersion v)
Handle a SprogVersion notification.protected void
restartTimer(int delay)
Internal routine to handle timer starts and restarts.void
saveButtonActionPerformed(java.awt.event.ActionEvent e)
void
sendButtonActionPerformed(java.awt.event.ActionEvent e)
protected void
setHelp()
Define help menu for this window.protected void
startTimer()
Internal routine to start timer to protect the mode-change.protected void
stopTimer()
Internal routine to stop timer, as all is well.protected void
timeout()
Internal routine to handle a timeout.protected java.lang.String
title()
void
validateCurrent()
Validate the current limit value entered by the user, depending on the SPROG version.-
Methods inherited from class jmri.jmrix.AbstractMonFrame
clearButtonActionPerformed, enterButtonActionPerformed, getActionButtonsPanel, getCheckBoxPanel, getLogToFilePanel, getTextArea, nextLine, openFileChooserButtonActionPerformed, startLogButtonActionPerformed, stopLogButtonActionPerformed
-
Methods inherited from class jmri.util.JmriJFrame
addHelpMenu, componentHidden, componentMoved, componentResized, componentShown, generateWindowRef, getAllowInFrameServlet, getEscapeKeyAction, getEscapeKeyClosesWindow, getFrame, getFrame, getFrameList, getFrameList, getIndexedProperty, getMaximumSize, getModifiedFlag, getPreferredSize, getProperty, getPropertyNames, getSavePosition, getSaveSize, getScreenDimensions, getWindowFrameRef, getWindowInterface, handleModified, hasIndexedProperty, hasProperty, makePrivateWindow, markWindowModified, multipleInstances, pack, setAllowInFrameServlet, setEscapeKeyAction, setEscapeKeyClosesWindow, setFrameLocation, setIndexedProperty, setModifiedFlag, setProperty, setSavePosition, setSaveSize, setShutDownTask, setWindowInterface, show, show, storeValues, undecorate, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
-
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
cmdLabel
protected javax.swing.JLabel cmdLabel
-
currentLabel
protected javax.swing.JLabel currentLabel
-
sendButton
protected javax.swing.JButton sendButton
-
saveButton
protected javax.swing.JButton saveButton
-
cmdTextField
protected javax.swing.JTextField cmdTextField
-
currentTextField
protected javax.swing.JTextField currentTextField
-
ztcCheckBox
protected javax.swing.JCheckBox ztcCheckBox
-
blueCheckBox
protected javax.swing.JCheckBox blueCheckBox
-
unlockCheckBox
protected javax.swing.JCheckBox unlockCheckBox
-
speedGroup
protected javax.swing.ButtonGroup speedGroup
-
speedLabel
protected javax.swing.JLabel speedLabel
-
speed14Button
protected javax.swing.JRadioButton speed14Button
-
speed28Button
protected javax.swing.JRadioButton speed28Button
-
speed128Button
protected javax.swing.JRadioButton speed128Button
-
modeWord
protected int modeWord
-
currentLimit
protected int currentLimit
-
replyString
java.lang.String replyString
-
tmpString
java.lang.String tmpString
-
state
SprogConsoleFrame.State state
-
sv
SprogVersion sv
-
TIMEOUT
protected int TIMEOUT
-
timer
javax.swing.Timer timer
-
-
Constructor Detail
-
SprogConsoleFrame
public SprogConsoleFrame(SprogSystemConnectionMemo memo)
-
-
Method Detail
-
title
protected java.lang.String title()
- Specified by:
title
in classAbstractMonFrame
-
init
protected void init()
Initialize the data source.This is invoked at the end of the GUI initialization phase. Subclass implementations should connect to their data source here.
- Specified by:
init
in classAbstractMonFrame
-
dispose
public void dispose()
When window is finally destroyed, remove it from the list of windows.Subclasses that over-ride this method must invoke this implementation with super.dispose() right before returning.
- Specified by:
dispose
in interfaceWindowInterface
- Overrides:
dispose
in classAbstractMonFrame
-
initComponents
public void initComponents()
By default, Swing components should be created an installed in this method, rather than in the ctor itself.- Overrides:
initComponents
in classAbstractMonFrame
-
setHelp
protected void setHelp()
Define help menu for this window.By default, provides a generic help page that covers general features. Specific implementations can override this to show their own help page if desired.
- Overrides:
setHelp
in classAbstractMonFrame
-
sendButtonActionPerformed
public void sendButtonActionPerformed(java.awt.event.ActionEvent e)
-
validateCurrent
public void validateCurrent()
Validate the current limit value entered by the user, depending on the SPROG version.
-
saveButtonActionPerformed
public void saveButtonActionPerformed(java.awt.event.ActionEvent e)
-
isCurrentLimitPossible
public boolean isCurrentLimitPossible()
-
isBlueLineSupportPossible
public boolean isBlueLineSupportPossible()
-
isFirmwareUnlockPossible
public boolean isFirmwareUnlockPossible()
-
isZTCModePossible
public boolean isZTCModePossible()
-
notifyVersion
public void notifyVersion(SprogVersion v)
Handle a SprogVersion notification.Decode the SPROG version and populate the console gui appropriately with the features applicable to the version.
- Specified by:
notifyVersion
in interfaceSprogVersionListener
- Parameters:
v
- The SprogVersion being handled
-
notifyMessage
public void notifyMessage(SprogMessage l)
- Specified by:
notifyMessage
in interfaceSprogListener
-
notifyReply
public void notifyReply(SprogReply l)
Handle a SprogReply in a console specific way.Parse replies from the SPROG using a state machine to determine what we are expecting in response to commands sent to the SPROG. Extract data to populate various fields in the gui.
- Specified by:
notifyReply
in interfaceSprogListener
- Parameters:
l
- The SprogReply to be parsed
-
timeout
protected void timeout()
Internal routine to handle a timeout.
-
startTimer
protected void startTimer()
Internal routine to start timer to protect the mode-change.
-
stopTimer
protected void stopTimer()
Internal routine to stop timer, as all is well.
-
restartTimer
protected void restartTimer(int delay)
Internal routine to handle timer starts and restarts.- Parameters:
delay
- milliseconds to delay
-
-