ggz.tictactoe
Class TicTacToePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ggz.games.GamePanel
                      extended by ggz.tictactoe.TicTacToePanel
All Implemented Interfaces:
ModEventHandler, BoardListener, TicTacToeListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class TicTacToePanel
extends GamePanel
implements TicTacToeListener, BoardListener

Player 0 = 0 Player 1 = X

Author:
Helg.Bredow
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class ggz.games.GamePanel
GamePanel.SeatBootAction, GamePanel.SeatBotAction, GamePanel.SeatOpenAction, GamePanel.SeatSitAction, GamePanel.SeatStandAction, GamePanel.TableChatAction
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  BoardPanel board
           
protected  Client client
           
protected  javax.swing.JLabel[] seatLabel
           
protected  javax.swing.JLabel statusPanel
           
 
Fields inherited from class ggz.games.GamePanel
chatPanel, ggzMod, playerListPanel
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TicTacToePanel()
           
 
Method Summary
 void boardChanged(char[] boardData)
          Called when the board has changed and needs to be refreshed.
 void cancelMove()
          Called when user input is not longer available because a player has left the game and the game has gone into a wait state and won't accept the move.
 void cellClicked(int cellIndex)
           
 void gameStatus(java.lang.String message)
           
protected  java.awt.Dimension getPreferredWindowSize()
           
 void handleSeat(Seat oldSeat, Seat newSeat)
          This method is redundant but it's where seath information is received from ModGame.
 void handleServer(java.net.Socket fd)
          A new server connection has been made.
 void moveRequested()
           
 void seatChanged(int seatNum)
           
 
Methods inherited from class ggz.games.GamePanel
getChatPanel, handleChat, handleError, handleException, handleInfo, handlePlayer, handleSpectatorSeat, handleState, handleStats, init, invokeAndWait, quit
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

client

protected Client client

board

protected BoardPanel board

statusPanel

protected javax.swing.JLabel statusPanel

seatLabel

protected javax.swing.JLabel[] seatLabel
Constructor Detail

TicTacToePanel

public TicTacToePanel()
Method Detail

getPreferredWindowSize

protected java.awt.Dimension getPreferredWindowSize()
Overrides:
getPreferredWindowSize in class GamePanel

handleServer

public void handleServer(java.net.Socket fd)
                  throws java.io.IOException
Description copied from interface: ModEventHandler
A new server connection has been made. This event occurs when a new connection to the game server has been made, either by the core client or by the game client itself. The socket is passed as the event's data.

Specified by:
handleServer in interface ModEventHandler
Overrides:
handleServer in class GamePanel
Throws:
java.io.IOException
See Also:
ModGame.connect()

boardChanged

public void boardChanged(char[] boardData)
Description copied from interface: TicTacToeListener
Called when the board has changed and needs to be refreshed.

Specified by:
boardChanged in interface TicTacToeListener

seatChanged

public void seatChanged(int seatNum)
Specified by:
seatChanged in interface TicTacToeListener

moveRequested

public void moveRequested()
Specified by:
moveRequested in interface TicTacToeListener

cancelMove

public void cancelMove()
Called when user input is not longer available because a player has left the game and the game has gone into a wait state and won't accept the move.

Specified by:
cancelMove in interface TicTacToeListener

gameStatus

public void gameStatus(java.lang.String message)
Specified by:
gameStatus in interface TicTacToeListener

handleSeat

public void handleSeat(Seat oldSeat,
                       Seat newSeat)
This method is redundant but it's where seath information is received from ModGame. The idea is that game clients will receive information about players in the game via the Mod interface rather than from the game. I'm not sure this works so well at the moment, one of the reason is that seats for bots don't include the player name so if clients try and use their own name then it will differe amongst clients, possibly causing confusion for players and spectators.

Specified by:
handleSeat in interface ModEventHandler
Overrides:
handleSeat in class GamePanel
Parameters:
oldSeat - Old seat information at that seat number.
newSeat - New seat information at that seat number.

cellClicked

public void cellClicked(int cellIndex)
Specified by:
cellClicked in interface BoardListener