Package mgui.interfaces.gui
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 parametersInterfaceComboBox(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 boxInterfaceComboBox(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, boolean model_name)
Constructor for this combo boxInterfaceComboBox(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon)
Constructor for this combo boxInterfaceComboBox(InterfaceComboBox.RenderMode mode, boolean show_icons, int width, javax.swing.Icon icon, boolean model_name)
Constructor for this combo boxInterfaceComboBox(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 boxInterfaceComboBox(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
Constructor for this combo box- Parameters:
mode
- RenderMode specifying how items are to be rendered; one of: AsBox, LongestItem, FixedWidthshow_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, FixedWidthshow_icons
- Whether to show icons next to the objects (must be instances of IconObject).width
- The desired width for the item boxicon
- 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, FixedWidthshow_icons
- Whether to show icons next to the objects (must be instances of IconObject).width
- The desired width for the item boxmodel_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, FixedWidthshow_icons
- Whether to show icons next to the objects (must be instances of IconObject).width
- The desired width for the item boxmodel_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, FixedWidthshow_icons
- Whether to show icons next to the objects (must be instances of IconObject).width
- The desired width for the item boxname_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, FixedWidthshow_icons
- Whether to show icons next to the objects (must be instances of IconObject).width
- The desired width for the item boxname_transformer
- The {@linkplain Transformer
-
InterfaceComboBox
public InterfaceComboBox(javax.swing.ComboBoxModel aModel) -
InterfaceComboBox
public InterfaceComboBox(java.lang.Object[] items) -
InterfaceComboBox
public InterfaceComboBox(java.util.Vector items)
-
-
Method Details
-
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()
-