Class RadiancePanelTreeCellRenderer
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.pushingpixels.radiance.theming.api.renderer.RadiancePanelTreeCellRenderer
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.tree.TreeCellRenderer
public abstract class RadiancePanelTreeCellRenderer extends javax.swing.JPanel implements javax.swing.tree.TreeCellRenderer
Base class for tree renderers that are more complex than what is provided byRadianceDefaultTreeCellRenderer
. Extend this class to have consistent highlight visuals and animations under all Radiance skins. The flow of layout and data is:- In the constructor, add all sub-components to your renderer and define the layout logic.
- In
bindData(JTree, Object, int)
bind the relevant data fields to those sub-components. - Use
registerThemeAwareLabelsWithText(JLabel...)
in the constructor to "mark" those sub-component labels that should participate in highlight animations on their text based on the current state (rollover, selection, etc). In case a specific label is using a fixed foreground / text color for some of the rows in your tree, useregisterThemeAwareLabelsWithText(JLabel...)
andunregisterThemeAwareLabelsWithText(JLabel...)
inonPreRender(JTree, Object, int)
instead of in the constructor. - Use
registerThemeAwareLabelWithIcon(JLabel, RadianceIcon.Factory, Dimension)
in the constructor to "mark" those sub-component labels that should participate in highlight animations on their icons based on the current state (rollover, selection, etc). In case a specific label is using a fixed icon for some of the rows in your tree or different icon sources for different rows, useregisterThemeAwareLabelWithIcon(JLabel, RadianceIcon.Factory, Dimension)
andunregisterThemeAwareLabelWithIcon(JLabel)
inonPreRender(JTree, Object, int)
instead of in the constructor.
Note that
getTreeCellRendererComponent(JTree, Object, boolean, boolean, boolean, int, boolean)
in this class is marked as final and can not be overriden in the application code.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
RadiancePanelTreeCellRenderer.IconData
-
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 private java.util.Set<javax.swing.JLabel>
themeAwareLabels
private java.util.Map<javax.swing.JLabel,RadiancePanelTreeCellRenderer.IconData>
themeAwareLabelsWithIcons
-
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 RadiancePanelTreeCellRenderer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
bindData(javax.swing.JTree tree, java.lang.Object value, int row)
private RadianceColorScheme
getColorSchemeForState(javax.swing.JTree tree, RadianceTreeUI ui, ComponentState activeState)
java.awt.Component
getTreeCellRendererComponent(javax.swing.JTree tree, java.lang.Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
protected void
onPreRender(javax.swing.JTree tree, java.lang.Object value, int row)
protected void
registerThemeAwareLabelsWithText(javax.swing.JLabel... labels)
protected void
registerThemeAwareLabelWithIcon(javax.swing.JLabel label, RadianceIcon.Factory radianceIconFactory, java.awt.Dimension iconDimension)
protected void
unregisterThemeAwareLabelsWithText(javax.swing.JLabel... labels)
protected void
unregisterThemeAwareLabelWithIcon(javax.swing.JLabel label)
-
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, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, 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, 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
-
-
-
-
Field Detail
-
themeAwareLabels
private java.util.Set<javax.swing.JLabel> themeAwareLabels
-
themeAwareLabelsWithIcons
private java.util.Map<javax.swing.JLabel,RadiancePanelTreeCellRenderer.IconData> themeAwareLabelsWithIcons
-
-
Method Detail
-
registerThemeAwareLabelsWithText
protected void registerThemeAwareLabelsWithText(javax.swing.JLabel... labels)
-
unregisterThemeAwareLabelsWithText
protected void unregisterThemeAwareLabelsWithText(javax.swing.JLabel... labels)
-
registerThemeAwareLabelWithIcon
protected void registerThemeAwareLabelWithIcon(javax.swing.JLabel label, RadianceIcon.Factory radianceIconFactory, java.awt.Dimension iconDimension)
-
unregisterThemeAwareLabelWithIcon
protected void unregisterThemeAwareLabelWithIcon(javax.swing.JLabel label)
-
getTreeCellRendererComponent
public java.awt.Component getTreeCellRendererComponent(javax.swing.JTree tree, java.lang.Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
- Specified by:
getTreeCellRendererComponent
in interfacejavax.swing.tree.TreeCellRenderer
-
bindData
protected abstract void bindData(javax.swing.JTree tree, java.lang.Object value, int row)
-
onPreRender
protected void onPreRender(javax.swing.JTree tree, java.lang.Object value, int row)
-
getColorSchemeForState
private RadianceColorScheme getColorSchemeForState(javax.swing.JTree tree, RadianceTreeUI ui, ComponentState activeState)
-
-