net.sf.colossus.gui
Class BattleBoard

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by net.sf.colossus.guiutil.KFrame
                          extended by net.sf.colossus.gui.BattleBoard
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public final class BattleBoard
extends KFrame

A GUI representation of a battle in the game. TODO this is split of the former BattleMap which did everything by itself. The split is not really completed, there is still code which potentially belongs into the other class.

See Also:
Serialized Form

Nested Class Summary
private static class BattleBoard.DicePanel
           
private  class BattleBoard.InfoPanel
           
private  class BattleBoard.TurnPanel
           
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
private  boolean alreadyConceded
           
private  BattleMap battleMap
           
private static java.lang.String concedeBattle
           
private  javax.swing.AbstractAction concedeBattleAction
           
private static int count
           
private  BattleBoard.DicePanel dicePanel
           
private static java.lang.String doneWithPhase
           
private  javax.swing.AbstractAction doneWithPhaseAction
           
private  ClientGUI gui
           
private  javax.swing.JMenu helpMenu
           
private  BattleBoard.InfoPanel infoPanel
           
private  java.lang.String infoText
           
private static java.util.logging.Logger LOGGER
           
private  javax.swing.JMenuBar menuBar
           
private  javax.swing.JMenu phaseMenu
           
private  SaveWindow saveWindow
           
private  int selectedCritterTag
          tag of the selected critter, or -1 if no critter is selected.
private static java.lang.String showTerrainHazard
           
private  javax.swing.AbstractAction showTerrainHazardAction
           
private static java.lang.String undoAll
           
private  javax.swing.AbstractAction undoAllAction
           
private static java.lang.String undoLast
           
private  javax.swing.AbstractAction undoLastAction
           
 
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
BattleBoard(ClientGUI gui, Engagement engagement)
           
 
Method Summary
private  void actOnCritter(GUIBattleChit battleChit)
           
private  void actOnHex(BattleHex hex)
           
 void actOnHitsSet(BattleHex battleHex)
           
private  void actOnMisclick()
           
 void actOnPendingBattleMoveOver()
           
private  void actOnWindowClosingAttempt()
           
 void addDiceResults(java.lang.String strikerDesc, java.lang.String targetDesc, int targetNumber, java.util.List<java.lang.String> rolls)
           
 void alignChits(BattleHex battleHex)
           
private  void alignChits(java.util.Set<BattleHex> battleHexes)
           
private  boolean confirmLeavingCreaturesOffboard()
           
private  void disableDoneButton()
           
 void dispose()
           
private  void enableDoneButton()
           
private  GUIBattleChit getBattleChitAtPoint(java.awt.Point point)
          Return the BattleChit containing the given point, or null if none does.
 BattleHex getBattleHexByLabel(java.lang.String hexLabel)
           
private  Client getClient()
           
private  GameClientSide getGame()
           
private  java.lang.String getInfoText()
           
private  void handleMousePressed(GUIBattleChit battleChit, GUIBattleHex hex)
           
 void highlightCrittersWithTargets()
          Select hexes containing critters that have valid strike targets.
 void highlightMobileCritters()
          Select all hexes containing critters eligible to move.
private  void highlightMoves(BattleCritter critter)
           
 void highlightPossibleCarries(java.util.Set<BattleHex> set)
          Highlight all hexes to which carries could be applied
private  void highlightStrikes(BattleUnit battleUnit)
          Highlight all hexes with targets that the critter can strike.
private  boolean isFightPhase()
           
private  boolean isMovePhase()
           
private  boolean isMyBattleTurn()
           
private  boolean isMyTitanOffboard()
           
private  void repaintHex(BattleHex battleHex)
           
 void reqFocus()
           
 void rescale()
           
private  void setBattleMarkerLocation(boolean isDefender, java.lang.String hexLabel)
           
private  void setDefaultCursor()
           
private  void setupActions()
           
(package private)  void setupFightMenu()
           
private  void setupHelpMenu()
           
private  void setupIcon()
           
 void setupMoveMenu()
           
 void setupRecruitMenu()
           
 void setupSummonMenu()
           
private  void setupTopMenu()
           
private  void setWaitCursor()
           
 java.lang.String toString()
           
 void unselectAllHexes()
           
 void unselectHex(BattleHex hex)
           
 void updatePhaseAndTurn()
           
 
Methods inherited from class net.sf.colossus.guiutil.KFrame
centerOnScreen, setVisible, useSaveWindow
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

LOGGER

private static final java.util.logging.Logger LOGGER

count

private static int count

menuBar

private javax.swing.JMenuBar menuBar

phaseMenu

private javax.swing.JMenu phaseMenu

helpMenu

private javax.swing.JMenu helpMenu

infoPanel

private final BattleBoard.InfoPanel infoPanel

dicePanel

private final BattleBoard.DicePanel dicePanel

gui

private final ClientGUI gui

infoText

private final java.lang.String infoText

selectedCritterTag

private int selectedCritterTag
tag of the selected critter, or -1 if no critter is selected.


undoLast

private static final java.lang.String undoLast
See Also:
Constant Field Values

undoAll

private static final java.lang.String undoAll
See Also:
Constant Field Values

doneWithPhase

private static final java.lang.String doneWithPhase
See Also:
Constant Field Values

concedeBattle

private static final java.lang.String concedeBattle
See Also:
Constant Field Values

showTerrainHazard

private static final java.lang.String showTerrainHazard
See Also:
Constant Field Values

undoLastAction

private javax.swing.AbstractAction undoLastAction

undoAllAction

private javax.swing.AbstractAction undoAllAction

doneWithPhaseAction

private javax.swing.AbstractAction doneWithPhaseAction

concedeBattleAction

private javax.swing.AbstractAction concedeBattleAction

showTerrainHazardAction

private javax.swing.AbstractAction showTerrainHazardAction

saveWindow

private final SaveWindow saveWindow

battleMap

private final BattleMap battleMap

alreadyConceded

private boolean alreadyConceded
Constructor Detail

BattleBoard

public BattleBoard(ClientGUI gui,
                   Engagement engagement)
Method Detail

handleMousePressed

private void handleMousePressed(GUIBattleChit battleChit,
                                GUIBattleHex hex)

actOnWindowClosingAttempt

private void actOnWindowClosingAttempt()

setBattleMarkerLocation

private void setBattleMarkerLocation(boolean isDefender,
                                     java.lang.String hexLabel)

getClient

private Client getClient()

getGame

private GameClientSide getGame()

isFightPhase

private boolean isFightPhase()

isMovePhase

private boolean isMovePhase()

isMyBattleTurn

private boolean isMyBattleTurn()

getInfoText

private java.lang.String getInfoText()

setupActions

private void setupActions()

setupTopMenu

private void setupTopMenu()

setupHelpMenu

private void setupHelpMenu()

setupSummonMenu

public void setupSummonMenu()

setupRecruitMenu

public void setupRecruitMenu()

setupMoveMenu

public void setupMoveMenu()

setupFightMenu

void setupFightMenu()

updatePhaseAndTurn

public void updatePhaseAndTurn()

setupIcon

private void setupIcon()

getBattleChitAtPoint

private GUIBattleChit getBattleChitAtPoint(java.awt.Point point)
Return the BattleChit containing the given point, or null if none does.


alignChits

public void alignChits(BattleHex battleHex)

alignChits

private void alignChits(java.util.Set<BattleHex> battleHexes)

highlightMobileCritters

public void highlightMobileCritters()
Select all hexes containing critters eligible to move.


highlightMoves

private void highlightMoves(BattleCritter critter)

highlightCrittersWithTargets

public void highlightCrittersWithTargets()
Select hexes containing critters that have valid strike targets.


highlightStrikes

private void highlightStrikes(BattleUnit battleUnit)
Highlight all hexes with targets that the critter can strike.


highlightPossibleCarries

public void highlightPossibleCarries(java.util.Set<BattleHex> set)
Highlight all hexes to which carries could be applied


setWaitCursor

private void setWaitCursor()

setDefaultCursor

private void setDefaultCursor()

confirmLeavingCreaturesOffboard

private boolean confirmLeavingCreaturesOffboard()

isMyTitanOffboard

private boolean isMyTitanOffboard()

actOnCritter

private void actOnCritter(GUIBattleChit battleChit)

actOnHex

private void actOnHex(BattleHex hex)

actOnMisclick

private void actOnMisclick()

actOnPendingBattleMoveOver

public void actOnPendingBattleMoveOver()

rescale

public void rescale()

reqFocus

public void reqFocus()

enableDoneButton

private void enableDoneButton()

disableDoneButton

private void disableDoneButton()

unselectAllHexes

public void unselectAllHexes()

unselectHex

public void unselectHex(BattleHex hex)

actOnHitsSet

public void actOnHitsSet(BattleHex battleHex)

repaintHex

private void repaintHex(BattleHex battleHex)

addDiceResults

public void addDiceResults(java.lang.String strikerDesc,
                           java.lang.String targetDesc,
                           int targetNumber,
                           java.util.List<java.lang.String> rolls)

getBattleHexByLabel

public BattleHex getBattleHexByLabel(java.lang.String hexLabel)

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

dispose

public void dispose()
Overrides:
dispose in class KFrame