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:
ImageObserver,MenuContainer,Serializable,Accessible
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescription(package private) VariableTableModel(package private) GridBagConstraints(package private) int(package private) int(package private) final String[](package private) int(package private) final String[](package private) GridBagLayout(package private) int(package private) int(package private) int(package private) int(package private) int(package private) final boolean[](package private) final String[](package private) final String[](package private) int(package private) int(package private) intFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionFnMapPanel(VariableTableModel v, List<Integer> varsUsed, org.jdom2.Element model) -
Method Summary
Modifier and TypeMethodDescription(package private) voidaddOutputElements(List<org.jdom2.Element> input, List<org.jdom2.Element> accumulate) protected voidconfigOutputs(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.voiddispose()clean up at end(package private) void(package private) void(package private) voidloadSplitLabel(int iOut, String theLabel) (package private) voidsaveAt(int row, int column, JComponent j) (package private) voidsaveAt(int row, int column, JComponent j, int anchor) Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods 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, updateMethods 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, validateTreeMethods 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 Details
-
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
-
outLabel
-
outIsUsed
-
fnExtraList
-
fnVariantList
-
fnList
-
gl
-
cs
-
_varModel
-
-
Constructor Details
-
FnMapPanel
-
-
Method Details
-
saveAt
-
saveAt
-
labelAt
-
labelAt
-
configOutputs
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
-
loadSplitLabel
-
dispose
clean up at end
-