javax.swing.plaf.basic
Class BasicComboPopup

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPopupMenu
                  extended byjavax.swing.plaf.basic.BasicComboPopup
All Implemented Interfaces:
javax.accessibility.Accessible, ComboPopup, ImageObserver, MenuContainer, MenuElement, Serializable
Direct Known Subclasses:
MetalComboBoxUI.MetalComboPopup

public class BasicComboPopup
extends JPopupMenu
implements ComboPopup

This is a basic implementation of the ComboPopup interface. This class represents the ui for the popup portion of the combo box.

All event handling is handled by listener classes created with the createxxxListener() methods and internal classes. You can change the behavior of this class by overriding the createxxxListener() methods and supplying your own event listeners or subclassing from the ones supplied in this class.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

Author:
Tom Santos, Mark Davidson
See Also:
Serialized Form

Nested Class Summary
 class BasicComboPopup.InvocationKeyHandler
          As of Java 2 platform v 1.4, this class is now obsolete and is only included for backwards API compatibility.
protected  class BasicComboPopup.InvocationMouseHandler
          A listener to be registered upon the combo box (not its popup menu) to handle mouse events that affect the state of the popup menu.
protected  class BasicComboPopup.InvocationMouseMotionHandler
          This listener watches for dragging and updates the current selection in the list if it is dragging over the list.
protected  class BasicComboPopup.ItemHandler
          This listener watches for changes to the selection in the combo box.
 class BasicComboPopup.ListDataHandler
          As of 1.4, this class is now obsolete, doesn't do anything, and is only included for backwards API compatibility.
protected  class BasicComboPopup.ListMouseHandler
          This listener hides the popup when the mouse is released in the list.
protected  class BasicComboPopup.ListMouseMotionHandler
          This listener changes the selected item as you move the mouse over the list.
protected  class BasicComboPopup.ListSelectionHandler
          As of Java 2 platform v 1.4, this class is now obsolete, doesn't do anything, and is only included for backwards API compatibility.
protected  class BasicComboPopup.PropertyChangeHandler
          This listener watches for bound properties that have changed in the combo box.
 
Nested classes inherited from class javax.swing.JPopupMenu
JPopupMenu.AccessibleJPopupMenu, JPopupMenu.Separator
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Timer autoscrollTimer
          This protected field is implementation specific.
protected  JComboBox comboBox
           
(package private) static ListModel EmptyListModel
           
protected  boolean hasEntered
           
protected  boolean isAutoScrolling
           
protected  ItemListener itemListener
          This protected field is implementation specific.
protected  KeyListener keyListener
          This protected field is implementation specific.
protected  JList list
          This protected field is implementation specific.
protected  ListDataListener listDataListener
          This protected field is implementation specific.
protected  MouseListener listMouseListener
          This protected field is implementation specific.
protected  MouseMotionListener listMouseMotionListener
          This protected field is implementation specific.
protected  ListSelectionListener listSelectionListener
          This protected field is implementation specific.
protected  MouseListener mouseListener
          This protected field is implementation specific.
protected  MouseMotionListener mouseMotionListener
          This protected field is implementation specific.
protected  java.beans.PropertyChangeListener propertyChangeListener
          This protected field is implementation specific.
protected static int SCROLL_DOWN
           
protected static int SCROLL_UP
           
protected  int scrollDirection
           
protected  JScrollPane scroller
          This protected field is implementation specific.
protected  boolean valueIsAdjusting
          As of Java 2 platform v1.4 this previously undocumented field is no longer used.
 
Fields inherited from class javax.swing.JPopupMenu
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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.Container
 
Fields inherited from class java.awt.Component
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
BasicComboPopup(JComboBox combo)
           
 
Method Summary
protected  void autoScrollDown()
          This protected method is implementation specific and should be private.
protected  void autoScrollUp()
          This protected method is implementation specific and should be private.
protected  Rectangle computePopupBounds(int px, int py, int pw, int ph)
          Calculate the placement and size of the popup portion of the combo box based on the combo box location and the enclosing screen bounds.
protected  void configureList()
          Configures the list which is used to hold the combo box items in the popup.
protected  void configurePopup()
          Configures the popup portion of the combo box.
protected  void configureScroller()
          Configures the scrollable portion which holds the list within the combo box popup.
protected  MouseEvent convertMouseEvent(MouseEvent e)
           
protected  ItemListener createItemListener()
          Creates an ItemListener which will be added to the combo box.
protected  KeyListener createKeyListener()
          Creates the key listener that will be added to the combo box.
protected  JList createList()
          Creates the JList used in the popup to display the items in the combo box model.
protected  ListDataListener createListDataListener()
          Creates a list data listener which will be added to the ComboBoxModel.
protected  MouseListener createListMouseListener()
          Creates a mouse listener that watches for mouse events in the popup's list.
protected  MouseMotionListener createListMouseMotionListener()
          Creates a mouse motion listener that watches for mouse motion events in the popup's list.
protected  ListSelectionListener createListSelectionListener()
          Creates a list selection listener that watches for selection changes in the popup's list.
protected  MouseListener createMouseListener()
          Creates a listener that will watch for mouse-press and release events on the combo box.
protected  MouseMotionListener createMouseMotionListener()
          Creates the mouse motion listener which will be added to the combo box.
protected  java.beans.PropertyChangeListener createPropertyChangeListener()
          Creates a PropertyChangeListener which will be added to the combo box.
protected  JScrollPane createScroller()
          Creates the scroll pane which houses the scrollable list.
protected  void delegateFocus(MouseEvent e)
          This is is a utility method that helps event handlers figure out where to send the focus when the popup is brought up.
protected  void firePopupMenuCanceled()
          Notifies PopupMenuListeners that this popup menu is cancelled.
protected  void firePopupMenuWillBecomeInvisible()
          Notifies PopupMenuListeners that this popup menu will become invisible.
protected  void firePopupMenuWillBecomeVisible()
          Notifies PopupMenuListeners that this popup menu will become visible.
 KeyListener getKeyListener()
          Implementation of ComboPopup.getKeyListener().
 JList getList()
          Implementation of ComboPopup.getList().
 MouseListener getMouseListener()
          Implementation of ComboPopup.getMouseListener().
 MouseMotionListener getMouseMotionListener()
          Implementation of ComboPopup.getMouseMotionListener().
protected  int getPopupHeightForRowCount(int maxRowCount)
          Retrieves the height of the popup based on the current ListCellRenderer and the maximum row count.
private  Point getPopupLocation()
          Calculates the upper left location of the Popup.
 void hide()
          Implementation of ComboPopup.hide().
protected  void installComboBoxListeners()
          This method adds the necessary listeners to the JComboBox.
protected  void installComboBoxModelListeners(ComboBoxModel model)
          Installs the listeners on the combo box model.
protected  void installKeyboardActions()
           
protected  void installListListeners()
          Adds the listeners to the list control.
 boolean isFocusTraversable()
          Overridden to unconditionally return false.
private  void setListSelection(int selectedIndex)
          Sets the list selection index to the selectedIndex.
 void show()
          Implementation of ComboPopup.show().
protected  void startAutoScrolling(int direction)
          This protected method is implementation specific and should be private.
protected  void stopAutoScrolling()
          This protected method is implementation specific and should be private.
protected  void togglePopup()
          Makes the popup visible if it is hidden and makes it hidden if it is visible.
protected  void uninstallComboBoxModelListeners(ComboBoxModel model)
          Removes the listeners from the combo box model
 void uninstallingUI()
          Called when the UI is uninstalling.
protected  void uninstallKeyboardActions()
           
(package private)  void uninstallListListeners()
           
protected  void updateListBoxSelectionForEvent(MouseEvent anEvent, boolean shouldScroll)
          A utility method used by the event listeners.
 
Methods inherited from class javax.swing.JPopupMenu
add, add, add, addPopupMenuListener, addSeparator, createActionChangeListener, createActionComponent, getAccessibleContext, getComponent, getComponentAtIndex, getComponentIndex, getDefaultLightWeightPopupEnabled, getInvoker, getLabel, getMargin, getPopupMenuListeners, getSelectionModel, getSubElements, getUI, getUIClassID, insert, insert, isBorderPainted, isLightWeightPopupEnabled, isPopupTrigger, isVisible, menuSelectionChanged, pack, paintBorder, paramString, processFocusEvent, processKeyEvent, processKeyEvent, processMouseEvent, remove, removePopupMenuListener, setBorderPainted, setDefaultLightWeightPopupEnabled, setInvoker, setLabel, setLightWeightPopupEnabled, setLocation, setPopupSize, setPopupSize, setSelected, setSelectionModel, setUI, setVisible, show, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.swing.plaf.basic.ComboPopup
isVisible
 

Field Detail

EmptyListModel

static final ListModel EmptyListModel

comboBox

protected JComboBox comboBox

list

protected JList list
This protected field is implementation specific. Do not access directly or override. Use the accessor methods instead.

See Also:
getList(), createList()

scroller

protected JScrollPane scroller
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createScroller()

valueIsAdjusting

protected boolean valueIsAdjusting
As of Java 2 platform v1.4 this previously undocumented field is no longer used.


mouseMotionListener

protected MouseMotionListener mouseMotionListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.

See Also:
getMouseMotionListener(), createMouseMotionListener()

mouseListener

protected MouseListener mouseListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.

See Also:
getMouseListener(), createMouseListener()

keyListener

protected KeyListener keyListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.

See Also:
getKeyListener(), createKeyListener()

listSelectionListener

protected ListSelectionListener listSelectionListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead.

See Also:
createListSelectionListener()

listMouseListener

protected MouseListener listMouseListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead.

See Also:
createListMouseListener()

listMouseMotionListener

protected MouseMotionListener listMouseMotionListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createListMouseMotionListener()

propertyChangeListener

protected java.beans.PropertyChangeListener propertyChangeListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createPropertyChangeListener()

listDataListener

protected ListDataListener listDataListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createListDataListener()

itemListener

protected ItemListener itemListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createItemListener()

autoscrollTimer

protected Timer autoscrollTimer
This protected field is implementation specific. Do not access directly or override.


hasEntered

protected boolean hasEntered

isAutoScrolling

protected boolean isAutoScrolling

scrollDirection

protected int scrollDirection

SCROLL_UP

protected static final int SCROLL_UP
See Also:
Constant Field Values

SCROLL_DOWN

protected static final int SCROLL_DOWN
See Also:
Constant Field Values
Constructor Detail

BasicComboPopup

public BasicComboPopup(JComboBox combo)
Method Detail

show

public void show()
Implementation of ComboPopup.show().

Specified by:
show in interface ComboPopup
Overrides:
show in class Component

hide

public void hide()
Implementation of ComboPopup.hide().

Specified by:
hide in interface ComboPopup
Overrides:
hide in class Component

getList

public JList getList()
Implementation of ComboPopup.getList().

Specified by:
getList in interface ComboPopup

getMouseListener

public MouseListener getMouseListener()
Implementation of ComboPopup.getMouseListener().

Specified by:
getMouseListener in interface ComboPopup
Returns:
a MouseListener or null
See Also:
ComboPopup.getMouseListener()

getMouseMotionListener

public MouseMotionListener getMouseMotionListener()
Implementation of ComboPopup.getMouseMotionListener().

Specified by:
getMouseMotionListener in interface ComboPopup
Returns:
a MouseMotionListener or null
See Also:
ComboPopup.getMouseMotionListener()

getKeyListener

public KeyListener getKeyListener()
Implementation of ComboPopup.getKeyListener().

Specified by:
getKeyListener in interface ComboPopup
Returns:
a KeyListener or null
See Also:
ComboPopup.getKeyListener()

uninstallingUI

public void uninstallingUI()
Called when the UI is uninstalling. Since this popup isn't in the component tree, it won't get it's uninstallUI() called. It removes the listeners that were added in addComboBoxListeners().

Specified by:
uninstallingUI in interface ComboPopup

uninstallComboBoxModelListeners

protected void uninstallComboBoxModelListeners(ComboBoxModel model)
Removes the listeners from the combo box model

Parameters:
model - The combo box model to install listeners
See Also:
installComboBoxModelListeners(javax.swing.ComboBoxModel)

uninstallKeyboardActions

protected void uninstallKeyboardActions()

firePopupMenuWillBecomeVisible

protected void firePopupMenuWillBecomeVisible()
Description copied from class: JPopupMenu
Notifies PopupMenuListeners that this popup menu will become visible.

Overrides:
firePopupMenuWillBecomeVisible in class JPopupMenu

firePopupMenuWillBecomeInvisible

protected void firePopupMenuWillBecomeInvisible()
Description copied from class: JPopupMenu
Notifies PopupMenuListeners that this popup menu will become invisible.

Overrides:
firePopupMenuWillBecomeInvisible in class JPopupMenu

firePopupMenuCanceled

protected void firePopupMenuCanceled()
Description copied from class: JPopupMenu
Notifies PopupMenuListeners that this popup menu is cancelled.

Overrides:
firePopupMenuCanceled in class JPopupMenu

createMouseListener

protected MouseListener createMouseListener()
Creates a listener that will watch for mouse-press and release events on the combo box. Warning: When overriding this method, make sure to maintain the existing behavior.

Returns:
a MouseListener which will be added to the combo box or null

createMouseMotionListener

protected MouseMotionListener createMouseMotionListener()
Creates the mouse motion listener which will be added to the combo box. Warning: When overriding this method, make sure to maintain the existing behavior.

Returns:
a MouseMotionListener which will be added to the combo box or null

createKeyListener

protected KeyListener createKeyListener()
Creates the key listener that will be added to the combo box. If this method returns null then it will not be added to the combo box.

Returns:
a KeyListener or null

createListSelectionListener

protected ListSelectionListener createListSelectionListener()
Creates a list selection listener that watches for selection changes in the popup's list. If this method returns null then it will not be added to the popup list.

Returns:
an instance of a ListSelectionListener or null

createListDataListener

protected ListDataListener createListDataListener()
Creates a list data listener which will be added to the ComboBoxModel. If this method returns null then it will not be added to the combo box model.

Returns:
an instance of a ListDataListener or null

createListMouseListener

protected MouseListener createListMouseListener()
Creates a mouse listener that watches for mouse events in the popup's list. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a MouseListener or null

createListMouseMotionListener

protected MouseMotionListener createListMouseMotionListener()
Creates a mouse motion listener that watches for mouse motion events in the popup's list. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a MouseMotionListener or null

createPropertyChangeListener

protected java.beans.PropertyChangeListener createPropertyChangeListener()
Creates a PropertyChangeListener which will be added to the combo box. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a PropertyChangeListener or null

createItemListener

protected ItemListener createItemListener()
Creates an ItemListener which will be added to the combo box. If this method returns null then it will not be added to the combo box.

Subclasses may override this method to return instances of their own ItemEvent handlers.

Returns:
an instance of an ItemListener or null

createList

protected JList createList()
Creates the JList used in the popup to display the items in the combo box model. This method is called when the UI class is created.

Returns:
a JList used to display the combo box items

configureList

protected void configureList()
Configures the list which is used to hold the combo box items in the popup. This method is called when the UI class is created.

See Also:
createList()

installListListeners

protected void installListListeners()
Adds the listeners to the list control.


uninstallListListeners

void uninstallListListeners()

createScroller

protected JScrollPane createScroller()
Creates the scroll pane which houses the scrollable list.


configureScroller

protected void configureScroller()
Configures the scrollable portion which holds the list within the combo box popup. This method is called when the UI class is created.


configurePopup

protected void configurePopup()
Configures the popup portion of the combo box. This method is called when the UI class is created.


installComboBoxListeners

protected void installComboBoxListeners()
This method adds the necessary listeners to the JComboBox.


installComboBoxModelListeners

protected void installComboBoxModelListeners(ComboBoxModel model)
Installs the listeners on the combo box model. Any listeners installed on the combo box model should be removed in uninstallComboBoxModelListeners.

Parameters:
model - The combo box model to install listeners
See Also:
uninstallComboBoxModelListeners(javax.swing.ComboBoxModel)

installKeyboardActions

protected void installKeyboardActions()

isFocusTraversable

public boolean isFocusTraversable()
Overridden to unconditionally return false.

Overrides:
isFocusTraversable in class Component
Returns:
true if this Component is focusable; false otherwise
See Also:
Component.setFocusable(boolean)

startAutoScrolling

protected void startAutoScrolling(int direction)
This protected method is implementation specific and should be private. do not call or override.


stopAutoScrolling

protected void stopAutoScrolling()
This protected method is implementation specific and should be private. do not call or override.


autoScrollUp

protected void autoScrollUp()
This protected method is implementation specific and should be private. do not call or override.


autoScrollDown

protected void autoScrollDown()
This protected method is implementation specific and should be private. do not call or override.


delegateFocus

protected void delegateFocus(MouseEvent e)
This is is a utility method that helps event handlers figure out where to send the focus when the popup is brought up. The standard implementation delegates the focus to the editor (if the combo box is editable) or to the JComboBox if it is not editable.


togglePopup

protected void togglePopup()
Makes the popup visible if it is hidden and makes it hidden if it is visible.


setListSelection

private void setListSelection(int selectedIndex)
Sets the list selection index to the selectedIndex. This method is used to synchronize the list selection with the combo box selection.

Parameters:
selectedIndex - the index to set the list

convertMouseEvent

protected MouseEvent convertMouseEvent(MouseEvent e)

getPopupHeightForRowCount

protected int getPopupHeightForRowCount(int maxRowCount)
Retrieves the height of the popup based on the current ListCellRenderer and the maximum row count.


computePopupBounds

protected Rectangle computePopupBounds(int px,
                                       int py,
                                       int pw,
                                       int ph)
Calculate the placement and size of the popup portion of the combo box based on the combo box location and the enclosing screen bounds. If no transformations are required, then the returned rectangle will have the same values as the parameters.

Parameters:
px - starting x location
py - starting y location
pw - starting width
ph - starting height
Returns:
a rectangle which represents the placement and size of the popup

getPopupLocation

private Point getPopupLocation()
Calculates the upper left location of the Popup.


updateListBoxSelectionForEvent

protected void updateListBoxSelectionForEvent(MouseEvent anEvent,
                                              boolean shouldScroll)
A utility method used by the event listeners. Given a mouse event, it changes the list selection to the list item below the mouse.