com.valhalla.jbother
Class TabFrame

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

public class TabFrame
extends javax.swing.JFrame

Contains all of the groupchat windows in tabs

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

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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.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.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
 
Constructor Summary
TabFrame()
          Constructor sets the frame up and adds a listener to the JTabPane so that if a tab is changed the title of this frame reflects the topic and the name of the room in the tab
 
Method Summary
 void addFrameListener(BuddyStatus buddy)
           
 void addPanel(TabFramePanel panel)
          Adds a chat room to the frame
 void clearTab(TabFramePanel panel)
          Clears the tab message queue count
 void closeHandler()
          This not only closes the window, but it leaves all the rooms like it should
 boolean contains(TabFramePanel panel)
           
 void dockBuddyList(BuddyList list)
          Docks the BuddyList to this frame
 ChatRoomPanel getChatPanel(java.lang.String server)
          If there is a chatroom open in this frame with a server name, this returns the ChatRoomPanel that contains it
 TabbedPanel getTabPane()
           
 boolean isRoomOpen(java.lang.String server)
          Since there is no way to check to see if a message is from someone in a chat room, we check to see if the message is coming from the same server as a chatroom we are in.
 void leaveAll()
          Leaves all chatrooms (for if they close the window)
 void markTab(TabFramePanel panel, boolean messageToMe)
          Marks a tab for a TabFramePanel if it's not already selected
 void removePanel(TabFramePanel panel)
          This leaves a chatroom and removes the associated ChatRoomPanel from the TabPane
 void removeTabListeners()
          Removes all event listeners from the TabbedPanel
 void resetCloseButtons(boolean selected)
          Revalidates the close button on a tab
 void saveStates()
          Saves the size of the chat frame
 void setStatus(org.jivesoftware.smack.packet.Presence.Mode mode, java.lang.String status)
          Set the status in all the rooms
 void setSubject(ChatRoomPanel window)
          Sets the subject of a ChatRoomPanel based on a message that was received from the GroupChat server with <subject> in it
 void switchTab(TabbedPanel tabPane)
          Switches the current tab in the tab frame
 int tabsLeft()
          Returns the number of rooms currently open in the frame
 void undock()
          Undocks the BuddyList from this tab frame
 void updateStyles(java.awt.Font font)
          Updates the font in all the chat conversationareas
 
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, setIconImage, 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, 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, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, 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, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, 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, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, 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, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, 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
 

Constructor Detail

TabFrame

public TabFrame()
Constructor sets the frame up and adds a listener to the JTabPane so that if a tab is changed the title of this frame reflects the topic and the name of the room in the tab

Method Detail

removeTabListeners

public void removeTabListeners()
Removes all event listeners from the TabbedPanel


dockBuddyList

public void dockBuddyList(BuddyList list)
Docks the BuddyList to this frame

Parameters:
list - The buddy list to dock

undock

public void undock()
Undocks the BuddyList from this tab frame


markTab

public void markTab(TabFramePanel panel,
                    boolean messageToMe)
Marks a tab for a TabFramePanel if it's not already selected

Parameters:
panel - the panel to mark

clearTab

public void clearTab(TabFramePanel panel)
Clears the tab message queue count


saveStates

public void saveStates()
Saves the size of the chat frame


switchTab

public void switchTab(TabbedPanel tabPane)
Switches the current tab in the tab frame


addFrameListener

public void addFrameListener(BuddyStatus buddy)

updateStyles

public void updateStyles(java.awt.Font font)
Updates the font in all the chat conversationareas

Parameters:
font - the font to update to

setStatus

public void setStatus(org.jivesoftware.smack.packet.Presence.Mode mode,
                      java.lang.String status)
Set the status in all the rooms

Parameters:
mode - the presence mode
status - the status string

closeHandler

public void closeHandler()
This not only closes the window, but it leaves all the rooms like it should


isRoomOpen

public boolean isRoomOpen(java.lang.String server)
Since there is no way to check to see if a message is from someone in a chat room, we check to see if the message is coming from the same server as a chatroom we are in.

Parameters:
server - the server to check

getChatPanel

public ChatRoomPanel getChatPanel(java.lang.String server)
If there is a chatroom open in this frame with a server name, this returns the ChatRoomPanel that contains it

Parameters:
server - the name of the room to get the ChatRoomPanel for
Returns:
the ChatRoomPanel requested, or null if it could not be found

removePanel

public void removePanel(TabFramePanel panel)
This leaves a chatroom and removes the associated ChatRoomPanel from the TabPane

Parameters:
window - the room to leave

setSubject

public void setSubject(ChatRoomPanel window)
Sets the subject of a ChatRoomPanel based on a message that was received from the GroupChat server with <subject> in it

Parameters:
window - the window to set the subject for

contains

public boolean contains(TabFramePanel panel)
Parameters:
panel - the panel to check
Returns:
true if the tab panel is currently displayed in the tab frame

tabsLeft

public int tabsLeft()
Returns the number of rooms currently open in the frame

Returns:
the number of rooms still open

addPanel

public void addPanel(TabFramePanel panel)
Adds a chat room to the frame

Parameters:
window - the room to add

resetCloseButtons

public void resetCloseButtons(boolean selected)
Revalidates the close button on a tab

Parameters:
selected - whether or not this tab is selected

leaveAll

public void leaveAll()
Leaves all chatrooms (for if they close the window)


getTabPane

public TabbedPanel getTabPane()
Returns:
Returns the tabPane.