Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.gui.main.contactlist
Class ContactListTreeCellRenderer

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 net.java.sip.communicator.impl.gui.main.contactlist.ContactListTreeCellRenderer
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Icon, TreeCellRenderer, Skinnable

public class ContactListTreeCellRenderer
extends JPanel
implements TreeCellRenderer, Icon, Skinnable

The ContactListCellRenderer is the custom cell renderer used in the Jitsi's ContactList. It extends JPanel instead of JLabel, which allows adding different buttons and icons to the contact cell. The cell border and background are repainted.

Author:
Yana Stamcheva, Lubomir Marinov, Adam Netocny
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  boolean isSelected
          Indicates if the current list cell is selected.
protected  JLabel rightLabel
          The component showing the avatar or the contact count in the case of groups.
protected  int row
          The index of the current cell.
protected  ImageIcon statusIcon
          The icon showing the contact status.
protected  TreeNode treeNode
          Indicates if the current cell contains a leaf or a group.
 
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
ContactListTreeCellRenderer()
          Initializes the panel containing the node.
 
Method Summary
 JButton getAddContactButton()
          Returns the add contact button contained in the current cell.
 JButton getCallButton()
          Returns the call button contained in the current cell.
 JButton getCallVideoButton()
          Returns the call video button contained in the current cell.
 JButton getDesktopSharingButton()
          Returns the desktop sharing button contained in the current cell.
 Icon getDragIcon(JTree tree, Object dragObject, int index)
          Returns the drag icon used to represent a cell in all drag operations.
 int getIconHeight()
          Returns the height of this icon.
 int getIconWidth()
          Returns the width of this icon.
 Dimension getPreferredSize()
          Returns the preferred size of this component.
 Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
          Returns this panel that has been configured to display the meta contact and meta contact group cells.
 void loadSkin()
          Loads all images and colors.
protected  void paintComponent(Graphics g)
          Paints a customized background.
 void paintIcon(Component c, Graphics g, int x, int y)
          Draw the icon at the specified location.
 
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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, 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, 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
 

Field Detail

rightLabel

protected final JLabel rightLabel
The component showing the avatar or the contact count in the case of groups.


statusIcon

protected ImageIcon statusIcon
The icon showing the contact status.


isSelected

protected boolean isSelected
Indicates if the current list cell is selected.


row

protected int row
The index of the current cell.


treeNode

protected TreeNode treeNode
Indicates if the current cell contains a leaf or a group.

Constructor Detail

ContactListTreeCellRenderer

public ContactListTreeCellRenderer()
Initializes the panel containing the node.

Method Detail

getTreeCellRendererComponent

public Component getTreeCellRendererComponent(JTree tree,
                                              Object value,
                                              boolean selected,
                                              boolean expanded,
                                              boolean leaf,
                                              int row,
                                              boolean hasFocus)
Returns this panel that has been configured to display the meta contact and meta contact group cells.

Specified by:
getTreeCellRendererComponent in interface TreeCellRenderer
Parameters:
tree - the source tree
value - the tree node
selected - indicates if the node is selected
expanded - indicates if the node is expanded
leaf - indicates if the node is a leaf
row - indicates the row number of the node
hasFocus - indicates if the node has the focus
Returns:
this panel

paintComponent

protected void paintComponent(Graphics g)
Paints a customized background.

Overrides:
paintComponent in class JComponent
Parameters:
g - the Graphics object through which we paint

getIconHeight

public int getIconHeight()
Returns the height of this icon. Used for the drag&drop component.

Specified by:
getIconHeight in interface Icon
Returns:
the height of this icon

getIconWidth

public int getIconWidth()
Returns the width of this icon. Used for the drag&drop component.

Specified by:
getIconWidth in interface Icon
Returns:
the widht of this icon

getPreferredSize

public Dimension getPreferredSize()
Returns the preferred size of this component.

Overrides:
getPreferredSize in class JComponent
Returns:
the preferred size of this component

paintIcon

public void paintIcon(Component c,
                      Graphics g,
                      int x,
                      int y)
Draw the icon at the specified location. Paints this component as an icon.

Specified by:
paintIcon in interface Icon
Parameters:
c - the component which can be used as observer
g - the Graphics object used for painting
x - the position on the X coordinate
y - the position on the Y coordinate

getCallButton

public JButton getCallButton()
Returns the call button contained in the current cell.

Returns:
the call button contained in the current cell

getCallVideoButton

public JButton getCallVideoButton()
Returns the call video button contained in the current cell.

Returns:
the call video button contained in the current cell

getDesktopSharingButton

public JButton getDesktopSharingButton()
Returns the desktop sharing button contained in the current cell.

Returns:
the desktop sharing button contained in the current cell

getAddContactButton

public JButton getAddContactButton()
Returns the add contact button contained in the current cell.

Returns:
the add contact button contained in the current cell

getDragIcon

public Icon getDragIcon(JTree tree,
                        Object dragObject,
                        int index)
Returns the drag icon used to represent a cell in all drag operations.

Parameters:
tree - the parent tree object
dragObject - the dragged object
index - the index of the dragged object in the tree
Returns:
the drag icon

loadSkin

public void loadSkin()
Loads all images and colors.

Specified by:
loadSkin in interface Skinnable

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.