Class 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

      Nested Classes 
      Modifier and Type Class Description
      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, java.awt.Window.Type
      • 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

      Fields 
      Modifier and Type Field Description
      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 java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      EngagementResults​(javax.swing.JFrame frame, IOracle oracle, IOptions options)
      Inits the dialog, not opens it.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (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 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, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, 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, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, 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

      • current

        private int current
      • lastSeen

        private int lastSeen
      • 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