Class RosterEntryComboBox

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ListDataListener, RosterEntrySelector
    Direct Known Subclasses:
    GlobalRosterEntryComboBox

    public class RosterEntryComboBox
    extends javax.swing.JComboBox<java.lang.Object>
    implements RosterEntrySelector
    A JComboBox containing roster entries or a string indicating that no roster entry is selected.

    This is a JComboBox<Object> so that it can represent both.

    This class has a self contained data model, and will automatically update the display if a RosterEntry is added, removed, or changes.

    See Also:
    Roster, RosterEntry, JComboBox, Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JComboBox

        javax.swing.JComboBox.AccessibleJComboBox, javax.swing.JComboBox.KeySelectionManager
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected RosterEntry[] _currentSelection  
      protected java.lang.String _dccAddress  
      protected java.lang.String _decoderMfgID  
      protected java.lang.String _decoderVersionID  
      protected java.lang.String _group  
      protected java.lang.String _id  
      protected java.lang.String _mfg  
      protected java.lang.String _nonSelectedItem  
      protected java.lang.String _roadName  
      protected java.lang.String _roadNumber  
      protected Roster _roster  
      • Fields inherited from class javax.swing.JComboBox

        actionCommand, dataModel, editor, isEditable, keySelectionManager, lightWeightPopupEnabled, maximumRowCount, renderer, selectedItemReminder
      • 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
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      RosterEntryComboBox()
      Create a combo box with the default Roster and all entries in the active roster group.
      RosterEntryComboBox​(java.lang.String rosterGroup)
      Create a combo box with the default Roster and all entries in an arbitrary roster group.
      RosterEntryComboBox​(java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Create a combo box with the default Roster and entries in the active roster group matching the specified attributes.
      RosterEntryComboBox​(java.lang.String rosterGroup, java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Create a combo box with the default Roster and entries in an arbitrary roster group matching the specified attributes.
      RosterEntryComboBox​(Roster roster)
      Create a combo box with an arbitrary Roster and all entries in the active roster group.
      RosterEntryComboBox​(Roster roster, java.lang.String rosterGroup)
      Create a combo box with an arbitrary Roster and all entries in an arbitrary roster group.
      RosterEntryComboBox​(Roster roster, java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Create a combo box with an arbitrary Roster and entries in the active roster group matching the specified attributes.
      RosterEntryComboBox​(Roster roster, java.lang.String rosterGroup, java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Create a combo box with an arbitrary Roster and entries in an arbitrary roster group matching the specified attributes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void fireSelectedRosterEntriesPropertyChange()  
      java.lang.String getNonSelectedItem()
      Get the text of the item that visually indicates that no roster entry is selected in the comboBox.
      RosterEntry[] getSelectedRosterEntries()
      Get the currently selected roster entries.
      protected RosterEntry[] getSelectedRosterEntries​(boolean force)  
      void setNonSelectedItem​(java.lang.String itemText)
      Set the text of the item that visually indicates that no roster entry is selected in the comboBox.
      void update()
      Update the combo box with the currently selected roster group, using the same roster entry attributes specified in a prior call to update or when creating the combo box.
      void update​(java.lang.String rosterGroup)
      Update the combo box with an arbitrary roster group, using the same roster entry attributes specified in a prior call to update or when creating the combo box.
      void update​(java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Update the combo box with the currently selected roster group, using new roster entry attributes.
      void update​(java.lang.String rosterGroup, java.lang.String roadName, java.lang.String roadNumber, java.lang.String dccAddress, java.lang.String mfg, java.lang.String decoderMfgID, java.lang.String decoderVersionID, java.lang.String id)
      Update the combo box with an arbitrary roster group, using new roster entry attributes.
      • Methods inherited from class javax.swing.JComboBox

        actionPerformed, actionPropertyChanged, addActionListener, addItem, addItemListener, addPopupMenuListener, configureEditor, configurePropertiesFromAction, contentsChanged, createActionPropertyChangeListener, createDefaultKeySelectionManager, fireActionEvent, fireItemStateChanged, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getAction, getActionCommand, getActionListeners, getEditor, getItemAt, getItemCount, getItemListeners, getKeySelectionManager, getMaximumRowCount, getModel, getPopupMenuListeners, getPrototypeDisplayValue, getRenderer, getSelectedIndex, getSelectedItem, getSelectedObjects, getUI, getUIClassID, hidePopup, insertItemAt, installAncestorListener, intervalAdded, intervalRemoved, isEditable, isLightWeightPopupEnabled, isPopupVisible, paramString, processKeyBinding, processKeyEvent, removeActionListener, removeAllItems, removeItem, removeItemAt, removeItemListener, removePopupMenuListener, selectedItemChanged, selectWithKeyChar, setAction, setActionCommand, setEditable, setEditor, setEnabled, setKeySelectionManager, setLightWeightPopupEnabled, setMaximumRowCount, setModel, setPopupVisible, setPrototypeDisplayValue, setRenderer, setSelectedIndex, setSelectedItem, setUI, showPopup, 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, 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, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RosterEntryComboBox

        public RosterEntryComboBox()
        Create a combo box with the default Roster and all entries in the active roster group.
      • RosterEntryComboBox

        public RosterEntryComboBox​(Roster roster)
        Create a combo box with an arbitrary Roster and all entries in the active roster group.
        Parameters:
        roster - roster to use.
      • RosterEntryComboBox

        public RosterEntryComboBox​(java.lang.String rosterGroup)
        Create a combo box with the default Roster and all entries in an arbitrary roster group.
        Parameters:
        rosterGroup - group to display.
      • RosterEntryComboBox

        public RosterEntryComboBox​(Roster roster,
                                   java.lang.String rosterGroup)
        Create a combo box with an arbitrary Roster and all entries in an arbitrary roster group.
        Parameters:
        roster - roster to use.
        rosterGroup - group to display.
      • RosterEntryComboBox

        public RosterEntryComboBox​(java.lang.String roadName,
                                   java.lang.String roadNumber,
                                   java.lang.String dccAddress,
                                   java.lang.String mfg,
                                   java.lang.String decoderMfgID,
                                   java.lang.String decoderVersionID,
                                   java.lang.String id)
        Create a combo box with the default Roster and entries in the active roster group matching the specified attributes. Attributes with a null value will not be considered when filtering the roster entries.
        Parameters:
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id. *
      • RosterEntryComboBox

        public RosterEntryComboBox​(Roster roster,
                                   java.lang.String roadName,
                                   java.lang.String roadNumber,
                                   java.lang.String dccAddress,
                                   java.lang.String mfg,
                                   java.lang.String decoderMfgID,
                                   java.lang.String decoderVersionID,
                                   java.lang.String id)
        Create a combo box with an arbitrary Roster and entries in the active roster group matching the specified attributes. Attributes with a null value will not be considered when filtering the roster entries.
        Parameters:
        roster - roster to use.
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id.
      • RosterEntryComboBox

        public RosterEntryComboBox​(java.lang.String rosterGroup,
                                   java.lang.String roadName,
                                   java.lang.String roadNumber,
                                   java.lang.String dccAddress,
                                   java.lang.String mfg,
                                   java.lang.String decoderMfgID,
                                   java.lang.String decoderVersionID,
                                   java.lang.String id)
        Create a combo box with the default Roster and entries in an arbitrary roster group matching the specified attributes. Attributes with a null value will not be considered when filtering the roster entries.
        Parameters:
        rosterGroup - group to display.
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id.
      • RosterEntryComboBox

        public RosterEntryComboBox​(Roster roster,
                                   java.lang.String rosterGroup,
                                   java.lang.String roadName,
                                   java.lang.String roadNumber,
                                   java.lang.String dccAddress,
                                   java.lang.String mfg,
                                   java.lang.String decoderMfgID,
                                   java.lang.String decoderVersionID,
                                   java.lang.String id)
        Create a combo box with an arbitrary Roster and entries in an arbitrary roster group matching the specified attributes. Attributes with a null value will not be considered when filtering the roster entries.

        All attributes used to filter roster entries are retained and reused when updating the combo box unless new attributes are specified when calling update.

        All other constructors call this constructor with various default parameters.

        Parameters:
        roster - roster to use.
        rosterGroup - group to display.
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id.
    • Method Detail

      • update

        public void update()
        Update the combo box with the currently selected roster group, using the same roster entry attributes specified in a prior call to update or when creating the combo box.
      • update

        public final void update​(java.lang.String rosterGroup)
        Update the combo box with an arbitrary roster group, using the same roster entry attributes specified in a prior call to update or when creating the combo box.
        Parameters:
        rosterGroup - group to display.
      • update

        public void update​(java.lang.String roadName,
                           java.lang.String roadNumber,
                           java.lang.String dccAddress,
                           java.lang.String mfg,
                           java.lang.String decoderMfgID,
                           java.lang.String decoderVersionID,
                           java.lang.String id)
        Update the combo box with the currently selected roster group, using new roster entry attributes.
        Parameters:
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id.
      • update

        public final void update​(java.lang.String rosterGroup,
                                 java.lang.String roadName,
                                 java.lang.String roadNumber,
                                 java.lang.String dccAddress,
                                 java.lang.String mfg,
                                 java.lang.String decoderMfgID,
                                 java.lang.String decoderVersionID,
                                 java.lang.String id)
        Update the combo box with an arbitrary roster group, using new roster entry attributes.
        Parameters:
        rosterGroup - group to display.
        roadName - road name.
        roadNumber - road number.
        dccAddress - dcc address.
        mfg - manufacturer.
        decoderMfgID - decoder manufacturer.
        decoderVersionID - decoder version id.
        id - roster id.
      • setNonSelectedItem

        public void setNonSelectedItem​(java.lang.String itemText)
        Set the text of the item that visually indicates that no roster entry is selected in the comboBox.
        Parameters:
        itemText - text to indicate no entry.
      • getNonSelectedItem

        public java.lang.String getNonSelectedItem()
        Get the text of the item that visually indicates that no roster entry is selected in the comboBox. If this returns null, it indicates that the comboBox has no special item to indicate an empty selection.
        Returns:
        The text or null