com.valhalla.jbother
Class BuddyListTree

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 com.valhalla.jbother.BuddyListTree
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class BuddyListTree
extends javax.swing.JPanel

BuddyListTree is the part of the buddy list dialog that draws the buddies and their groups from your Jabber roster. It also displays different pictures for different statuses.

Version:
1.0
Author:
Adam Olsen
See Also:
Serialized Form

Nested Class Summary
 
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
 
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
protected  java.util.Hashtable groups
           
protected  java.util.Hashtable onlineEntriesPerGroup
           
protected  java.util.Hashtable totalEntriesPerGroup
           
 
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
BuddyListTree()
          Sets up the tree
 
Method Summary
 void addBuddy(BuddyStatus buddy)
          Adds a buddy to the tree - if it's not already in the tree
 void checkAddEntry(BuddyStatus buddy)
          finds out if the buddy should be displayed in the BuddyListTree.
 AutomatedTreeNode checkGroup(BuddyGroup group)
          Checks to see if the group is already in the tree, and returns the index of it
 void clearBuddies()
          Clears all the buddies from the JTree
 GroupPopupMenu getGroupMenu()
          Gets the groupPopMenu attribute of the BuddyListTree object
 BuddyListPopupMenu getPopMenu()
          Gets the popMenu attribute of the BuddyListTree object
 boolean getSortByStatus()
           
 javax.swing.JTree getTree()
          Returns the JTree
 void initiateConversation(BuddyStatus buddy)
          Starts a conversation if someone double double clicks on a buddy
 boolean isInTree(BuddyStatus buddy)
          Returns whether or not the buddy is in the tree
 void loadOfflineBuddies()
          Shows all the current offline buddies
 void reloadBuddies()
          Redraws the JTree
 void reloadBuddies(boolean loadOffline)
          Redraws the JTree
 void removeBuddy(BuddyStatus buddy, java.lang.String group, boolean removeFromGroup)
          Removes the buddy from the tree
 void setConnection(org.jivesoftware.smack.XMPPConnection connection)
          Sets the JTree's XMPPConnection
 void setShowAgentBuddies(boolean show)
          Sets whether or not to show agents/transports
 void setShowAwayBuddies(boolean show)
           
 void setShowOfflineBuddies(boolean show)
          Sets whether or not to show the offline buddies
 void setShowUnfiledBuddies(boolean show)
          Sets whether or not to show the unfiled buddies
 void setSortByStatus(boolean show)
          set to true if you want to sort your buddies by status
 void updateUI()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
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, 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, 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

totalEntriesPerGroup

protected java.util.Hashtable totalEntriesPerGroup

onlineEntriesPerGroup

protected java.util.Hashtable onlineEntriesPerGroup

groups

protected java.util.Hashtable groups
Constructor Detail

BuddyListTree

public BuddyListTree()
Sets up the tree

Method Detail

updateUI

public void updateUI()
Overrides:
updateUI in class javax.swing.JPanel

getPopMenu

public BuddyListPopupMenu getPopMenu()
Gets the popMenu attribute of the BuddyListTree object

Returns:
The popMenu value

getGroupMenu

public GroupPopupMenu getGroupMenu()
Gets the groupPopMenu attribute of the BuddyListTree object

Returns:
The popMenu value

getTree

public javax.swing.JTree getTree()
Returns the JTree

Returns:
the actual JTree swing component

setConnection

public void setConnection(org.jivesoftware.smack.XMPPConnection connection)
Sets the JTree's XMPPConnection

Parameters:
connection - the current connection

setShowOfflineBuddies

public void setShowOfflineBuddies(boolean show)
Sets whether or not to show the offline buddies

Parameters:
show - true to show the offline buddies

setShowAwayBuddies

public void setShowAwayBuddies(boolean show)

setShowUnfiledBuddies

public void setShowUnfiledBuddies(boolean show)
Sets whether or not to show the unfiled buddies

Parameters:
show - true to show unfiled buddies

setShowAgentBuddies

public void setShowAgentBuddies(boolean show)
Sets whether or not to show agents/transports

Parameters:
show - true to show agents and transports

setSortByStatus

public void setSortByStatus(boolean show)
set to true if you want to sort your buddies by status

Parameters:
show - true to sort by status

getSortByStatus

public boolean getSortByStatus()
Returns:
true if sort by status is set

reloadBuddies

public void reloadBuddies()
Redraws the JTree


loadOfflineBuddies

public void loadOfflineBuddies()
Shows all the current offline buddies


reloadBuddies

public void reloadBuddies(boolean loadOffline)
Redraws the JTree

Parameters:
loadOffline - whether or not to just load the offline buddies

clearBuddies

public void clearBuddies()
Clears all the buddies from the JTree


checkGroup

public AutomatedTreeNode checkGroup(BuddyGroup group)
Checks to see if the group is already in the tree, and returns the index of it

Parameters:
group - the group to check
Returns:
Description of the Return Value

checkAddEntry

public void checkAddEntry(BuddyStatus buddy)
finds out if the buddy should be displayed in the BuddyListTree. If so the buddy is added to the tree

Parameters:
buddy - the buddy to add

isInTree

public boolean isInTree(BuddyStatus buddy)
Returns whether or not the buddy is in the tree

Parameters:
buddy - the buddy to check
Returns:
true if the buddy is in the tree

addBuddy

public void addBuddy(BuddyStatus buddy)
Adds a buddy to the tree - if it's not already in the tree

Parameters:
buddy - the buddy to add

removeBuddy

public void removeBuddy(BuddyStatus buddy,
                        java.lang.String group,
                        boolean removeFromGroup)
Removes the buddy from the tree

Parameters:
buddy - the buddy to remove
group - the group the buddy is in

initiateConversation

public void initiateConversation(BuddyStatus buddy)
Starts a conversation if someone double double clicks on a buddy