Package org.fife.ui.autocomplete
Class CompletionCellRenderer
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLabel
-
- javax.swing.DefaultListCellRenderer
-
- org.fife.ui.autocomplete.CompletionCellRenderer
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,ListCellRenderer<Object>
,SwingConstants
public class CompletionCellRenderer extends DefaultListCellRenderer
A cell renderer that adds some pizazz when rendering the standardCompletion
types, like Eclipse and NetBeans do. Specifically, this renderer handles:- Version:
- 1.0
- Author:
- Robert Futrell
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.DefaultListCellRenderer
DefaultListCellRenderer.UIResource
-
Nested classes/interfaces inherited from class javax.swing.JLabel
JLabel.AccessibleJLabel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
-
Fields inherited from class javax.swing.DefaultListCellRenderer
noFocusBorder
-
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
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description CompletionCellRenderer()
Constructor.CompletionCellRenderer(DefaultListCellRenderer delegate)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Icon
createEmptyIcon()
Creates the icon to use if no icon is found for a specific completion.void
delegateToSubstanceRenderer()
Attempts to delegate rendering to a Substance cell renderer.static Color
getAlternateBackground()
Returns the background color to use on alternating lines.DefaultListCellRenderer
getDelegateRenderer()
Returns the delegate renderer, ornull
if there is none.Font
getDisplayFont()
Returns the font used when rendering completions.protected Icon
getEmptyIcon()
Returns the icon to use if no icon is found for a specific completion.protected Icon
getIcon(String resource)
Returns an icon.Component
getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean hasFocus)
Returns the renderer.boolean
getShowTypes()
Returns whether the types of fields and return types of methods are shown in the completion text.protected void
paintComponent(Graphics g)
protected void
prepareForFunctionCompletion(JList list, FunctionCompletion fc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a function completion.protected void
prepareForMarkupTagCompletion(JList list, MarkupTagCompletion mc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a markup tag completion.protected void
prepareForOtherCompletion(JList list, Completion c, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a completion not specifically handled elsewhere.protected void
prepareForTemplateCompletion(JList list, TemplateCompletion tc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a template completion.protected void
prepareForVariableCompletion(JList list, VariableCompletion vc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a variable completion.static void
setAlternateBackground(Color altBG)
Sets the background color to use on alternating lines.void
setDelegateRenderer(DefaultListCellRenderer delegate)
Sets the delegate renderer.void
setDisplayFont(Font font)
Sets the font to use when rendering completion items.protected void
setIconWithDefault(Completion completion)
Sets the icon to display based off of a completion, falling back to the empty icon if the completion has no icon.protected void
setIconWithDefault(Completion completion, Icon defaultIcon)
Sets the icon to display based off of a completion, falling back to a default icon if the completion has no icon.void
setParamColor(Color color)
Sets the color to use for function arguments.void
setShowTypes(boolean show)
Sets whether the types of fields and return types of methods are shown in the completion text.void
setTypeColor(Color color)
Sets the color to use for function/field types.void
updateUI()
Overridden to update our delegate, if necessary.-
Methods inherited from class javax.swing.DefaultListCellRenderer
firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, invalidate, isOpaque, repaint, repaint, repaint, revalidate, validate
-
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, 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, 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, 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, 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, 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, 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
-
-
-
-
Constructor Detail
-
CompletionCellRenderer
public CompletionCellRenderer()
Constructor.
-
CompletionCellRenderer
public CompletionCellRenderer(DefaultListCellRenderer delegate)
Constructor. This is primarily a hook for Substance, or any other Look and Feel whose renderers look drastically different than standardDefaultListCellRenderer
s. Everything except for the text rendering will be done by the delegate. In almost all scenarios, you will want to use the no-argument constructor instead of this one.- Parameters:
delegate
- The delegate renderer.- See Also:
delegateToSubstanceRenderer()
-
-
Method Detail
-
createEmptyIcon
protected Icon createEmptyIcon()
Creates the icon to use if no icon is found for a specific completion. The default implementation returns a 16x16 empty icon.- Returns:
- The icon.
- See Also:
getEmptyIcon()
-
delegateToSubstanceRenderer
public void delegateToSubstanceRenderer() throws Exception
Attempts to delegate rendering to a Substance cell renderer. This should only be called if Substance is known to be on the classpath.- Throws:
Exception
- If Substance is not on the classpath, or some other error occurs creating the Substance cell renderer.- See Also:
Util.getUseSubstanceRenderers()
,setDelegateRenderer(DefaultListCellRenderer)
-
getAlternateBackground
public static Color getAlternateBackground()
Returns the background color to use on alternating lines.- Returns:
- The alternate background color. If this is
null
, alternating colors are not used. - See Also:
setAlternateBackground(Color)
-
getDelegateRenderer
public DefaultListCellRenderer getDelegateRenderer()
Returns the delegate renderer, ornull
if there is none.- Returns:
- The delegate renderer.
- See Also:
setDelegateRenderer(DefaultListCellRenderer)
-
getDisplayFont
public Font getDisplayFont()
Returns the font used when rendering completions.- Returns:
- The font. If this is
null
, then the default list font is used. - See Also:
setDisplayFont(Font)
-
getEmptyIcon
protected Icon getEmptyIcon()
Returns the icon to use if no icon is found for a specific completion. This icon is lazily created if necessary.- Returns:
- The icon.
- See Also:
createEmptyIcon()
-
getIcon
protected Icon getIcon(String resource)
Returns an icon.- Parameters:
resource
- The icon to retrieve. This should either be a file, or a resource loadable by the current ClassLoader.- Returns:
- The icon.
-
getListCellRendererComponent
public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean hasFocus)
Returns the renderer.- Specified by:
getListCellRendererComponent
in interfaceListCellRenderer<Object>
- Overrides:
getListCellRendererComponent
in classDefaultListCellRenderer
- Parameters:
list
- The list of choices being rendered.value
- TheCompletion
being rendered.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
getShowTypes
public boolean getShowTypes()
Returns whether the types of fields and return types of methods are shown in the completion text.- Returns:
- Whether to show the types.
- See Also:
setShowTypes(boolean)
-
paintComponent
protected void paintComponent(Graphics g)
- Overrides:
paintComponent
in classJComponent
-
prepareForFunctionCompletion
protected void prepareForFunctionCompletion(JList list, FunctionCompletion fc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a function completion.- Parameters:
list
- The list of choices being rendered.fc
- The completion to render.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
prepareForMarkupTagCompletion
protected void prepareForMarkupTagCompletion(JList list, MarkupTagCompletion mc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a markup tag completion.- Parameters:
list
- The list of choices being rendered.mc
- The completion to render.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
prepareForOtherCompletion
protected void prepareForOtherCompletion(JList list, Completion c, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a completion not specifically handled elsewhere.- Parameters:
list
- The list of choices being rendered.c
- The completion to render.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
prepareForTemplateCompletion
protected void prepareForTemplateCompletion(JList list, TemplateCompletion tc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a template completion.- Parameters:
list
- The list of choices being rendered.tc
- The completion to render.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
prepareForVariableCompletion
protected void prepareForVariableCompletion(JList list, VariableCompletion vc, int index, boolean selected, boolean hasFocus)
Prepares this renderer to display a variable completion.- Parameters:
list
- The list of choices being rendered.vc
- The completion to render.index
- The index intolist
being rendered.selected
- Whether the item is selected.hasFocus
- Whether the item has focus.
-
setAlternateBackground
public static void setAlternateBackground(Color altBG)
Sets the background color to use on alternating lines.- Parameters:
altBG
- The new alternate background color. If this isnull
, alternating lines will not use different background colors.- See Also:
getAlternateBackground()
-
setDelegateRenderer
public void setDelegateRenderer(DefaultListCellRenderer delegate)
Sets the delegate renderer. Most users will never use this method; it is primarily a hook for Substance and other Look and Feels whose renderers look drastically different from the standardDefaultListCellRenderer
.- Parameters:
delegate
- The new delegate renderer. If this isnull
, the default rendering of this component is used.- See Also:
getDelegateRenderer()
,delegateToSubstanceRenderer()
-
setDisplayFont
public void setDisplayFont(Font font)
Sets the font to use when rendering completion items.- Parameters:
font
- The font to use. If this isnull
, then the default list font is used.- See Also:
getDisplayFont()
-
setIconWithDefault
protected void setIconWithDefault(Completion completion)
Sets the icon to display based off of a completion, falling back to the empty icon if the completion has no icon.- Parameters:
completion
- The completion to check.- See Also:
setIconWithDefault(Completion, Icon)
-
setIconWithDefault
protected void setIconWithDefault(Completion completion, Icon defaultIcon)
Sets the icon to display based off of a completion, falling back to a default icon if the completion has no icon.- Parameters:
completion
- The completion to check.defaultIcon
- The icon to use ifcompletion
does not specify an icon.- See Also:
setIconWithDefault(Completion)
-
setParamColor
public void setParamColor(Color color)
Sets the color to use for function arguments.- Parameters:
color
- The color to use. This is ignored ifnull
.- See Also:
setTypeColor(Color)
-
setShowTypes
public void setShowTypes(boolean show)
Sets whether the types of fields and return types of methods are shown in the completion text.- Parameters:
show
- Whether to show the types.- See Also:
getShowTypes()
-
setTypeColor
public void setTypeColor(Color color)
Sets the color to use for function/field types. Note that ifgetShowTypes()
returnsfalse
, this property effectively does nothing.- Parameters:
color
- The color to use for types. This is ignored ifnull
.- See Also:
setShowTypes(boolean)
,setParamColor(Color)
-
-