Package jmri.jmrit.symbolicprog
Class FnMapPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.jmrit.symbolicprog.FnMapPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class FnMapPanel extends javax.swing.JPanel
Provide a graphical representation of the NMRA Standard mapping between cab functions and physical outputs.Uses data from the "model" element from the decoder definition file to configure the number of rows and columns and set up any custom column names:
- numOuts
- Number of physical outputs.
- numFns
- Maximum number of function rows to display.
- output
- name="n" label="yyy"
- - Set lower line of heading for column number "n" to "yyy".*
- name="n" label="xxx|yyy"
- - Set upper line of heading for column number "n" to "xxx" and lower line to "yyy".*
- name="n" label="|"
- - Sets both lines of heading for column number "n" to blank, causing the column to be suppressed from the table.*
- * The forms above increase the value of numOuts to n if numOuts < n.
- name="text1" label="text2"
- - Set upper line of heading of column numOuts+1 to "xxx" and lower line to "yyy". numOuts is then incremented.
- (This is a legacy form, the other forms are preferred.)
- Default column headings:
- First row is the column number.
- Second row is defined in "SymbolicProgBundle.properties".
- Column headings can be overridden by the "output" elements documented above.
- Two rows are available for column headings:
- Use the "|" character to designate a row break.
- Columns will be suppressed if any of the following are true:
- No variables are found for that column.
- The column output name is of the form name="n" label="|".
- Column number is > maxOut (an internal variable, currently 40).
- Searches the decoder file for variable definitions of the form:
- "Fd controls output n" (where d is a function number in the range 0-28 and n is an output number in the range 0-maxOut)
- "FL controls output n" (L for light)
- "Sd controls output n" (where s is a sensor number in the range 0-28 and n is an output number in the range 0-maxOut)
- "STOP controls output n" (where STOP designates a decoder state)
- "DRIVE controls output n" (where DRIVE designates a decoder state)
- "FWD controls output n" (where FWD designates a decoder state)
- "REV controls output n" (where REV designates a decoder state)
Directional variants of all the above forms:- "xxx(f) controls output n"
- "xxx(r) controls output n"
Alternate variants of all the above forms:- "xxx controls output n(alt)" (allows an alternate definition for the same variable, such as used by Tsunami decoders)
- "xxx(f) controls output n(alt)"
- "xxx(r) controls output n(alt)"
The "tooltip" & "label" attributes on a fnmapping variable are ignored. Expanded internationalized tooltips are generated in the code.
- 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) VariableTableModel
_varModel
(package private) java.awt.GridBagConstraints
cs
(package private) int
firstFnRow
(package private) int
firstOutCol
(package private) java.lang.String[]
fnExtraList
(package private) java.util.List<java.lang.String>
fnList
(package private) int
fnNameCol
(package private) java.lang.String[]
fnVariantList
(package private) java.awt.GridBagLayout
gl
(package private) int
highestFn
(package private) int
highestSensor
(package private) int
maxOut
(package private) int
numFn
(package private) int
numOut
(package private) boolean[]
outIsUsed
(package private) java.lang.String[]
outLabel
(package private) java.lang.String[]
outName
(package private) int
outputLabelRow
(package private) int
outputNameRow
(package private) int
outputNumRow
-
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 FnMapPanel(VariableTableModel v, java.util.List<java.lang.Integer> varsUsed, org.jdom2.Element model)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addOutputElements(java.util.List<org.jdom2.Element> input, java.util.List<org.jdom2.Element> accumulate)
protected void
configOutputs(org.jdom2.Element model)
Use the "family" and "model" element from the decoder definition file to configure the number of outputs and set up any that are named instead of numbered.void
dispose()
clean up at end(package private) void
labelAt(int row, int column, java.lang.String name)
(package private) void
labelAt(int row, int column, java.lang.String name, int anchor)
(package private) void
loadSplitLabel(int iOut, java.lang.String theLabel)
(package private) void
saveAt(int row, int column, javax.swing.JComponent j)
(package private) void
saveAt(int row, int column, javax.swing.JComponent j, int anchor)
-
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
-
fnNameCol
int fnNameCol
-
firstOutCol
int firstOutCol
-
outputNameRow
int outputNameRow
-
outputNumRow
int outputNumRow
-
outputLabelRow
int outputLabelRow
-
firstFnRow
int firstFnRow
-
highestFn
int highestFn
-
highestSensor
int highestSensor
-
numFn
int numFn
-
numOut
int numOut
-
maxOut
int maxOut
-
outName
final java.lang.String[] outName
-
outLabel
final java.lang.String[] outLabel
-
outIsUsed
final boolean[] outIsUsed
-
fnExtraList
final java.lang.String[] fnExtraList
-
fnVariantList
final java.lang.String[] fnVariantList
-
fnList
java.util.List<java.lang.String> fnList
-
gl
java.awt.GridBagLayout gl
-
cs
java.awt.GridBagConstraints cs
-
_varModel
VariableTableModel _varModel
-
-
Constructor Detail
-
FnMapPanel
public FnMapPanel(VariableTableModel v, java.util.List<java.lang.Integer> varsUsed, org.jdom2.Element model)
-
-
Method Detail
-
saveAt
void saveAt(int row, int column, javax.swing.JComponent j)
-
saveAt
void saveAt(int row, int column, javax.swing.JComponent j, int anchor)
-
labelAt
void labelAt(int row, int column, java.lang.String name)
-
labelAt
void labelAt(int row, int column, java.lang.String name, int anchor)
-
configOutputs
protected void configOutputs(org.jdom2.Element model)
Use the "family" and "model" element from the decoder definition file to configure the number of outputs and set up any that are named instead of numbered.- Parameters:
model
- ELement holding content to decode
-
addOutputElements
void addOutputElements(java.util.List<org.jdom2.Element> input, java.util.List<org.jdom2.Element> accumulate)
-
loadSplitLabel
void loadSplitLabel(int iOut, java.lang.String theLabel)
-
dispose
public void dispose()
clean up at end
-
-