com.valhalla.jbother
Class ConversationPanel

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.ConversationPanel
All Implemented Interfaces:
LogViewerCaller, TabFramePanel, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
ChatPanel, ConsolePanel, EventPanel, 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.1
Author:
Adam Olsen, Yury Soldak (tail), Andrey Zakirov
See Also:
BuddyStatus, 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  BuddyStatus buddy
           
protected  ConversationArea conversationArea
          the conversation area
protected  javax.swing.JFrame frame
          the containing frame
protected  org.jivesoftware.smack.packet.Message lastReceived
           
protected  boolean listenersAdded
          if the listeners have been added
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.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
 void ConversationPanel(BuddyStatus buddy)
           
abstract  void createFrame()
          Abstract createFrame - creates the containing frame of this panel
 void disconnected()
          Displays a "disconnected" message"
 void finailize()
           
 BuddyStatus getBuddy()
          Returns the buddy status for this dialog
 javax.swing.JFrame getContainingFrame()
           
static java.lang.String getDate(java.util.Date d)
           
 javax.swing.JFrame getFrame()
           
 javax.swing.JComponent getInputComponent()
           
 java.lang.String getPanelName()
           
 java.lang.String getPanelToolTip()
           
 TitledTab getTab()
           
 java.lang.String getTooltip()
           
 java.lang.String getWindowTitle()
           
 boolean listenersAdded()
           
 void openLogWindow()
          Opens a com.valhalla.jbother.LogViewerDialog
 void receiveMessage()
          Calls the received message events
 void receiveMessage(java.lang.String sbj, java.lang.String delayInfo, java.lang.String body, java.lang.String resource, java.util.Date date, boolean decryptedFlag, boolean verifiedFlag)
          Receives a message
 void setContainingFrame(javax.swing.JFrame frame)
           
 void setLastReceivedMessage(org.jivesoftware.smack.packet.Message message)
           
 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 setTab(TitledTab tab)
           
 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)
           
 
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
 

Field Detail

buddy

protected BuddyStatus buddy

lastReceived

protected org.jivesoftware.smack.packet.Message lastReceived

conversationArea

protected ConversationArea conversationArea
the conversation area


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

ConversationPanel

public void ConversationPanel(BuddyStatus buddy)

getFrame

public javax.swing.JFrame getFrame()

setTab

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

getTab

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

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

getPanelToolTip

public java.lang.String getPanelToolTip()
Specified by:
getPanelToolTip in interface TabFramePanel
Returns:
A string containing the tooltip that should be displayed for this tab

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

getBuddy

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

Returns:
the buddy passed in to the constructor

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 static java.lang.String getDate(java.util.Date d)
Parameters:
d - the date stamp to use
Returns:
a String representing the current time the format: [Hour:Minute:Second]

receiveMessage

public void receiveMessage(java.lang.String sbj,
                           java.lang.String delayInfo,
                           java.lang.String body,
                           java.lang.String resource,
                           java.util.Date date,
                           boolean decryptedFlag,
                           boolean verifiedFlag)
Receives a message

Parameters:
sbj - the subject of the message
body - the message body
resource - the message resource
date - the timestamp when the message was received

receiveMessage

public void receiveMessage()
Calls the received message events


setLastReceivedMessage

public void setLastReceivedMessage(org.jivesoftware.smack.packet.Message message)

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


disconnected

public void disconnected()
Displays a "disconnected" message"


updateStyle

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

closeLog

public void closeLog()
Closes the log file

Specified by:
closeLog in interface LogViewerCaller

finailize

public void finailize()