com.valhalla.jbother.groupchat
Class ChatRoomPanel

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

public class ChatRoomPanel
extends javax.swing.JPanel
implements LogViewerCaller, TabFramePanel, UserChooserListener

This is the panel that contains a groupchat conversation. It is placed in a JTabbedPane in GroupChat frame.

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
 
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
ChatRoomPanel(java.lang.String chatroom, java.lang.String nickname, java.lang.String pass)
          This sets up the appearance of the chatroom window
 
Method Summary
 void addBuddy(java.lang.String buddy)
          Adds a buddy to the nickname list
 void addListeners()
          Adds the event listeners for the various components in this chatwindows
 void closeLog()
          Closes the log file
 void configurationHandler(java.lang.String type)
          Collects a Data Form to be filled out
 void disconnect()
           
 void doAction(java.lang.String command, MUCBuddyStatus buddy)
           
 MUCBuddyStatus getBuddyStatus(java.lang.String user)
          Gets the BuddyStatus represending a user in the room
 java.util.Hashtable getBuddyStatuses()
          Gets all the buddy statuses in the room
 org.jivesoftware.smackx.muc.MultiUserChat getChat()
           
 ConversationArea getConversationArea()
           
 java.lang.String getDate(java.util.Date d)
           
 GroupChatNickList getGroupChatNickList()
           
 javax.swing.JComponent getInputComponent()
           
 javax.swing.JList getNickList()
           
 java.lang.String getNickname()
          Gets the nickname currently being used in the chat room
 java.lang.String getNickname(java.lang.String id)
          Returns the nickname of a user in a group chat.
 java.lang.String getPanelName()
          Returns the tab name for the TabFramePanel
 java.lang.String getPanelToolTip()
           
 GroupParticipantListener getParticipantListener()
           
 java.lang.String getRoomName()
          Gets the entire room name, server included
 java.lang.String getShortRoomName()
          Gets the short room name - for example, if you are talking in jdev@conference.jabber.org, it would return "jdev"
 java.lang.String getSubject()
          Returns the current room subject
 MJTextField getSubjectField()
           
 TitledTab getTab()
           
 javax.swing.text.JTextComponent getTextEntryArea()
           
 java.lang.String getTooltip()
          Returns the tooltip for the tab in the TabFrame
 java.lang.String getUser()
           
 java.lang.String getWindowTitle()
          Returns the window title
protected  void inviteUsers(java.lang.String[] users, java.lang.String reason)
           
 void leave()
          Leaves this room and removes it from the groupchat frame
 boolean listenersAdded()
           
 void openLogWindow()
          Opens the log window for this chat room
 void receiveMessage(java.lang.String from, java.lang.String message, java.util.Date date)
          Receives a message
 void removeBuddy(java.lang.String buddy)
          Removes a buddy from the nick list
 void removed()
           
 void removeMe()
           
 void resetMessageToMe()
           
 void serverErrorMessage(java.lang.String message)
           
 void serverNoticeMessage(java.lang.String message)
          Displays a server notice message
 void setListenersAdded(boolean added)
          Sets whether or not the TabFrame panel listeners have been added
 void setSubject(java.lang.String subject)
          Sets the subject of the room
 void setTab(TitledTab tab)
           
 void startChat()
          Starts the groupchat.
 void startLog()
          Opens the log file
 void updateStyle(java.awt.Font font)
           
 void usersChosen(java.lang.Object[] us)
          Description of the Method
 void usersChosen(UserChooser.Item[] items)
           
 
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
 

Constructor Detail

ChatRoomPanel

public ChatRoomPanel(java.lang.String chatroom,
                     java.lang.String nickname,
                     java.lang.String pass)
This sets up the appearance of the chatroom window

Parameters:
chatroom - the chatroom address
nickname - the nickname to use when joining
Method Detail

removed

public void removed()

updateStyle

public void updateStyle(java.awt.Font font)
Specified by:
updateStyle in interface TabFramePanel

setTab

public void setTab(TitledTab tab)
Specified by:
setTab in interface TabFramePanel

getTab

public TitledTab getTab()
Specified by:
getTab in interface TabFramePanel

getConversationArea

public ConversationArea getConversationArea()

getGroupChatNickList

public GroupChatNickList getGroupChatNickList()

removeMe

public void removeMe()

disconnect

public void disconnect()

doAction

public void doAction(java.lang.String command,
                     MUCBuddyStatus buddy)

getUser

public java.lang.String getUser()

listenersAdded

public boolean listenersAdded()
Specified by:
listenersAdded in interface TabFramePanel
Returns:
true if the TabFrame panel listeners have already been added to this panel

setListenersAdded

public void setListenersAdded(boolean added)
Sets whether or not the TabFrame panel listeners have been added

Specified by:
setListenersAdded in interface TabFramePanel
Parameters:
added - true if they have been added

getInputComponent

public javax.swing.JComponent getInputComponent()
Specified by:
getInputComponent in interface TabFramePanel
Returns:
the input area of this panel

getNickList

public javax.swing.JList getNickList()
Returns:
the JList representing the nicklist

getTextEntryArea

public javax.swing.text.JTextComponent getTextEntryArea()
Returns:
the text entry area

usersChosen

public void usersChosen(UserChooser.Item[] items)
Specified by:
usersChosen in interface UserChooserListener

usersChosen

public void usersChosen(java.lang.Object[] us)
Description of the Method

Parameters:
array - Description of the Parameter

inviteUsers

protected void inviteUsers(java.lang.String[] users,
                           java.lang.String reason)

configurationHandler

public void configurationHandler(java.lang.String type)
Collects a Data Form to be filled out

Parameters:
type - the type of form. Either "configure" or "registerFor"

openLogWindow

public void openLogWindow()
Opens the log window for this chat room

Specified by:
openLogWindow in interface LogViewerCaller

addBuddy

public void addBuddy(java.lang.String buddy)
Adds a buddy to the nickname list

Parameters:
buddy - the buddy to add

removeBuddy

public void removeBuddy(java.lang.String buddy)
Removes a buddy from the nick list

Parameters:
buddy - the buddy to remove

startLog

public void startLog()
Opens the log file

Specified by:
startLog in interface LogViewerCaller

getBuddyStatus

public MUCBuddyStatus getBuddyStatus(java.lang.String user)
Gets the BuddyStatus represending a user in the room

Parameters:
user - the BuddyStatus to get
Returns:
the requested BuddyStatus

getPanelToolTip

public java.lang.String getPanelToolTip()
Specified by:
getPanelToolTip in interface TabFramePanel
Returns:
the tooltip for this panel (when hovering over the tab in the tab frame

getPanelName

public java.lang.String getPanelName()
Returns the tab name for the TabFramePanel

Specified by:
getPanelName in interface TabFramePanel
Returns:
the panel name

getTooltip

public java.lang.String getTooltip()
Returns the tooltip for the tab in the TabFrame

Specified by:
getTooltip in interface TabFramePanel
Returns:
the tooltip for this tab in the tab frame

getWindowTitle

public java.lang.String getWindowTitle()
Returns the window title

Specified by:
getWindowTitle in interface TabFramePanel
Returns:
the window title for the TabFrame when this tab is selected

getShortRoomName

public java.lang.String getShortRoomName()
Gets the short room name - for example, if you are talking in jdev@conference.jabber.org, it would return "jdev"

Returns:
short room name

getRoomName

public java.lang.String getRoomName()
Gets the entire room name, server included

Returns:
gets the room address

getNickname

public java.lang.String getNickname(java.lang.String id)
Returns the nickname of a user in a group chat.

Parameters:
id - The full id of someone in a room, ie: jdev@conference.jabber.org/synic
Returns:
the nickname of the person in the room

getChat

public org.jivesoftware.smackx.muc.MultiUserChat getChat()

getParticipantListener

public GroupParticipantListener getParticipantListener()

startChat

public void startChat()
Starts the groupchat. Sets up a thread to connect, and start that thread


addListeners

public void addListeners()
Adds the event listeners for the various components in this chatwindows


leave

public void leave()
Leaves this room and removes it from the groupchat frame


getNickname

public java.lang.String getNickname()
Gets the nickname currently being used in the chat room

Returns:
the nickname being used in the chatroom

serverNoticeMessage

public void serverNoticeMessage(java.lang.String message)
Displays a server notice message

Parameters:
message - the message to display

serverErrorMessage

public void serverErrorMessage(java.lang.String message)

receiveMessage

public void receiveMessage(java.lang.String from,
                           java.lang.String message,
                           java.util.Date date)
Receives a message

Parameters:
from - who it's from
message - the message

resetMessageToMe

public void resetMessageToMe()

closeLog

public void closeLog()
Closes the log file

Specified by:
closeLog in interface LogViewerCaller

getDate

public java.lang.String getDate(java.util.Date d)
Returns:
a String representing the current time the format: [Hour:Minute:Second]

getSubjectField

public MJTextField getSubjectField()

setSubject

public void setSubject(java.lang.String subject)
Sets the subject of the room

Parameters:
subject - the subject to set

getSubject

public java.lang.String getSubject()
Returns the current room subject

Returns:
the current room subject

getBuddyStatuses

public java.util.Hashtable getBuddyStatuses()
Gets all the buddy statuses in the room

Returns:
all BuddyStatuses