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, IJogreClientGUI, ImageObserver, ITable, MenuContainer, Observer, RootPaneContainer, Serializable, WindowConstants

public abstract class JogreClientFrame
extends JFrame
implements IClient, Observer, IJogreClientGUI

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.3
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(String[] args)
          Constructor for a client frame.
 
Method Summary
 void connectOK(ClientConnectionThread conn)
          Method which is called when a client connects successfully.
 ChatPrivateDialog getChatPrivateDialog(String usernameTo, ClientConnectionThread conn)
          Delegate method for receiving a private chat message.
abstract  JogreTableFrame getJogreTableFrame(TableConnectionThread conn)
          This must be overwritten to get a handle on the correct table frame.
 void getPropertyDialog(ClientConnectionThread conn)
          Delegate method for popping up a game property dialog box
 void getRulesDialog()
          Delegate method for creating the rules dialog.
 void getUserDialog(User user)
          Delegate method for create a user dialog.
 void parseCommandLineArguments(String[] args)
          This method parses the commands handed in from the command prompt.
 void receiveGameMessage(XMLElement message)
          Delegate method for receiving a game message.
 void receiveTableMessage(XMLElement message)
          Delegate method for receiving a table message.
 void setUITitle(String title)
          Set the title of this frame.
 void update(Observable o, Object arg)
          Delegate method for updating the panel.
 
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(String[] args)
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.

Specified by:
getJogreTableFrame in interface IJogreClientGUI
Parameters:
conn - Connection to server.
Returns:
Return the correct table frame.

parseCommandLineArguments

public void parseCommandLineArguments(String[] args)

This method parses the commands handed in from the command prompt. For example:

-lang=fr

Parameters:
args - Additional arguments from the command line.

connectOK

public void connectOK(ClientConnectionThread conn)
Method which is called when a client connects successfully.

Specified by:
connectOK in interface IJogreClientGUI
Parameters:
conn - Client connection thread.

setUITitle

public void setUITitle(String title)
Set the title of this frame.

Specified by:
setUITitle in interface IJogreClientGUI
Parameters:
title - Title to set.
See Also:
IJogreClientGUI.setUITitle(java.lang.String)

getChatPrivateDialog

public ChatPrivateDialog getChatPrivateDialog(String usernameTo,
                                              ClientConnectionThread conn)
Delegate method for receiving a private chat message.

Specified by:
getChatPrivateDialog in interface IJogreClientGUI
Parameters:
usernameTo - Username to talk to.
conn - Connection to the server.
Returns:
Private chat dialog.
See Also:
IJogreClientGUI.getChatPrivateDialog(java.lang.String, org.jogre.client.ClientConnectionThread)

getPropertyDialog

public void getPropertyDialog(ClientConnectionThread conn)
Delegate method for popping up a game property dialog box

Specified by:
getPropertyDialog in interface IJogreClientGUI
Parameters:
conn - Connection to server.
See Also:
org.jogre.client.awt.IJogreClientGUI#getPropertyDialog(org.jogre.client.ClientConnectionThread, org.jogre.common.util.GameProperties)

getUserDialog

public void getUserDialog(User user)
Delegate method for create a user dialog.

Specified by:
getUserDialog in interface IJogreClientGUI
See Also:
IJogreClientGUI.getUserDialog(org.jogre.common.User)

getRulesDialog

public void getRulesDialog()
Delegate method for creating the rules dialog.

Specified by:
getRulesDialog in interface IJogreClientGUI

receiveGameMessage

public void receiveGameMessage(XMLElement message)
Delegate method for receiving a game message.

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

receiveTableMessage

public void receiveTableMessage(XMLElement message)
Delegate method for receiving a table message.

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

update

public void update(Observable o,
                   Object arg)
Delegate method for updating the panel.

Specified by:
update in interface Observer
See Also:
Observer.update(java.util.Observable, java.lang.Object)