Class InterfaceComboBox

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JComboBox<java.lang.Object>
mgui.interfaces.gui.InterfaceComboBox
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
Direct Known Subclasses:
InterfaceGraphicPanel.GraphicWindowListRenderer

public class InterfaceComboBox
extends javax.swing.JComboBox<java.lang.Object>
Combo box which implements a variable width popup, which depends on the render mode and the length of its items:

Render Mode | Behaviour
AsBox | Width is the same as the combo box width (default behaviour)
FixedWidth | Width is fixed at a specific value
LongestItem | Width is at minimum the width of the combo box, otherwise the length of the longest item, up to a fixed maximum

Adapted from SteppedComboBox: http://www.devdaily.com/java/swing/tame/combobox/SteppedComboBox.java.shtml

Version:
1.0
Author:
Nobuo Tamemasa, Andrew Reid
See Also:
Serialized Form
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  InterfaceComboBox.RenderMode  

    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 InterfaceComboBox.RenderMode mode  
    protected org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer  
    protected int popupWidth  

    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, 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
    InterfaceComboBox()
    Constructor for this combo box, with default parameters
    InterfaceComboBox​(java.lang.Object[] items)  
    InterfaceComboBox​(java.util.Vector items)  
    InterfaceComboBox​(javax.swing.ComboBoxModel aModel)  
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width)
    Constructor for this combo box
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, boolean model_name)
    Constructor for this combo box
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon)
    Constructor for this combo box
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon, boolean model_name)
    Constructor for this combo box
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer)
    Constructor for this combo box
    InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer, javax.swing.Icon icon)
    Constructor for this combo box
  • Method Summary

    Modifier and Type Method Description
    InterfaceComboBox copy()
    Copies this combo box to a new combo box, containing the same items.
    protected int getIconSize()  
    java.awt.Dimension getPopupSize()  
    void setInsets​(java.awt.Insets insets)  
    void setPopupHeight​(int height)  
    void setPopupWidth​(int width)  

    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
  • Field Details

    • popupWidth

      protected int popupWidth
    • mode

    • name_transformer

      protected org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer
  • Constructor Details

    • InterfaceComboBox

      public InterfaceComboBox()
      Constructor for this combo box, with default parameters
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
      icon - A default icon
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, boolean model_name)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
      model_name - If the objects are InterfaceShape instances, displays their name as "model_name.shape_name".
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon, boolean model_name)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
      model_name - If the objects are InterfaceShape instances, displays their name as "model_name.shape_name".
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
      name_transformer - The {@linkplain Transformer
    • InterfaceComboBox

      public InterfaceComboBox​(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, org.apache.commons.collections15.Transformer<java.lang.Object,​java.lang.String> name_transformer, javax.swing.Icon icon)
      Constructor for this combo box
      Parameters:
      mode - RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidth
      show_icons - Whether to show icons next to the objects (must be instances of IconObject).
      width - The desired width for the item box
      name_transformer - The {@linkplain Transformer
      icon - A default icon
    • InterfaceComboBox

      public InterfaceComboBox​(javax.swing.ComboBoxModel aModel)
    • InterfaceComboBox

      public InterfaceComboBox​(java.lang.Object[] items)
    • InterfaceComboBox

      public InterfaceComboBox​(java.util.Vector items)
  • Method Details

    • copy

      public InterfaceComboBox copy()
      Copies this combo box to a new combo box, containing the same items.
      Returns:
    • setInsets

      public void setInsets​(java.awt.Insets insets)
    • setPopupWidth

      public void setPopupWidth​(int width)
    • setPopupHeight

      public void setPopupHeight​(int height)
    • getPopupSize

      public java.awt.Dimension getPopupSize()
    • getIconSize

      protected int getIconSize()