com.valhalla.jbother
Class BuddyList

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended bycom.valhalla.jbother.BuddyList
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class BuddyList
extends javax.swing.JFrame

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
See Also:
Serialized Form

Nested Class Summary
 class BuddyList.MyAWTEventListener
          Listens for user input events.
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes 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.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
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
 AwayHandler getAwayHandler()
           
 javax.swing.Timer getAwayTimer()
          Returns the away timer
 java.util.Hashtable getBlockedUsers()
          Gets a list of blocked users
 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
 org.jivesoftware.smack.packet.Presence.Mode getCurrentPresenceMode()
          Gets the current presence mode
 java.lang.String getCurrentStatusString()
          Returns the current status string
 boolean getIdleAway()
           
static BuddyList getInstance()
          Gets the BuddyList singleton
 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
 TabFrame getTabFrame()
          Returns the group chat frame
 BuddyListTopMenu getTopMenu()
          Returns the top buddy menu
 void init(org.jivesoftware.smack.XMPPConnection connection)
          Sets up the current connection
 void initBuddies()
          initializes the buddy tree by loading the offline buddies
 void kill()
          Close down the buddy list.
protected  void loadBlockedUsers()
          Loads the blocked users information
 void quitHandler()
          Closes the application
 void removeTabPanel(TabFramePanel panel)
          Removes a ChatPanel
 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 setIdleAway(boolean idleAway)
           
protected  void setPreferredDimensions()
          Load saved settings from the last session and set the buddy list to the sizes that were saved.
protected  void setPreferredLocation()
          Loads the saved settings from any previous settings
 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 signOff()
          signs off, clears the buddy list
 void startTabFrame()
          Starts the group chat frame
 void startTimer()
          Starts the away timer
 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 updateIcons()
          Updates all the dialogs window icons
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Method Detail

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

getTopMenu

public BuddyListTopMenu getTopMenu()
Returns the top buddy menu

Returns:
the buddy menu

startTimer

public void startTimer()
Starts the away timer


loadBlockedUsers

protected void loadBlockedUsers()
Loads the blocked users information


getAwayTimer

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

Returns:
the away timer

setIdleAway

public void setIdleAway(boolean idleAway)

getIdleAway

public boolean getIdleAway()

getAwayHandler

public AwayHandler getAwayHandler()

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


setPreferredLocation

protected void setPreferredLocation()
Loads the saved settings from any previous settings


saveSettings

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


setPreferredDimensions

protected void setPreferredDimensions()
Load saved settings from the last session and set the buddy list to the sizes that were saved.


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

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