com.dlsc.flexgantt.swing.treetable
Class DefaultTreeTableCellRenderer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by com.dlsc.flexgantt.swing.treetable.DefaultTreeTableCellRenderer
All Implemented Interfaces:
ITreeTableCellRenderer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants
Direct Known Subclasses:
TreeTable.DateRenderer, TreeTable.EnumRenderer, TreeTable.IconRenderer, TreeTable.NumberRenderer

public class DefaultTreeTableCellRenderer
extends javax.swing.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
Author:
Dirk Lemmermann
See Also:
TreeTable.setCellRenderer(Class, ITreeTableCellRenderer), Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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 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
DefaultTreeTableCellRenderer()
          Constructs a new tree table cell renderer.
 
Method Summary
 void firePropertyChange(java.lang.String propertyName, boolean oldValue, boolean newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, byte oldValue, byte newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, char oldValue, char newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, double oldValue, double newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, float oldValue, float newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, long oldValue, long newValue)
          Commented out for performance reasons.
protected  void firePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
          Commented out for performance reasons.
 void firePropertyChange(java.lang.String propertyName, short oldValue, short newValue)
          Commented out for performance reasons.
 javax.swing.Icon getCollapsedIcon()
          Returns the icon used for displaying that the node is in a collapsed state.
 java.awt.Color getDragBackgroundColor()
          Returns the color used for the background when the renderer is used as part of a drag and drop operation.
 javax.swing.Icon getExpandedIcon()
          Returns the icon used for displaying that the node is in an expanded state.
 java.awt.Color getFocusColor()
          Returns the color used for the border of a focused cell.
protected  javax.swing.Icon getIcon(java.lang.Object node, java.lang.Object value, int column, boolean leaf, boolean expanded)
          Returns an icon for the given value.
 javax.swing.Icon getLeafIcon()
          Returns the icon used for displaying that the node is a leaf node.
protected  java.lang.String getText(java.lang.Object node, java.lang.Object value)
          Returns a text for the given cell value.
 java.awt.Component getTreeTableCellRendererComponent(TreeTable tree, java.lang.Object node, java.lang.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.
protected  void paintComponent(java.awt.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(javax.swing.Icon icon)
          Sets the icon used for displaying that the node is in a collapsed state.
 void setDragBackgroundColor(java.awt.Color color)
          Sets the color used for the background when the renderer is used as part of a drag and drop operation.
 void setExpandedIcon(javax.swing.Icon icon)
          Sets the icon used for displaying that the node is in an expanded state.
 void setFocusColor(java.awt.Color color)
          Sets the color used for the border of a focused cell.
 void setLeafIcon(javax.swing.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, 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, 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, transferFocusBackward, 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, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, 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
 

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 java.awt.Component getTreeTableCellRendererComponent(TreeTable tree,
                                                            java.lang.Object node,
                                                            java.lang.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 javax.swing.Icon getIcon(java.lang.Object node,
                                   java.lang.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 java.lang.String getText(java.lang.Object node,
                                   java.lang.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(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.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 java.awt.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(java.awt.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 javax.swing.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(javax.swing.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 javax.swing.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(javax.swing.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 javax.swing.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(javax.swing.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 java.awt.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(java.awt.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 java.awt.Container
Since:
1.0

revalidate

public void revalidate()
Commented out for performance reasons.

Overrides:
revalidate in class javax.swing.JComponent
Since:
1.0

invalidate

public void invalidate()
Commented out for performance reasons.

Overrides:
invalidate in class java.awt.Container
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               boolean oldValue,
                               boolean newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class javax.swing.JComponent
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               byte oldValue,
                               byte newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               char oldValue,
                               char newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class javax.swing.JComponent
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               double oldValue,
                               double newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               float oldValue,
                               float newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               long oldValue,
                               long newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

firePropertyChange

protected void firePropertyChange(java.lang.String propertyName,
                                  java.lang.Object oldValue,
                                  java.lang.Object newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

firePropertyChange

public void firePropertyChange(java.lang.String propertyName,
                               short oldValue,
                               short newValue)
Commented out for performance reasons.

Overrides:
firePropertyChange in class java.awt.Component
Since:
1.0

repaint

public void repaint()
Commented out for performance reasons.

Overrides:
repaint in class java.awt.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 java.awt.Component
Since:
1.0

repaint

public void repaint(long tm)
Commented out for performance reasons.

Overrides:
repaint in class java.awt.Component
Since:
1.0