Package jmri.jmrit.symbolicprog
Class CombinedLocoSelListPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.util.swing.JmriPanel
-
- jmri.jmrit.symbolicprog.LocoSelPane
-
- jmri.jmrit.symbolicprog.CombinedLocoSelPane
-
- jmri.jmrit.symbolicprog.CombinedLocoSelListPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
public class CombinedLocoSelListPane extends CombinedLocoSelPane
Provide GUI controls to select a known loco and/or new decoder.This is an extension of the CombinedLocoSelPane class to use a JList instead of a JComboBox for the decoder selection. Also, this uses separate JLists for manufacturer and decoder model. The loco selection (Roster manipulation) parts are unchanged.
The JComboBox implementation always had to have selected entries, so we added dummy "select from .." items at the top and used those to indicate that there was no selection in that box. Here, the lack of a selection indicates there's no selection.
- 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) javax.swing.JList<java.lang.String>
mDecoderList
(package private) javax.swing.event.ListSelectionListener
mDecoderListener
(package private) javax.swing.JList<java.lang.String>
mMfgList
(package private) javax.swing.event.ListSelectionListener
mMfgListener
-
Fields inherited from class jmri.jmrit.symbolicprog.CombinedLocoSelPane
_statusLabel, go2, iddecoder, idloco, locoBox, programmerBox, selector
-
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 CombinedLocoSelListPane(javax.swing.JLabel s, ProgModeSelector selector)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) boolean
isDecoderSelected()
Has the user selected a decoder type, either manually or via a successful event?protected javax.swing.JPanel
layoutDecoderSelection()
Create the panel used to select the decoder(package private) void
listDecodersFromMfg(int pMfgID, java.lang.String pMfg)
protected java.lang.String
selectedDecoderType()
Convert the decoder selection UI result into a name.(package private) void
setDecoderSelectionFromLoco(java.lang.String loco)
Set the decoder selection to a specific decoder from a selected Loco(package private) void
updateForDecoderMfgID(java.lang.String pMfg, int pMfgID, int pModelID)
Decoder identify has not matched specific types, but did find manufacturer match(package private) void
updateForDecoderNotID(int pMfgID, int pModelID)
Decoder identify did not match anything, warn and show all(package private) void
updateForDecoderTypeID(java.util.List<DecoderFile> pModelList)
Decoder identify has matched one or more specific types(package private) void
updateMfgListContents(java.lang.String specific)
Update the contents of the manufacturer list to make sure it contains a specific value.(package private) void
updateMfgListToSelectedDecoder()
Force the manufacturer list to select the mfg of the currently selected decoder.(package private) void
updateMfgListWithoutTrigger(java.lang.String mfg)
Set a selection in the manufacturer list, without triggering an update of the decoder panel.-
Methods inherited from class jmri.jmrit.symbolicprog.CombinedLocoSelPane
addDecoderIdentButton, createProgrammerSelection, init, layoutRosterSelection, openButton, openKnownLoco, openNewLoco, propertyChange, selectDecoder, selectLoco, startIdentifyDecoder, startIdentifyLoco, startProgrammer
-
Methods inherited from class jmri.util.swing.JmriPanel
dispose, getHelpTarget, getMenus, getMinimumDimension, getTitle, getWindowInterface, initComponents, 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
-
mDecoderList
javax.swing.JList<java.lang.String> mDecoderList
-
mDecoderListener
javax.swing.event.ListSelectionListener mDecoderListener
-
mMfgList
javax.swing.JList<java.lang.String> mMfgList
-
mMfgListener
javax.swing.event.ListSelectionListener mMfgListener
-
-
Constructor Detail
-
CombinedLocoSelListPane
public CombinedLocoSelListPane(javax.swing.JLabel s, ProgModeSelector selector)
-
-
Method Detail
-
layoutDecoderSelection
protected javax.swing.JPanel layoutDecoderSelection()
Create the panel used to select the decoder- Overrides:
layoutDecoderSelection
in classCombinedLocoSelPane
- Returns:
- a JPanel for handling the decoder-selection GUI
-
updateMfgListContents
void updateMfgListContents(java.lang.String specific)
Update the contents of the manufacturer list to make sure it contains a specific value. Normally the list does not contain mfgs with no defined decoders; this allows you to also show a specific mfg that's of interest, even though there's no definitions for it. This is protected against invoking any listeners, as the change is meant to be transparent; the original selection is set back.- Parameters:
specific
- The value to update
-
updateMfgListToSelectedDecoder
void updateMfgListToSelectedDecoder()
Force the manufacturer list to select the mfg of the currently selected decoder. Note that this is complicated by the need to not trigger an update of the decoder list.
-
updateMfgListWithoutTrigger
void updateMfgListWithoutTrigger(java.lang.String mfg)
Set a selection in the manufacturer list, without triggering an update of the decoder panel.- Parameters:
mfg
- Selected manufacturer code
-
updateForDecoderTypeID
void updateForDecoderTypeID(java.util.List<DecoderFile> pModelList)
Decoder identify has matched one or more specific types- Overrides:
updateForDecoderTypeID
in classCombinedLocoSelPane
- Parameters:
pModelList
- a list of decoders
-
updateForDecoderMfgID
void updateForDecoderMfgID(java.lang.String pMfg, int pMfgID, int pModelID)
Decoder identify has not matched specific types, but did find manufacturer match- Overrides:
updateForDecoderMfgID
in classCombinedLocoSelPane
- Parameters:
pMfg
- Manufacturer name. This is passed to save time, as it has already been determined once.pMfgID
- Manufacturer ID number (CV8)pModelID
- Model ID number (CV7)
-
listDecodersFromMfg
void listDecodersFromMfg(int pMfgID, java.lang.String pMfg)
-
updateForDecoderNotID
void updateForDecoderNotID(int pMfgID, int pModelID)
Decoder identify did not match anything, warn and show all- Overrides:
updateForDecoderNotID
in classCombinedLocoSelPane
- Parameters:
pMfgID
- Manufacturer ID number (CV8)pModelID
- Model ID number (CV7)
-
setDecoderSelectionFromLoco
void setDecoderSelectionFromLoco(java.lang.String loco)
Set the decoder selection to a specific decoder from a selected Loco- Overrides:
setDecoderSelectionFromLoco
in classCombinedLocoSelPane
- Parameters:
loco
- the loco name
-
isDecoderSelected
boolean isDecoderSelected()
Has the user selected a decoder type, either manually or via a successful event?- Overrides:
isDecoderSelected
in classCombinedLocoSelPane
- Returns:
- true if a decoder type is selected
-
selectedDecoderType
protected java.lang.String selectedDecoderType()
Convert the decoder selection UI result into a name.- Overrides:
selectedDecoderType
in classCombinedLocoSelPane
- Returns:
- The selected decoder type name, or null if none selected.
-
-