Class RemoteScrabble

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byRemoteScrabble
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class RemoteScrabble
extends javax.swing.JFrame
implements java.awt.event.ActionListener

RemoteScrabble describes the player's GUI interface for the remote Scrabble game. All action listeners are defined. The Scrabble game is i18n-ed. Most methods in RemoteScrabble relate to how the user interacts with the GUI, however RemoteScrabble plays a more active roll in the course of a game than LocalScrabble, and in certain specific circumstances acts as a relay for a client so that Game information may be updated (e.g. clientLeftGame(). Most game related methods are contained within different classes, notably Game and ScrabbleBuilder. RemoteScrabble utilises some remote specific methods within Game, Bag and Scrabble.

Version:
2.0
Author:
3GP01 - Hardev Bhamra, Deepak Chandarana, James Tompkin
See Also:
Game, ScrabbleBuilder, Scrabble, Serialized Form

Field Summary
 
Fields inherited from class javax.swing.JFrame
EXIT_ON_CLOSE
 
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
RemoteScrabble()
          RemoteScrabble creates and initialises a game, ready to accept response from the clients.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
 void clientLeftGame(int id)
          Locks out a player if they have left the game.
static void createAndShowGUI(int t, int id)
          Creates the RemoteScrabble instance, displays the player's GUI interface.
 void endPlayerTurn(Move move, int option)
          Whenever a player ends their turn, this method is called.
 Game getGame()
          Returns the current game g running on RemoteScrabble.
static RemoteScrabble getRemoteScrabble()
          Returns RemoteScrabble.
 Scrabble getScrabble()
          Gets the current Scrabble game.
 void saveDataToFile()
          Saves game history to .XML file.
 void setMessageLine(java.lang.String s)
          Sets the message line's text.
 void startRemoteGame(long seed)
          Called at start of game to initialise: the random bag racks for all players update all player racks, etc
 java.lang.String toXml()
          Returns a string containing the current history, as defined in variable history.
 
Methods inherited from class javax.swing.JFrame
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, update
 
Methods inherited from class java.awt.Frame
addNotify, 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, 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, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

RemoteScrabble

public RemoteScrabble()
RemoteScrabble creates and initialises a game, ready to accept response from the clients.

Method Detail

getScrabble

public Scrabble getScrabble()
Gets the current Scrabble game.

Returns:
Scrabble

getRemoteScrabble

public static RemoteScrabble getRemoteScrabble()
Returns RemoteScrabble.

Returns:
RemoteScrabble

getGame

public Game getGame()
Returns the current game g running on RemoteScrabble.

Returns:
Game

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

clientLeftGame

public void clientLeftGame(int id)
Locks out a player if they have left the game. This makes it unable for that player to have a turn by skipping them out of the game.

Parameters:
id - The unique identifier of the player who left.

endPlayerTurn

public void endPlayerTurn(Move move,
                          int option)
Whenever a player ends their turn, this method is called. It is a general 'perform and reset' method that encapsulates all tasks that must be completed when a turn is ended.

Parameters:
move - The Move the player has ended with.
option - Option allows for certain dialogs to be displayed or not depending on the level of user feedback required.

startRemoteGame

public void startRemoteGame(long seed)
Called at start of game to initialise: the random bag racks for all players update all player racks, etc

Parameters:
seed - The seed that is received from the server, for repeatable randomization of bag.

setMessageLine

public void setMessageLine(java.lang.String s)
Sets the message line's text. The message line resids on the south of the main frame, to the left. It displays non-crucial information to the client in a passive way.

Parameters:
s - String input, desired message line text.

toXml

public java.lang.String toXml()
Returns a string containing the current history, as defined in variable history.

Returns:
String

saveDataToFile

public void saveDataToFile()
Saves game history to .XML file.


createAndShowGUI

public static void createAndShowGUI(int t,
                                    int id)
Creates the RemoteScrabble instance, displays the player's GUI interface.

Parameters:
t - The turn the game should start on - this is which player starts.
id - The uid of the client game.