org.jogre.awt
Class JogreTableFrame

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--org.jogre.awt.JogreTableFrame
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, RootPaneContainer, Serializable, WindowConstants

public abstract class JogreTableFrame
extends JFrame

The important JogreTableFrame which is where each game is played. Each time a new table is created one of these frames appear. This class creates the buttons at the top of the screen, the player list at the bottom left and the message chat box on the bottom right. The main game area is set in the sub classes e.g. ChessTableFrame using the setGamePanel (JPanel) method.

To use this class a class must extend it e.g. ChesTableFrame. Its fields must include a data model (JogreModel e.g. ChessModel), a view of the data (JogreComponent e.g. ChessBoardComponent) and a controller (JogreController e.g. ChessController) for understanding mouse movements etc on the view.

The constructor in the sub class should initialise these MVC fields and MUST call the setMVC (model, view, controller) method as this class makes use of these.

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

Inner classes inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent
 
Field Summary
protected  ClientConnectionThread conn
           
protected  JogreController gameController
           
protected  JogreComponent gameMainView
           
protected  JogreModel gameModel
           
protected  JButton offerDrawButton
           
protected  JButton resignButton
           
protected  JButton sitButton
           
protected  JButton standButton
           
protected  JButton startButton
           
protected  int tableNum
           
protected  boolean tableUpdateRefreshesModel
          Boolean to indicate that a table update will refresh the model in that particular table.
 
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, 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
JogreTableFrame(ClientConnectionThread conn, int tableNum)
          Constructor to a standard JogreGameFrame.
 
Method Summary
 void addToTopPanel(Component component)
          Method to add additional components (such as buttons etc) to the top right hand side of the screen.
 void gameOver(CommGameOver commGameOver)
          Create game over.
 JogreController getController()
          Accessor for the game controller.
 MessageComponent getMessageComponent()
          Accessor for the small message box with each table.
 JogreModel getModel()
          Accessor for the game controller.
 void leaveTable()
          Player leaves the table.
 void receiveOfferDraw(CommOfferDraw offerDraw)
           
 void setGamePanel(JPanel gamePanel)
          Set the empty panel in the screen equal to the game panel.
 void setTableUpdateRefreshesModel(boolean value)
          This method sets a boolean, which if set to true will result in the JogreModel refreshing its componets which are observing it everytime the table object in ClientConnectionThread updates itself.
 void setupMVC(JogreModel model, JogreComponent mainView, JogreController controller)
          Sets up the MVC for this table.
 void startGame()
          Start the game.
 void updateTable()
          The table object has been updated.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
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
 

Field Detail

tableUpdateRefreshesModel

protected boolean tableUpdateRefreshesModel
Boolean to indicate that a table update will refresh the model in that particular table.

conn

protected ClientConnectionThread conn

tableNum

protected int tableNum

gameModel

protected JogreModel gameModel

gameController

protected JogreController gameController

gameMainView

protected JogreComponent gameMainView

sitButton

protected JButton sitButton

standButton

protected JButton standButton

startButton

protected JButton startButton

offerDrawButton

protected JButton offerDrawButton

resignButton

protected JButton resignButton
Constructor Detail

JogreTableFrame

public JogreTableFrame(ClientConnectionThread conn,
                       int tableNum)
Constructor to a standard JogreGameFrame. NOTE: Every contructor of a sub class of this must call the setMVC (model, view, controller) method.
Parameters:
conn - Client connection thread which holds the link to the server, user and table lists.
tableNum - Table number.
Method Detail

setTableUpdateRefreshesModel

public void setTableUpdateRefreshesModel(boolean value)

This method sets a boolean, which if set to true will result in the JogreModel refreshing its componets which are observing it everytime the table object in ClientConnectionThread updates itself.

This only needs to be set if a visual component uses data from the Table object (from TableList) in the ClientConnectionThread to show the current player or the players name for example. The method updateTable() makes use of this boolean.

Parameters:
value -  

updateTable

public void updateTable()
The table object has been updated.

leaveTable

public void leaveTable()
Player leaves the table.

setGamePanel

public void setGamePanel(JPanel gamePanel)
Set the empty panel in the screen equal to the game panel.
Parameters:
gamePanel -  

addToTopPanel

public void addToTopPanel(Component component)
Method to add additional components (such as buttons etc) to the top right hand side of the screen.
Parameters:
component -  

getController

public JogreController getController()
Accessor for the game controller.
Returns:
 

getModel

public JogreModel getModel()
Accessor for the game controller.
Returns:
 

startGame

public void startGame()
Start the game.

getMessageComponent

public MessageComponent getMessageComponent()
Accessor for the small message box with each table.
Returns:
 

setupMVC

public void setupMVC(JogreModel model,
                     JogreComponent mainView,
                     JogreController controller)
Sets up the MVC for this table. This method must be called from the constructor of any sub class of this class as this class refers to the JogreModel and JogreController.
Parameters:
model -  
mainView -  
controller -  

receiveOfferDraw

public void receiveOfferDraw(CommOfferDraw offerDraw)
Parameters:
offerDraw -  

gameOver

public void gameOver(CommGameOver commGameOver)
Create game over.
Parameters:
commGameOver -