org.jdesktop.swingx.renderer
Class WrappingIconPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.jdesktop.swingx.JXPanel
                      extended by org.jdesktop.swingx.renderer.WrappingIconPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, PainterAware

public class WrappingIconPanel
extends JXPanel
implements PainterAware

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
JPanel.AccessibleJPanel
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JComponent delegate
           
 
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.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
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
 JComponent getComponent()
          Returns the delegate component.
 Rectangle getDelegateBounds()
          Returns the bounds of the delegate component or null if the delegate is null.
 Icon getIcon()
          Returns the icon used in this panel, may be null.
 Painter getPainter()
          
 boolean isVisible()
          Determines whether this component should be visible when its parent is visible.
 void setBackground(Color bg)
          Sets the background color for this component by
 void setComponent(JComponent comp)
          Sets the delegate component.
 void setComponentOrientation(ComponentOrientation o)
          Sets the language-sensitive orientation that is to be used to order the elements or text within this component.
 void setDropHackEnabled(boolean dropHackEnabled)
          Sets the dropHackEnabled property.
 void setFont(Font font)
          Sets the font for this component.
 void setForeground(Color bg)
          Sets the foreground color of this component.
 void setIcon(Icon icon)
          Sets the icon.
 void setPainter(Painter painter)
          Sets the delegate's Painter if it is of type PainterAware.
 
Methods inherited from class org.jdesktop.swingx.JXPanel
getAlpha, getBackgroundPainter, getEffectiveAlpha, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, isInheritAlpha, isPaintBorderInsets, paint, paintComponent, setAlpha, setBackgroundPainter, setInheritAlpha, setPaintBorderInsets, setScrollableTracksViewportHeight, setScrollableTracksViewportWidth
 
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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, 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, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

delegate

protected JComponent delegate
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(ComponentOrientation o)
Sets the language-sensitive orientation that is to be used to order the elements or text within this component. Language-sensitive LayoutManager and Component subclasses will use this property to determine how to lay out and draw components.

At construction time, a component's orientation is set to ComponentOrientation.UNKNOWN, indicating that it has not been specified explicitly. The UNKNOWN orientation behaves the same as ComponentOrientation.LEFT_TO_RIGHT.

To set the orientation of a single component, use this method. To set the orientation of an entire component hierarchy, use applyComponentOrientation.

Overridden to update the icon position.

Overrides:
setComponentOrientation in class Component
See Also:
ComponentOrientation

setIcon

public void setIcon(Icon icon)
Sets the icon.

Parameters:
icon - the icon to use.

getIcon

public Icon getIcon()
Returns the icon used in this panel, may be null.

Returns:
the icon used in this panel, may be null.

setComponent

public void setComponent(JComponent comp)
Sets the delegate component.

Parameters:
comp - the component to add as delegate.

getComponent

public JComponent getComponent()
Returns the delegate component.

Returns:
the delegate component.

setBackground

public void setBackground(Color bg)
Sets the background color for this component by

Overridden to set the background of the delegate and icon label as well.

Overrides:
setBackground in class JXPanel
Parameters:
bg - the desired background Color
See Also:
java.swing.JComponent#getBackground, JComponent.setOpaque(boolean)

setForeground

public void setForeground(Color bg)
Sets the foreground color of this component.

Overridden to set the foreground of the delegate and icon label as well.

Overrides:
setForeground in class JComponent
Parameters:
bg - the desired foreground Color
See Also:
Component.getForeground()

setFont

public void setFont(Font font)
Sets the font for this component.

Overridden to set the Font of the delegate as well.

Overrides:
setFont in class JComponent
Parameters:
font - the desired Font for this component
See Also:
Component.getFont()

isVisible

public boolean isVisible()
Determines whether this component should be visible when its parent is visible. Components are initially visible, with the exception of top level components such as Frame objects.

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 class Component
Returns:
true if the component is visible, false otherwise
See Also:
Component.setVisible(boolean)

getPainter

public Painter getPainter()

Returns the delegate's Painter if it is of type PainterAware or null otherwise.

Specified by:
getPainter in interface PainterAware
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 interface PainterAware
Parameters:
painter - the Painter to apply to the delegate.

getDelegateBounds

public 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()