com.valhalla.jbother
Class BuddyList

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

public class BuddyList
extends javax.swing.JPanel

BuddyList is the main controller for the buddy list, as as the buddy list is the main component of the IM application it performs most of the work once it's been initialized.

Version:
1.0
Author:
Adam Olsen, Andrey Zakirov
See Also:
Serialized Form

Nested Class Summary
 class BuddyList.MyAWTEventListener
          Listens for user input events.
 
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
 
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
 
Method Summary
 void addTabPanel(TabFramePanel panel)
          Adds a chat room window to the groupchat frame.
 boolean checkConnection()
          Checks to see if a connection is active
 void clearTree()
          Clears the buddy tree
 void connectionError()
          Displays a generic connection error
 void dockYourself()
          Description of the Method
 com.valhalla.jbother.AwayHandler getAwayHandler()
          Gets the awayHandler attribute of the BuddyList object
 javax.swing.Timer getAwayTimer()
          Returns the away timer
 java.util.Hashtable getBlockedUsers()
          Gets a list of blocked users
 BuddyListBuddiesMenu getBuddiesMenu()
          Gets the buddiesMenu attribute of the BuddyList object
 BuddyListTree getBuddyListTree()
          Returns the buddy list tree
 BuddyStatus getBuddyStatus(java.lang.String userId)
          Gets the buddy status
 java.util.Hashtable getBuddyStatuses()
          Returns all the buddy status that are available
 org.jivesoftware.smack.XMPPConnection getConnection()
          Returns the current connection
 javax.swing.JFrame getContainerFrame()
          Gets the containerFrame attribute of the BuddyList object
 org.jivesoftware.smack.packet.Presence.Mode getCurrentPresenceMode()
          Gets the current presence mode
 java.lang.String getCurrentStatusString()
          Returns the current status string
 java.lang.String[] getEventMessage(java.lang.String messageId, int type)
          Gets the eventMessage attribute of the BuddyList object
 java.lang.String getGnuPGPassword()
          Gets the GnuPG password
 boolean getIdleAway()
          Gets the idleAway attribute of the BuddyList object
static BuddyList getInstance()
          Gets the BuddyList singleton
 long getLastActive()
          Gets the lastActive attribute of the BuddyList object
 java.lang.String getMyName()
          Gets the displayed name, or "me"
 boolean getSignoff()
          Gets whether or not we have signed off
static BuddyList getSingleton()
          Deprecated. Use getInstance() instead
 javax.swing.JButton getStatusButton()
          Gets the statusButton attribute of the BuddyList object
 SetStatusMenu getStatusMenu()
          Gets the statusMenu attribute of the BuddyList object
 TabFrame getTabFrame()
          Returns the group chat frame
 void init(org.jivesoftware.smack.XMPPConnection connection)
          Sets up the current connection
 void initBuddies()
          initializes the buddy tree by loading the offline buddies
 boolean isDocked()
          Gets the docked attribute of the BuddyList object
 boolean isEncrypting()
          Gets the encryption status
 void isEncrypting(boolean variant)
          Sets the encryption status
 void kill()
          Close down the buddy list.
protected  void loadBlockedUsers()
          Loads the blocked users information
 void loadSettings()
          Loads the settings for this profile
 boolean putEventMessage(java.lang.String messageId, java.lang.String userJID, java.lang.String timeStamp, int type)
          Description of the Method
 void quitHandler()
          Closes the application
 void removeTabPanel(TabFramePanel panel)
          Removes a ChatPanel
 void resetAwayTimer()
           
 void resetAwayTimer(int aTime)
          Starts the away timer
 void saveSettings()
          Saves the current settings - like the height and width of the buddy list
 void setBlockedUsers(java.util.Hashtable users)
          Sets the list of blocked users
 void setCurrentPresenceMode(org.jivesoftware.smack.packet.Presence.Mode mode)
          Sets the current presence mode
 void setCurrentStatusString(java.lang.String string)
          Sets the current status string
 void setGnuPGPassword(java.lang.String gnupgPassword)
          Sets the GnuPG password
 void setIdleAway(boolean idleAway)
          Sets the idleAway attribute of the BuddyList object
 void setLastActive()
          Sets the lastActive attribute of the BuddyList object
 void setSignoff(boolean value)
          Sets whether or not we have signed off
 boolean setStatus(org.jivesoftware.smack.packet.Presence.Mode mode, java.lang.String defaultMessage, boolean getMessage)
          Set the current status by sending a Jabber packet
 void setTabFrame(TabFrame frame)
          Sets the tabFrame attribute of the BuddyList object
 void signOff()
          signs off, clears the buddy list
 void startTabFrame()
          Starts the group chat frame
 void stopTabFrame()
          checks to see if there are no more chat room windows in the groupchatframe if there are no more, the groupchatframe is destroyed
 void undock()
          Description of the Method
 void updateButtons(java.lang.String mode)
           
 void updateIcons()
          Updates all the dialogs window icons
 
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, 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
 

Method Detail

getContainerFrame

public javax.swing.JFrame getContainerFrame()
Gets the containerFrame attribute of the BuddyList object

Returns:
The containerFrame value

getSingleton

public static BuddyList getSingleton()
Deprecated. Use getInstance() instead

Gets the BuddyList singleton

Returns:
the BuddyList singleton

getInstance

public static BuddyList getInstance()
Gets the BuddyList singleton

Returns:
the BuddyList singleton

updateButtons

public void updateButtons(java.lang.String mode)

resetAwayTimer

public void resetAwayTimer()

resetAwayTimer

public void resetAwayTimer(int aTime)
Starts the away timer


loadBlockedUsers

protected void loadBlockedUsers()
Loads the blocked users information


getEventMessage

public java.lang.String[] getEventMessage(java.lang.String messageId,
                                          int type)
Gets the eventMessage attribute of the BuddyList object

Parameters:
messageId - Description of the Parameter
type - Description of the Parameter
Returns:
The eventMessage value

putEventMessage

public boolean putEventMessage(java.lang.String messageId,
                               java.lang.String userJID,
                               java.lang.String timeStamp,
                               int type)
Description of the Method

Parameters:
messageId - Description of the Parameter
userJID - Description of the Parameter
timeStamp - Description of the Parameter
type - Description of the Parameter
Returns:
Description of the Return Value

getStatusButton

public javax.swing.JButton getStatusButton()
Gets the statusButton attribute of the BuddyList object

Returns:
The statusButton value

getAwayTimer

public javax.swing.Timer getAwayTimer()
Returns the away timer

Returns:
the away timer

setIdleAway

public void setIdleAway(boolean idleAway)
Sets the idleAway attribute of the BuddyList object

Parameters:
idleAway - The new idleAway value

getIdleAway

public boolean getIdleAway()
Gets the idleAway attribute of the BuddyList object

Returns:
The idleAway value

getAwayHandler

public com.valhalla.jbother.AwayHandler getAwayHandler()
Gets the awayHandler attribute of the BuddyList object

Returns:
The awayHandler value

init

public void init(org.jivesoftware.smack.XMPPConnection connection)
Sets up the current connection

Parameters:
connection - the current connection

clearTree

public void clearTree()
Clears the buddy tree


initBuddies

public void initBuddies()
initializes the buddy tree by loading the offline buddies


setCurrentPresenceMode

public void setCurrentPresenceMode(org.jivesoftware.smack.packet.Presence.Mode mode)
Sets the current presence mode

Parameters:
mode - the mode to set it to

setCurrentStatusString

public void setCurrentStatusString(java.lang.String string)
Sets the current status string

Parameters:
string - the string to use

getCurrentPresenceMode

public org.jivesoftware.smack.packet.Presence.Mode getCurrentPresenceMode()
Gets the current presence mode

Returns:
the current presence mode

getCurrentStatusString

public java.lang.String getCurrentStatusString()
Returns the current status string

Returns:
the current status string

getTabFrame

public TabFrame getTabFrame()
Returns the group chat frame

Returns:
the group chat frame

startTabFrame

public void startTabFrame()
Starts the group chat frame


stopTabFrame

public void stopTabFrame()
checks to see if there are no more chat room windows in the groupchatframe if there are no more, the groupchatframe is destroyed


removeTabPanel

public void removeTabPanel(TabFramePanel panel)
Removes a ChatPanel

Parameters:
panel - the chat panel to remove

addTabPanel

public void addTabPanel(TabFramePanel panel)
Adds a chat room window to the groupchat frame. If there is not groupchat frame one is created

Parameters:
panel - The feature to be added to the TabPanel attribute

getBuddyStatus

public BuddyStatus getBuddyStatus(java.lang.String userId)
Gets the buddy status

Parameters:
userId - the user id of the BuddyStatus
Returns:
The buddyStatus value

getBuddyStatuses

public java.util.Hashtable getBuddyStatuses()
Returns all the buddy status that are available

Returns:
the Hashtable containing all the buddy statuses

getConnection

public org.jivesoftware.smack.XMPPConnection getConnection()
Returns the current connection

Returns:
the current connection

checkConnection

public boolean checkConnection()
Checks to see if a connection is active

Returns:
true if the connection is active (connected)

connectionError

public void connectionError()
Displays a generic connection error


isDocked

public boolean isDocked()
Gets the docked attribute of the BuddyList object

Returns:
The docked value

dockYourself

public void dockYourself()
Description of the Method


setTabFrame

public void setTabFrame(TabFrame frame)
Sets the tabFrame attribute of the BuddyList object

Parameters:
frame - The new tabFrame value

undock

public void undock()
Description of the Method


loadSettings

public void loadSettings()
Loads the settings for this profile


saveSettings

public void saveSettings()
Saves the current settings - like the height and width of the buddy list


getBuddyListTree

public BuddyListTree getBuddyListTree()
Returns the buddy list tree

Returns:
the buddy list tree

setSignoff

public void setSignoff(boolean value)
Sets whether or not we have signed off

Parameters:
value - true if we have signed off

getSignoff

public boolean getSignoff()
Gets whether or not we have signed off

Returns:
true if we have signed off

getMyName

public java.lang.String getMyName()
Gets the displayed name, or "me"

Returns:
the myDisplayedName setting

quitHandler

public void quitHandler()
Closes the application


signOff

public void signOff()
signs off, clears the buddy list


kill

public void kill()
Close down the buddy list. Also closes down any other windows that might be open


getBlockedUsers

public java.util.Hashtable getBlockedUsers()
Gets a list of blocked users

Returns:
the list of blocked users

setBlockedUsers

public void setBlockedUsers(java.util.Hashtable users)
Sets the list of blocked users

Parameters:
users - the list of blocked users

getGnuPGPassword

public java.lang.String getGnuPGPassword()
Gets the GnuPG password

Returns:
GnuPG password

setGnuPGPassword

public void setGnuPGPassword(java.lang.String gnupgPassword)
Sets the GnuPG password

Parameters:
gnupgPassword - GnuPG password

isEncrypting

public boolean isEncrypting()
Gets the encryption status

Returns:
encryption status

isEncrypting

public void isEncrypting(boolean variant)
Sets the encryption status

Parameters:
variant - encryption status

updateIcons

public void updateIcons()
Updates all the dialogs window icons


setStatus

public boolean setStatus(org.jivesoftware.smack.packet.Presence.Mode mode,
                         java.lang.String defaultMessage,
                         boolean getMessage)
Set the current status by sending a Jabber packet

Parameters:
mode - the mode to set it to
defaultMessage - the status message to set it to
getMessage - whether or not to get a new message
Returns:
true if the status packet was sent successfully

getStatusMenu

public SetStatusMenu getStatusMenu()
Gets the statusMenu attribute of the BuddyList object

Returns:
The statusMenu value

getBuddiesMenu

public BuddyListBuddiesMenu getBuddiesMenu()
Gets the buddiesMenu attribute of the BuddyList object

Returns:
The buddiesMenu value

setLastActive

public void setLastActive()
Sets the lastActive attribute of the BuddyList object


getLastActive

public long getLastActive()
Gets the lastActive attribute of the BuddyList object

Returns:
The lastActive value