net.sf.colossus.gui
Class EngagementResults

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by net.sf.colossus.guiutil.KDialog
                          extended by net.sf.colossus.gui.EngagementResults
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

final class EngagementResults
extends KDialog

Post-engagement status dialog. It collects the results of all battles that are send by 'addData()`.

Author:
Towi, David Ripton

Nested Class Summary
private  class EngagementResults.Engagement
          Stores information about an engagement.
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
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 advanceToLast
           
private  javax.swing.JLabel attackerIdLabel
           
private  int current
           
private  javax.swing.JLabel defenderIdLabel
           
private  java.util.List<EngagementResults.Engagement> engagementLog
           
private  javax.swing.JButton firstButton
           
private  javax.swing.JButton lastButton
           
private  int lastSeen
           
private  boolean moveNext
           
private  javax.swing.JButton nextButton
           
private  IOptions options
           
private  IOracle oracle
           
private  javax.swing.JPanel panelCenter
           
private  javax.swing.JButton prevButton
           
private  javax.swing.JLabel resultLabel
           
private  SaveWindow saveWindow
           
private  javax.swing.JLabel summaryLabel
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
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, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
EngagementResults(javax.swing.JFrame frame, IOracle oracle, IOptions options)
          Inits the dialog, not opens it.
 
Method Summary
(package private)  void addData(Legion winner, java.lang.String method, int points, int turns, java.util.List<java.lang.String> attackerStartingContents, java.util.List<java.lang.String> defenderStartingContents, java.util.List<java.lang.Boolean> attackerStartingCertainities, java.util.List<java.lang.Boolean> defenderStartingCertainities, boolean attackersTurn)
          Adds a log record to the list of logged engagements.
private  java.awt.Component createLegionComponent(Legion legion, java.util.List<java.lang.String> imageNames, java.util.List<java.lang.Boolean> certainList, boolean isDefender)
           
 void dispose()
           
(package private)  void maybeShow()
           
private  void setupGUI()
          like toString into a swing component.
 void setVisible(boolean visible)
           
private  void showCurrent()
           
 
Methods inherited from class net.sf.colossus.guiutil.KDialog
assertEDT, centerOnScreen, centerOnScreen, getUpperRightCorner, lowerRightCorner, placeRelative, useSaveWindow
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, show, toBack
 
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, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, remove, 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, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

oracle

private IOracle oracle

options

private IOptions options

current

private int current

lastSeen

private int lastSeen

engagementLog

private final java.util.List<EngagementResults.Engagement> engagementLog

saveWindow

private final SaveWindow saveWindow

firstButton

private javax.swing.JButton firstButton

prevButton

private javax.swing.JButton prevButton

nextButton

private javax.swing.JButton nextButton

lastButton

private javax.swing.JButton lastButton

summaryLabel

private javax.swing.JLabel summaryLabel

resultLabel

private javax.swing.JLabel resultLabel

attackerIdLabel

private javax.swing.JLabel attackerIdLabel

defenderIdLabel

private javax.swing.JLabel defenderIdLabel

panelCenter

private javax.swing.JPanel panelCenter

moveNext

private boolean moveNext

advanceToLast

private boolean advanceToLast
Constructor Detail

EngagementResults

EngagementResults(javax.swing.JFrame frame,
                  IOracle oracle,
                  IOptions options)
Inits the dialog, not opens it.

Parameters:
frame - is the parent window
oracle - gives us information
Method Detail

addData

void addData(Legion winner,
             java.lang.String method,
             int points,
             int turns,
             java.util.List<java.lang.String> attackerStartingContents,
             java.util.List<java.lang.String> defenderStartingContents,
             java.util.List<java.lang.Boolean> attackerStartingCertainities,
             java.util.List<java.lang.Boolean> defenderStartingCertainities,
             boolean attackersTurn)
Adds a log record to the list of logged engagements. Now the dialog moves to the new engagement if either - the engagement happens in the attacker's turn - it is the first one after the attacker's turn The idea behind this design is that the dialog content moves along with the player when the player is in charge of the game tempo, but if the player is only passive the engagements stop moving until the player takes control by either continuing to play or by clicking the next button. TODO: see if xxxStartingCertainities can somehow get values of better quality.

Parameters:
attackerStartingContents - - imagew names, result from oracle.getLegionImageNames
defenderStartingContents - - imagew names, result from oracle.getLegionImageNames
attackerStartingCertainities - - list of Booleans, for overlay ?-marks
defenderStartingCertainities - - list of Booleans, for overlay ?-marks
attackersTurn - should be set to true if the engagement happened in the attackers master board turn. The engagement dialog will be moved to this engagement, the same will happen with the next

setupGUI

private void setupGUI()
like toString into a swing component. the current rough layout is:
  ### Content:BorderLayout ########################
  # +--North:GridLayout(n,1)--------------------+ #
  # | Label_1                                   | #
  # | Label_2                                   | #
  # | ...                                       | #
  # | Label_n                                   | #
  # +-------------------------------------------+ #
  #===============================================#
  # +West:Grid(4,1)-+  %  +-Center:Grid(4,1)----+ #
  # | Label_bef_att |  %  | ImageList_bef_att   | #
  # | Label_bef_def |  %  | ImageList_bef_def   | #
  # | Label_aft_att |  %  | ImageList_aft_att   | #
  # | Label_aft_def |  %  | ImageList_aft_def   | #
  # +---------------+  %  +---------------------+ #
  #===============================================#
  # +-South:FlowLayout(left)--------------------+ #
  # |  -buttons-                                | #
  # +-------------------------------------------+ #
  #################################################
 


createLegionComponent

private java.awt.Component createLegionComponent(Legion legion,
                                                 java.util.List<java.lang.String> imageNames,
                                                 java.util.List<java.lang.Boolean> certainList,
                                                 boolean isDefender)

showCurrent

private void showCurrent()

maybeShow

void maybeShow()

dispose

public void dispose()
Overrides:
dispose in class KDialog

setVisible

public void setVisible(boolean visible)
Overrides:
setVisible in class KDialog