com.dlsc.flexgantt.swing.treetable

## Class DefaultTreeTableCellRenderer

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JLabel
        - - com.dlsc.flexgantt.swing.treetable.DefaultTreeTableCellRenderer

- All Implemented Interfaces:
    ITreeTableCellRenderer, IRenderer, ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants
  Direct Known Subclasses:
    TreeTable.DateRenderer, TreeTable.EnumRenderer, TreeTable.IconRenderer, TreeTable.NumberRenderer

      public class DefaultTreeTableCellRenderer
      extends JLabel
      implements ITreeTableCellRenderer

  A default tree table cell renderer implementation using a label as a component. The renderer gets used for values displayed in the key column and for values in the value columns. For key values the renderer has to ensure that is somehow visualizes the depth of the tree nodes (the indentation). Note: the renderer is transparent / not opaque so that the row background color used by the tree table will show through.
  Since:
    1.0
  Version:
    $Revision: 1.9 $
  Author:
    Dirk Lemmermann
  See Also:
    `TreeTable.setCellRenderer(Class, ITreeTableCellRenderer)`, Serialized Form

- - ### Nested Class Summary

    - ### 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.JLabel

      `labelFor`

    - ### 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 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`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultTreeTableCellRenderer()` Constructs a new tree table cell renderer.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `firePropertyChange(String propertyName, boolean oldValue, boolean newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, byte oldValue, byte newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, char oldValue, char newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, double oldValue, double newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, float oldValue, float newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, long oldValue, long newValue)` Commented out for performance reasons.
    `protected void` | `firePropertyChange(String propertyName, Object oldValue, Object newValue)` Commented out for performance reasons.
    `void` | `firePropertyChange(String propertyName, short oldValue, short newValue)` Commented out for performance reasons.
    `Icon` | `getCollapsedIcon()` Returns the icon used for displaying that the node is in a collapsed state.
    `Color` | `getDragBackgroundColor()` Returns the color used for the background when the renderer is used as part of a drag and drop operation.
    `Icon` | `getExpandedIcon()` Returns the icon used for displaying that the node is in an expanded state.
    `Color` | `getFocusColor()` Returns the color used for the border of a focused cell.
    `protected Icon` | `getIcon(Object node, Object value, int column, boolean leaf, boolean expanded)` Returns an icon for the given value.
    `Icon` | `getLeafIcon()` Returns the icon used for displaying that the node is a leaf node.
    `protected String` | `getText(Object node, Object value)` Returns a text for the given cell value.
    `Component` | `getTreeTableCellRendererComponent(TreeTable tree, Object node, Object value, int depth, boolean selected, boolean expanded, boolean leaf, int row, int column, boolean hasFocus)` Returns a component suitable for rendering the given value object inside a cell of the given tree table.
    `void` | `invalidate()` Commented out for performance reasons.
    `protected boolean` | `isDragged()` Determines whether the renderer is being used to draw a tree node that is currently being dragged.
    `boolean` | `isVisible()` Overriden in order to fix a bug in AWT, which causes the cursor to flicker during drag and drop operations.
    `protected void` | `paintComponent(Graphics g)`
    `void` | `repaint()` Commented out for performance reasons.
    `void` | `repaint(int x, int y, int width, int height)` Commented out for performance reasons.
    `void` | `repaint(long tm)` Commented out for performance reasons.
    `void` | `revalidate()` Commented out for performance reasons.
    `void` | `setCollapsedIcon(Icon icon)` Sets the icon used for displaying that the node is in a collapsed state.
    `void` | `setDragBackgroundColor(Color color)` Sets the color used for the background when the renderer is used as part of a drag and drop operation.
    `void` | `setExpandedIcon(Icon icon)` Sets the icon used for displaying that the node is in an expanded state.
    `void` | `setFocusColor(Color color)` Sets the color used for the border of a focused cell.
    `void` | `setLeafIcon(Icon icon)` Sets the icon used for displaying that the node is a leaf node.
    `void` | `validate()` Commented out for performance reasons.

    - ### 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, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultTreeTableCellRenderer

          public DefaultTreeTableCellRenderer()

      Constructs a new tree table cell renderer. The constructor is protected as part of the singleton pattern.
      Since:
        1.0

  - ### Method Detail

    - #### getTreeTableCellRendererComponent

          public Component getTreeTableCellRendererComponent(TreeTable tree,
                                                             Object node,
                                                             Object value,
                                                             int depth,
                                                             boolean selected,
                                                             boolean expanded,
                                                             boolean leaf,
                                                             int row,
                                                             int column,
                                                             boolean hasFocus)

      Description copied from interface: `ITreeTableCellRenderer`
      Returns a component suitable for rendering the given value object inside a cell of the given tree table.
      Specified by:
        `getTreeTableCellRendererComponent` in interface `ITreeTableCellRenderer`
      Parameters:
        `tree` - the tree table component in which the cell gets rendererd
        `node` - the hierarchy node that gets displayed in the row where the cell is located
        `value` - the value object stored in the cell
        `depth` - the hierarcy depth of the row in which the cell is located
        `selected` - a flag signalling whether the cell has been selected by the user
        `expanded` - a flag signalling whether the hierarcy node to which the cell belongs is currently in an expanded state (opened)
        `leaf` - a flag signalling whether the hierarchy node to which the cell belongs is a leaf (has no children)
        `row` - the row in which the cell is located
        `column` - the column in which the cell is located (not the model index)
        `hasFocus` - a flag signalling whether the cell is the focus owner
      Returns:
        a component suitable for rendering the given value object in the given table cell

    - #### getIcon

          protected Icon getIcon(Object node,
                                 Object value,
                                 int column,
                                 boolean leaf,
                                 boolean expanded)

      Returns an icon for the given value. The method may return NULL.
      Parameters:
        `node` - the hierarchy node that is displayed in the row where the cell is located
        `value` - the value for which to return an icon
        `column` - the column in which the cell is located
        `leaf` - a flag indicating whether the given value belongs to a node that is a leaf (does not have children)
        `expanded` - a flag indicating whether the value's node is currently expanded
      Returns:
        an icon that will be shown in the tree table cell
      Since:
        1.0

    - #### getText

          protected String getText(Object node,
                                   Object value)

      Returns a text for the given cell value. The method returns an empty string if the value is NULL.
      Parameters:
        `node` - the hierarchy node that is displayed in the row where the cell is located
        `value` - the cell value
      Returns:
        a text representation of the given value
      Since:
        1.0

    - #### paintComponent

          protected void paintComponent(Graphics g)

      Overrides:
        `paintComponent` in class `JComponent`

    - #### isDragged

          protected boolean isDragged()

      Determines whether the renderer is being used to draw a tree node that is currently being dragged. This information is important so that the appearance of the dragged node can be different to what it looks like when shown in the tree. The key values for example should not be drawn with an inset as this doesn't make sense when they are being dragged.
      Returns:
        TRUE if the renderer draws a node that is currently being dragged
      Since:
        1.0

    - #### getFocusColor

          public Color getFocusColor()

      Returns the color used for the border of a focused cell.
      Returns:
        the cell border focus color
      Since:
        1.0
      See Also:
        `setFocusColor(Color)`

    - #### setFocusColor

          public void setFocusColor(Color color)

      Sets the color used for the border of a focused cell.
      Parameters:
        `color` - the border focus color
      Since:
        1.0
      See Also:
        `getFocusColor()`

    - #### getCollapsedIcon

          public Icon getCollapsedIcon()

      Returns the icon used for displaying that the node is in a collapsed state.
      Returns:
        the collapsed icon
      Since:
        1.0

    - #### setCollapsedIcon

          public void setCollapsedIcon(Icon icon)

      Sets the icon used for displaying that the node is in a collapsed state.
      Parameters:
        `icon` - the collapsed icon
      Since:
        1.0

    - #### getExpandedIcon

          public Icon getExpandedIcon()

      Returns the icon used for displaying that the node is in an expanded state.
      Returns:
        the expanded icon
      Since:
        1.0

    - #### setExpandedIcon

          public void setExpandedIcon(Icon icon)

      Sets the icon used for displaying that the node is in an expanded state.
      Parameters:
        `icon` - the expanded icon
      Since:
        1.0

    - #### getLeafIcon

          public Icon getLeafIcon()

      Returns the icon used for displaying that the node is a leaf node.
      Returns:
        the leaf icon
      Since:
        1.0

    - #### setLeafIcon

          public void setLeafIcon(Icon icon)

      Sets the icon used for displaying that the node is a leaf node.
      Parameters:
        `icon` - the leaf icon
      Since:
        1.0

    - #### getDragBackgroundColor

          public Color getDragBackgroundColor()

      Returns the color used for the background when the renderer is used as part of a drag and drop operation.
      Returns:
        the drag background color
      Since:
        1.0
      See Also:
        `TreeTableDragAndDropManager.createDragImage(TreeTableNode)`

    - #### setDragBackgroundColor

          public void setDragBackgroundColor(Color color)

      Sets the color used for the background when the renderer is used as part of a drag and drop operation.
      Parameters:
        `color` - the drag background color
      Since:
        1.0
      See Also:
        `TreeTableDragAndDropManager.createDragImage(TreeTableNode)`

    - #### validate

          public void validate()

      Commented out for performance reasons.
      Overrides:
        `validate` in class `Container`
      Since:
        1.0

    - #### revalidate

          public void revalidate()

      Commented out for performance reasons.
      Overrides:
        `revalidate` in class `JComponent`
      Since:
        1.0

    - #### invalidate

          public void invalidate()

      Commented out for performance reasons.
      Overrides:
        `invalidate` in class `Container`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         boolean oldValue,
                                         boolean newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `JComponent`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         byte oldValue,
                                         byte newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         char oldValue,
                                         char newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `JComponent`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         double oldValue,
                                         double newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         float oldValue,
                                         float newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         long oldValue,
                                         long newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### firePropertyChange

          protected void firePropertyChange(String propertyName,
                                            Object oldValue,
                                            Object newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### firePropertyChange

          public void firePropertyChange(String propertyName,
                                         short oldValue,
                                         short newValue)

      Commented out for performance reasons.
      Overrides:
        `firePropertyChange` in class `Component`
      Since:
        1.0

    - #### repaint

          public void repaint()

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.0

    - #### repaint

          public void repaint(int x,
                              int y,
                              int width,
                              int height)

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.0

    - #### repaint

          public void repaint(long tm)

      Commented out for performance reasons.
      Overrides:
        `repaint` in class `Component`
      Since:
        1.0

    - #### isVisible

          public boolean isVisible()

      Overriden in order to fix a bug in AWT, which causes the cursor to flicker during drag and drop operations.
      Overrides:
        `isVisible` in class `Component`
      Since:
        1.1

Copyright © 2006–2020 Dirk Lemmermann Software & Consulting. All rights reserved.