org.jogre.client.awt
Class JogreClientFrame

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byorg.jogre.client.awt.JogreClientFrame
All Implemented Interfaces:
Accessible, IClient, ImageObserver, ITable, MenuContainer, RootPaneContainer, Serializable, WindowConstants

public abstract class JogreClientFrame
extends JFrame
implements IClient

This abstract class declares the main game frame where a user can see users of the left, tables on the top right and a broadcasting style message chat box on the bottom right. To create a new client frame for a game, such as Chess for example, a class called e.g. ChessClientFrame extends this class and implements the following abstract methods:

	 public abstract JogreTableFrame getJogreTableFrame (ClientConnectionThread conn, Table table);
 

For the chess example this would look something like the following:

 *
 public JogreTableFrame getJogreTableFrame (TableConnectionThread conn) 
 {
     // return a "Chess" table frame when join/creating a new table.
     return new ChessTableFrame (conn, table);
 }
 

Version:
Alpha 0.2.1
Author:
Bob Marks
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, 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
JogreClientFrame()
          Constructor for a client frame.
 
Method Summary
abstract  JogreTableFrame getJogreTableFrame(TableConnectionThread conn)
          This must be overwritten to get a handle on the correct table frame.
protected  ChatPrivateDialog getPrivateMessageComponent(String usernameTo)
          Returns a private message for a particular user and creates one if it doesn't already exist.
protected  JogreTableFrame getTableFrame(int tableNum)
          Overloaded version when you are sure that the table exists (other wise returns null).
protected  JogreTableFrame getTableFrame(Table table)
          Return the correct JogreTableFrame.
protected  boolean isPublicGame()
          Return true if the user has selected that he wants to play a public game.
 void receiveChat(CommChatGame chatMessage)
          Method which receives a message from the server (or user)
 void receiveConnection(CommGameConnect commConnect)
          Recieve connection from the server.
 void receiveGameMessage(XMLElement message)
          Recieve a message specific to a particular game.
 void receiveInvite(CommInvite invite)
          Recieve invite communications object.
protected  void receiveMessage(XMLElement message)
          Adapter method for receiving a custom message.
 void receiveTableMessage(XMLElement message)
          Recieve a table message and delegate it to the correct frame.
protected  void refreshTableFrame(Table table)
          Refresh the table.
 void tableListUpdated()
          Update the table list.
 void tableUpdated(int tableNum)
          Table updated.
 void userListUpdated()
          Method to update the user list.
 
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
 

Constructor Detail

JogreClientFrame

public JogreClientFrame()
Constructor for a client frame.

Method Detail

getJogreTableFrame

public abstract JogreTableFrame getJogreTableFrame(TableConnectionThread conn)
This must be overwritten to get a handle on the correct table frame.

Parameters:
conn - Connection to server.
Returns:
Return the correct table frame.

isPublicGame

protected boolean isPublicGame()
Return true if the user has selected that he wants to play a public game.

Returns:

receiveGameMessage

public void receiveGameMessage(XMLElement message)
Description copied from interface: IClient
Recieve a message specific to a particular game.

Specified by:
receiveGameMessage in interface IClient
Parameters:
message - Game message from server
See Also:
IClient.receiveGameMessage(nanoxml.XMLElement)

receiveMessage

protected void receiveMessage(XMLElement message)
Adapter method for receiving a custom message.

See Also:
ITable.receiveTableMessage(nanoxml.XMLElement)

receiveTableMessage

public void receiveTableMessage(XMLElement message)
Recieve a table message and delegate it to the correct frame.

Specified by:
receiveTableMessage in interface ITable
Parameters:
message - Message from server.
See Also:
ITable.receiveTableMessage(nanoxml.XMLElement)

receiveConnection

public void receiveConnection(CommGameConnect commConnect)
Recieve connection from the server.

Parameters:
commConnect - Game connect message object.

receiveChat

public void receiveChat(CommChatGame chatMessage)
Method which receives a message from the server (or user)

Parameters:
chatMessage - Chat message from user

userListUpdated

public void userListUpdated()
Method to update the user list.


tableListUpdated

public void tableListUpdated()
Update the table list.


tableUpdated

public void tableUpdated(int tableNum)
Table updated.

Parameters:
tableNum -

refreshTableFrame

protected void refreshTableFrame(Table table)
Refresh the table.

Parameters:
table -

getTableFrame

protected JogreTableFrame getTableFrame(Table table)
Return the correct JogreTableFrame. This method also adds a listener so that when it closes down it does so cleanly.

Parameters:
table - Specified table.
Returns:
Return a JogreTableFrame which has been stored in cauche

getTableFrame

protected JogreTableFrame getTableFrame(int tableNum)
Overloaded version when you are sure that the table exists (other wise returns null).

Parameters:
tableNum - Specified table number.
Returns:
Correct JogreTableFrame e.g. ChessTableFrame

receiveInvite

public void receiveInvite(CommInvite invite)
Recieve invite communications object.

Parameters:
invite -

getPrivateMessageComponent

protected ChatPrivateDialog getPrivateMessageComponent(String usernameTo)
Returns a private message for a particular user and creates one if it doesn't already exist.

Parameters:
usernameTo - Username of person being chatted to.
Returns:
Return a chat message component.