com.valhalla.jbother
Class ConversationPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bycom.valhalla.jbother.ConversationPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, LogViewerCaller, java.awt.MenuContainer, java.io.Serializable, TabFramePanel
Direct Known Subclasses:
ChatPanel, HeadlinesPanel, MessagePanel

public abstract class ConversationPanel
extends javax.swing.JPanel
implements LogViewerCaller, TabFramePanel

Provides common tools for conversation windows (such as logging). Must be extended.

Version:
1.0
Author:
Adam Olsen, Yury Soldak (tail)
See Also:
BuddyStatus, Serialized Form

Nested Class Summary
(package private)  class ConversationPanel.CloseListener
          Listens for a close event, and either makes the dialog hidden or removes it from the dialog tracker
(package private)  class ConversationPanel.RightClickListener
          Listens for a right click - and displays a menu if it's caught
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
protected  BuddyStatus buddy
           
protected  ConversationArea conversationArea
          the conversation area
protected  javax.swing.JFrame frame
          the containing frame
protected  boolean listenersAdded
          if the listeners have been added
protected  java.io.PrintWriter logOut
          the log writer
protected  javax.swing.Timer timer
          the close timer
 
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.Container
 
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
ConversationPanel(BuddyStatus buddy)
          Sets up the defaults in the ConversationPanel
 
Method Summary
 void checkCloseHandler()
          Checks to see if we are preserving messages.
 void closeHandler()
          Destroys the dialog, disposes the containing frame if there is one and removes the panel from the TabFrame if required.
 void closeLog()
          Closes the log file
abstract  void createFrame()
          Abstract createFrame - creates the containing frame of this panel
abstract  void focusYourself()
          Focuses when a Tab in the TabFrame is clicked
 BuddyStatus getBuddy()
          Returns the buddy status for this dialog
 javax.swing.JFrame getContainingFrame()
           
 java.lang.String getDate()
          Gets the time in the format [hour:minute:second]
 java.awt.Component getInputComponent()
           
 java.lang.String getPanelName()
           
 java.lang.String getTooltip()
           
 java.lang.String getWindowTitle()
           
 boolean listenersAdded()
           
 void openLogWindow()
          Opens a com.valhalla.jbother.LogViewerDialog
 void recieveMessage()
          Calls the recieved message events
 void recieveMessage(java.lang.String sbj, java.lang.String body, java.lang.String resource)
          Recieves a message
 void setContainingFrame(javax.swing.JFrame frame)
           
 void setListenersAdded(boolean added)
          Sets whether or not the TabFrame panel listeners have been added
 void setOfflineMessage()
          Sets a message to offline (displays "this message is offline")
 void startLog()
          Opens a log and starts it.
 void startTimer()
          Starts the closet imer
 void stopTimer()
          Stops the close timer
 void updateStyle(java.awt.Font font)
          Updates the conversation font
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

buddy

protected BuddyStatus buddy

conversationArea

protected ConversationArea conversationArea
the conversation area


logOut

protected java.io.PrintWriter logOut
the log writer


timer

protected javax.swing.Timer timer
the close timer


frame

protected javax.swing.JFrame frame
the containing frame


listenersAdded

protected boolean listenersAdded
if the listeners have been added

Constructor Detail

ConversationPanel

public ConversationPanel(BuddyStatus buddy)
Sets up the defaults in the ConversationPanel

Parameters:
buddy - the buddy that this window corresponds to
Method Detail

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 java.awt.Component getInputComponent()
Specified by:
getInputComponent in interface TabFramePanel
Returns:
the input area of this panel

getPanelName

public java.lang.String getPanelName()
Specified by:
getPanelName in interface TabFramePanel
Returns:
the name of the tab in the TabFrame

getWindowTitle

public java.lang.String getWindowTitle()
Specified by:
getWindowTitle in interface TabFramePanel
Returns:
the title of the window in the TabFrame

getTooltip

public java.lang.String getTooltip()
Specified by:
getTooltip in interface TabFramePanel
Returns:
the tooltip for this tab in the TabFrame

getContainingFrame

public javax.swing.JFrame getContainingFrame()
Returns:
the containing frame for this panel

setContainingFrame

public void setContainingFrame(javax.swing.JFrame frame)
Parameters:
frame - the new containing frame

focusYourself

public abstract void focusYourself()
Focuses when a Tab in the TabFrame is clicked

Specified by:
focusYourself in interface TabFramePanel

getBuddy

public BuddyStatus getBuddy()
Returns the buddy status for this dialog

Returns:
the buddy passed in to the constructor

updateStyle

public void updateStyle(java.awt.Font font)
Updates the conversation font

Specified by:
updateStyle in interface TabFramePanel
Parameters:
font - the font to update to

checkCloseHandler

public void checkCloseHandler()
Checks to see if we are preserving messages. If so, it starts the timer, otherwise it just closes the panel


closeHandler

public void closeHandler()
Destroys the dialog, disposes the containing frame if there is one and removes the panel from the TabFrame if required.


openLogWindow

public void openLogWindow()
Opens a com.valhalla.jbother.LogViewerDialog

Specified by:
openLogWindow in interface LogViewerCaller

startLog

public void startLog()
Opens a log and starts it.

Specified by:
startLog in interface LogViewerCaller

setOfflineMessage

public void setOfflineMessage()
Sets a message to offline (displays "this message is offline")


getDate

public java.lang.String getDate()
Gets the time in the format [hour:minute:second]

Returns:
the time in the format [hour:minute:second]

recieveMessage

public void recieveMessage(java.lang.String sbj,
                           java.lang.String body,
                           java.lang.String resource)
Recieves a message

Parameters:
sbj - the subject of the message
body - the message body
resource - the message resource

recieveMessage

public void recieveMessage()
Calls the recieved message events


createFrame

public abstract void createFrame()
Abstract createFrame - creates the containing frame of this panel


stopTimer

public void stopTimer()
Stops the close timer


startTimer

public void startTimer()
Starts the closet imer


closeLog

public void closeLog()
Closes the log file

Specified by:
closeLog in interface LogViewerCaller