Class WrappingIconPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jdesktop.swingx.JXPanel
-
- org.jdesktop.swingx.renderer.WrappingIconPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.Scrollable
,AlphaPaintable
,BackgroundPaintable
,IconAware
,PainterAware
public class WrappingIconPanel extends JXPanel implements PainterAware, IconAware
Compound component for usage in tree renderer.Supports setting an icon for the node and a delegate component which is used to show the text/content of the node. The delegate component can be shared across renderers.
This implements the PainterAware by delegating to the delegate component if that is of type PainterAware. Does nothing if not.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.JComponent
delegate
private boolean
dropHackEnabled
private boolean
extendsComponentOpacity
(package private) javax.swing.JLabel
iconLabel
(package private) int
iconLabelGap
(package private) java.lang.String
labelPosition
private javax.swing.border.Border
ltorBorder
private javax.swing.border.Border
rtolBorder
-
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
-
-
Constructor Summary
Constructors Constructor Description WrappingIconPanel()
Instantiates and configures a WrappingIconPanel with the dropHack enabled.WrappingIconPanel(boolean dropHackEnabled)
Instantiates and configures a WrappingIconPanel with the dropHack property set as indicated by the boolean.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.swing.JComponent
getComponent()
Returns the delegate component.java.awt.Rectangle
getDelegateBounds()
Returns the bounds of the delegate component or null if the delegate is null.boolean
getExtendsComponentOpacity()
javax.swing.Icon
getIcon()
Returns the icon used in this panel, may be null.Painter<?>
getPainter()
boolean
isVisible()
void
setBackground(java.awt.Color bg)
void
setComponent(javax.swing.JComponent comp)
Sets the delegate component.void
setComponentOrientation(java.awt.ComponentOrientation o)
void
setDropHackEnabled(boolean dropHackEnabled)
Sets the dropHackEnabled property.void
setExtendsComponentOpacity(boolean extendsComponentOpacity)
Sets a boolean indicating whether or not the main component's opacity should be applied to the Icon region.void
setFont(java.awt.Font font)
void
setForeground(java.awt.Color bg)
void
setIcon(javax.swing.Icon icon)
Sets the icon.void
setPainter(Painter<?> painter)
Sets the delegate's Painter if it is of type PainterAware.private void
updateIconBorder()
Updates the icon position according to ComponentOrientation.-
Methods inherited from class org.jdesktop.swingx.JXPanel
getAlpha, getBackgroundPainter, getEffectiveAlpha, getPainterChangeListener, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableHeightHint, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollableWidthHint, isAlpha, isInheritAlpha, isOpaque, isOpaquePatch, isPaintBorderInsets, isPaintingBackground, isPaintingOrigin, isPatch, isTransparentBackground, paint, paintComponent, paintComponentPatch, setAlpha, setBackgroundPainter, setInheritAlpha, setOpaque, setOpaquePatch, setPaintBorderInsets, setScrollableHeightHint, setScrollableTracksViewportHeight, setScrollableTracksViewportWidth, setScrollableWidthHint
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, 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, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
delegate
protected javax.swing.JComponent delegate
-
iconLabel
javax.swing.JLabel iconLabel
-
labelPosition
java.lang.String labelPosition
-
iconLabelGap
int iconLabelGap
-
ltorBorder
private javax.swing.border.Border ltorBorder
-
rtolBorder
private javax.swing.border.Border rtolBorder
-
dropHackEnabled
private boolean dropHackEnabled
-
extendsComponentOpacity
private boolean extendsComponentOpacity
-
-
Constructor Detail
-
WrappingIconPanel
public WrappingIconPanel()
Instantiates and configures a WrappingIconPanel with the dropHack enabled.
-
WrappingIconPanel
public WrappingIconPanel(boolean dropHackEnabled)
Instantiates and configures a WrappingIconPanel with the dropHack property set as indicated by the boolean.- Parameters:
dropHackEnabled
- a boolean indicating whether the drop hack should be enabled.- See Also:
isVisible()
-
-
Method Detail
-
setComponentOrientation
public void setComponentOrientation(java.awt.ComponentOrientation o)
Overridden to update the icon position.
- Overrides:
setComponentOrientation
in classjava.awt.Component
-
updateIconBorder
private void updateIconBorder()
Updates the icon position according to ComponentOrientation.
-
setIcon
public void setIcon(javax.swing.Icon icon)
Sets the icon.
-
getIcon
public javax.swing.Icon getIcon()
Returns the icon used in this panel, may be null.
-
setComponent
public void setComponent(javax.swing.JComponent comp)
Sets the delegate component.- Parameters:
comp
- the component to add as delegate.
-
getComponent
public javax.swing.JComponent getComponent()
Returns the delegate component.- Returns:
- the delegate component.
-
setBackground
public void setBackground(java.awt.Color bg)
Overridden to set the background of the delegate and icon label as well.
- Overrides:
setBackground
in classjavax.swing.JComponent
-
setForeground
public void setForeground(java.awt.Color bg)
Overridden to set the foreground of the delegate and icon label as well.
- Overrides:
setForeground
in classjavax.swing.JComponent
-
setFont
public void setFont(java.awt.Font font)
Overridden to set the Font of the delegate as well.
- Overrides:
setFont
in classjavax.swing.JComponent
-
isVisible
public boolean isVisible()
Overridden to hack around #766-swingx: cursor flickering in DnD when dragging over tree column. This is a core bug (#6700748) related to painting the rendering component on a CellRendererPane. A trick around is to let this return false.
Some LayoutManagers don't layout an invisible component, so need to make the hack-enabled configurable. This implementation will return false if isDropHackEnabled, super.isVisible otherwise.
- Overrides:
isVisible
in classjava.awt.Component
-
getPainter
public Painter<?> getPainter()
Returns the delegate's Painter if it is of type PainterAware or null otherwise.
- Specified by:
getPainter
in interfacePainterAware
- Returns:
- the delegate's Painter or null.
-
setPainter
public void setPainter(Painter<?> painter)
Sets the delegate's Painter if it is of type PainterAware. Does nothing otherwise.- Specified by:
setPainter
in interfacePainterAware
- Parameters:
painter
- the Painter to apply to the delegate.
-
getDelegateBounds
public java.awt.Rectangle getDelegateBounds()
Returns the bounds of the delegate component or null if the delegate is null. PENDING JW: where do we use it? Maybe it was for testing only?- Returns:
- the bounds of the delegate, or null if the delegate is null.
-
setDropHackEnabled
public void setDropHackEnabled(boolean dropHackEnabled)
Sets the dropHackEnabled property.The default value is true.
- Parameters:
dropHackEnabled
-- See Also:
isVisible()
-
setExtendsComponentOpacity
public void setExtendsComponentOpacity(boolean extendsComponentOpacity)
Sets a boolean indicating whether or not the main component's opacity should be applied to the Icon region.The default value is false. This covers the main use case in a JTree.
- Parameters:
extendsComponentOpacity
-
-
getExtendsComponentOpacity
public boolean getExtendsComponentOpacity()
- Returns:
- the extendsComponentOpacity
-
-