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 classSprogConsoleFrame.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.JCheckBoxblueCheckBoxprotected javax.swing.JLabelcmdLabelprotected javax.swing.JTextFieldcmdTextFieldprotected javax.swing.JLabelcurrentLabelprotected intcurrentLimitprotected javax.swing.JTextFieldcurrentTextFieldprotected intmodeWord(package private) java.lang.StringreplyStringprotected javax.swing.JButtonsaveButtonprotected javax.swing.JButtonsendButtonprotected javax.swing.JRadioButtonspeed128Buttonprotected javax.swing.JRadioButtonspeed14Buttonprotected javax.swing.JRadioButtonspeed28Buttonprotected javax.swing.ButtonGroupspeedGroupprotected javax.swing.JLabelspeedLabel(package private) SprogConsoleFrame.Statestate(package private) SprogVersionsv(package private) SprogTrafficControllertcprotected intTIMEOUT(package private) javax.swing.Timertimer(package private) java.lang.StringtmpStringprotected javax.swing.JCheckBoxunlockCheckBoxprotected javax.swing.JCheckBoxztcCheckBox-
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 voiddispose()When window is finally destroyed, remove it from the list of windows.protected voidinit()Initialize the data source.voidinitComponents()By default, Swing components should be created an installed in this method, rather than in the ctor itself.booleanisBlueLineSupportPossible()booleanisCurrentLimitPossible()booleanisFirmwareUnlockPossible()booleanisZTCModePossible()voidnotifyMessage(SprogMessage l)voidnotifyReply(SprogReply l)Handle a SprogReply in a console specific way.voidnotifyVersion(SprogVersion v)Handle a SprogVersion notification.protected voidrestartTimer(int delay)Internal routine to handle timer starts and restarts.voidsaveButtonActionPerformed(java.awt.event.ActionEvent e)voidsendButtonActionPerformed(java.awt.event.ActionEvent e)protected voidsetHelp()Define help menu for this window.protected voidstartTimer()Internal routine to start timer to protect the mode-change.protected voidstopTimer()Internal routine to stop timer, as all is well.protected voidtimeout()Internal routine to handle a timeout.protected java.lang.Stringtitle()voidvalidateCurrent()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, makePublicWindow, 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:
titlein 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:
initin 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:
disposein interfaceWindowInterface- Overrides:
disposein classAbstractMonFrame
-
initComponents
public void initComponents()
By default, Swing components should be created an installed in this method, rather than in the ctor itself.- Overrides:
initComponentsin 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:
setHelpin 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:
notifyVersionin interfaceSprogVersionListener- Parameters:
v- The SprogVersion being handled
-
notifyMessage
public void notifyMessage(SprogMessage l)
- Specified by:
notifyMessagein 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:
notifyReplyin 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
-
-