Package docking.widgets
Class DropDownMultiSelectionTextField<T>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.text.JTextComponent
-
- javax.swing.JTextField
-
- docking.widgets.DropDownTextField<T>
-
- docking.widgets.DropDownSelectionTextField<T>
-
- docking.widgets.DropDownMultiSelectionTextField<T>
-
- Type Parameters:
T
- the type of data stored in the drop down
- All Implemented Interfaces:
GComponent
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.Scrollable
,javax.swing.SwingConstants
public class DropDownMultiSelectionTextField<T> extends DropDownSelectionTextField<T>
Extension of theDropDownSelectionTextField
that allows multiple items to be selected.Note that multiple selection introduces some display complications that are not an issue with single selection. Namely:
- how do you display multiple selected items in the preview pane
- how do you display those same items in the drop down text field
- let the preview panel operate normally; it will simply display the preview text for whatever was last selected
- display all selected items in the drop down text field as a comma-delimited list
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField
-
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class docking.widgets.DropDownTextField
dataModel, internallyDrivenUpdate, list, TOOLTIP_WINDOW_BGCOLOR
-
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 docking.widgets.GComponent
HTML_DISABLE_STRING
-
-
Constructor Summary
Constructors Constructor Description DropDownMultiSelectionTextField(DropDownTextFieldDataModel<T> dataModel)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDropDownSelectionChoiceListener(DropDownMultiSelectionChoiceListener<T> listener)
Adds the caller to a list of subscribers who will be notified when selection changes.void
addDropDownSelectionChoiceListener(DropDownSelectionChoiceListener<T> listener)
Adds a listener that will be called back when the user makes a choice from the drop-down list.protected javax.swing.ListSelectionModel
createListSelectionModel()
protected javax.swing.event.ListSelectionListener
getPreviewListener()
protected javax.swing.JComponent
getPreviewPaneComponent()
java.util.List<T>
getSelectedValues()
Returns a list of all selected items in the list.protected boolean
hasPreview()
protected void
setPreviewPaneAttributes()
void
setSelectedValue(T value)
Sets the current selection on this text field.protected void
setTextFromList()
protected void
setTextFromSelectedListItemAndKeepMatchingWindowOpen()
-
Methods inherited from class docking.widgets.DropDownTextField
addCellEditorListener, closeDropDownWindow, getMatchingData, getSelectedValue, hideMatchingWindow, isMatchingListShowing, processKeyBinding, removeCellEditorListener, setConsumeEnterKeyPress, setIgnoreEnterKeyPress, setMatchingWindowHeight, setSelectedItems, setText, setTextWithoutClosingCompletionWindow
-
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
-
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, viewToModel2D, write
-
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, 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
-
Methods inherited from interface docking.widgets.GComponent
getHTMLRenderingEnabled, setHTMLRenderingEnabled
-
-
-
-
Constructor Detail
-
DropDownMultiSelectionTextField
public DropDownMultiSelectionTextField(DropDownTextFieldDataModel<T> dataModel)
Constructor.- Parameters:
dataModel
- the model for the drop down widget
-
-
Method Detail
-
addDropDownSelectionChoiceListener
public void addDropDownSelectionChoiceListener(DropDownMultiSelectionChoiceListener<T> listener)
Adds the caller to a list of subscribers who will be notified when selection changes.- Parameters:
listener
- the subscriber to be added
-
addDropDownSelectionChoiceListener
public void addDropDownSelectionChoiceListener(DropDownSelectionChoiceListener<T> listener)
Description copied from class:DropDownTextField
Adds a listener that will be called back when the user makes a choice from the drop-down list. A choice is a user action that triggers the selection window to be closed and updates the text field.Note: the listener is stored in a
weak data structure
, so you must maintain a reference to the listener you pass in--anonymous classes or lambdas will not work.- Overrides:
addDropDownSelectionChoiceListener
in classDropDownTextField<T>
-
getSelectedValues
public java.util.List<T> getSelectedValues()
Returns a list of all selected items in the list.- Returns:
- the selected items
-
createListSelectionModel
protected javax.swing.ListSelectionModel createListSelectionModel()
- Overrides:
createListSelectionModel
in classDropDownSelectionTextField<T>
-
setPreviewPaneAttributes
protected void setPreviewPaneAttributes()
- Overrides:
setPreviewPaneAttributes
in classDropDownTextField<T>
-
hasPreview
protected boolean hasPreview()
- Overrides:
hasPreview
in classDropDownTextField<T>
-
getPreviewListener
protected javax.swing.event.ListSelectionListener getPreviewListener()
- Overrides:
getPreviewListener
in classDropDownTextField<T>
-
getPreviewPaneComponent
protected javax.swing.JComponent getPreviewPaneComponent()
- Overrides:
getPreviewPaneComponent
in classDropDownTextField<T>
-
setTextFromList
protected void setTextFromList()
- Overrides:
setTextFromList
in classDropDownTextField<T>
-
setSelectedValue
public void setSelectedValue(T value)
Description copied from class:DropDownTextField
Sets the current selection on this text field. This will store the provided value and set the text of the text field to be the name of that value. If the given value is null, then the text of this field will be cleared.- Overrides:
setSelectedValue
in classDropDownTextField<T>
- Parameters:
value
- The value that is to be the current selection or null to clear the selected value of this text field.
-
setTextFromSelectedListItemAndKeepMatchingWindowOpen
protected void setTextFromSelectedListItemAndKeepMatchingWindowOpen()
- Overrides:
setTextFromSelectedListItemAndKeepMatchingWindowOpen
in classDropDownTextField<T>
-
-