ggz.games
Class GamePanel

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
All Implemented Interfaces:
ModEventHandler, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
CardGamePanel, TicTacToePanel

public class GamePanel
extends javax.swing.JPanel
implements ModEventHandler

Base class that the main UI panel for all games should inherit from. This class handles the communication with the game client.

Author:
Helg.Bredow
See Also:
Serialized Form

Nested Class Summary
protected  class GamePanel.SeatBootAction
           
protected  class GamePanel.SeatBotAction
           
protected  class GamePanel.SeatOpenAction
           
protected  class GamePanel.SeatSitAction
           
protected  class GamePanel.SeatStandAction
           
protected  class 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  ChatPanel chatPanel
           
protected  ModGame ggzMod
           
protected  SpectatorListPanel 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
protected GamePanel()
           
 
Method Summary
 ChatPanel getChatPanel()
           
protected  java.awt.Dimension getPreferredWindowSize()
           
 void handleChat(java.lang.String player, java.lang.String msg)
          A chat message event.
 void handleError(java.lang.String msg)
          An error has occurred This event occurs when a GGZMod error has occurred.
 void handleException(java.lang.Throwable e)
           
 void handleInfo(PlayerInfo info)
          Player information has arrived.
 void handlePlayer(java.lang.String name, boolean is_spectator, int seat_num)
          The player's seat status has changed.
 void handleSeat(Seat oldSeat, Seat newSeat)
          This is invoked when a message arrives from the core client.
 void handleServer(java.net.Socket fd)
          A new server connection has been made.
 void handleSpectatorSeat(SpectatorSeat oldSeat, SpectatorSeat newSeat)
          Invoked when a spectator leaves or joins.
 void handleState(ModState oldState)
          Module status changed.
 void handleStats()
          Players' stats have been updated.
 void init(ModGame mod)
           
 void invokeAndWait(java.lang.Runnable doRun)
           
 void 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

ggzMod

protected ModGame ggzMod

chatPanel

protected ChatPanel chatPanel

playerListPanel

protected SpectatorListPanel playerListPanel
Constructor Detail

GamePanel

protected GamePanel()
Method Detail

init

public void init(ModGame mod)
          throws java.io.IOException
Specified by:
init in interface ModEventHandler
Throws:
java.io.IOException

quit

public void quit()

getChatPanel

public ChatPanel getChatPanel()

handleChat

public void handleChat(java.lang.String player,
                       java.lang.String msg)
Description copied from interface: ModEventHandler
A chat message event. This event occurs when we receive a chat. The chat may have originated in another game client or from the GGZ client; in either case it will be routed to us. The chat information is passed as the event's data. Note that the chat may originate with a player or a spectator, and they may have changed seats or left the table by the time it gets to us.

Specified by:
handleChat in interface ModEventHandler

handleError

public void handleError(java.lang.String msg)
Description copied from interface: ModEventHandler
An error has occurred This event occurs when a GGZMod error has occurred. An error message will be passed as the event's data. GGZMod may attempt to recover from the error, but it is not guaranteed that the GGZ connection will continue to work after an error has happened.

Specified by:
handleError in interface ModEventHandler

handleState

public void handleState(ModState oldState)
Description copied from interface: ModEventHandler
Module status changed. This event occurs when the game's status changes. The old state (a ModState) is passed as the event's data.

Specified by:
handleState in interface ModEventHandler
See Also:
ModState

getPreferredWindowSize

protected java.awt.Dimension getPreferredWindowSize()

handlePlayer

public void handlePlayer(java.lang.String name,
                         boolean is_spectator,
                         int seat_num)
Description copied from interface: ModEventHandler
The player's seat status has changed. Invoked when information about the current player changes. e.g. When standing the player changes to a spectator or when changing seats the seat number changes. The old values are passed as parameters and to obtain the new values, call the accessor methods on the GGZMod.

Specified by:
handlePlayer in interface ModEventHandler

handleSeat

public void handleSeat(Seat oldSeat,
                       Seat newSeat)
This is invoked when a message arrives from the core client. In CardGamePanel, we handle player messages in alert_player() above, which is invoked when a message arrives from the game client.

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

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
Throws:
java.io.IOException
See Also:
ModGame.connect()

handleStats

public void handleStats()
Description copied from interface: ModEventHandler
Players' stats have been updated.

Specified by:
handleStats in interface ModEventHandler

handleInfo

public void handleInfo(PlayerInfo info)
Description copied from interface: ModEventHandler
Player information has arrived. Information has been requested about one or more players and it has now arrived. The event data is a PlayerInfo object or null if info about all players was requested.

Specified by:
handleInfo in interface ModEventHandler

handleSpectatorSeat

public void handleSpectatorSeat(SpectatorSeat oldSeat,
                                SpectatorSeat newSeat)
Description copied from interface: ModEventHandler
Invoked when a spectator leaves or joins. The seat name will be null when a spectator leaves and will contain the name of the spectator on join.

Specified by:
handleSpectatorSeat in interface ModEventHandler
newSeat - the new seat.

handleException

public void handleException(java.lang.Throwable e)

invokeAndWait

public void invokeAndWait(java.lang.Runnable doRun)