Package net.sf.colossus.gui
Class EngagementResults
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- net.sf.colossus.guiutil.KDialog
-
- 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
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
-
-
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.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
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 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, 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
-
-
-
-
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
-
-
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.getLegionImageNamesdefenderStartingContents
- - imagew names, result from oracle.getLegionImageNamesattackerStartingCertainities
- - list of Booleans, for overlay ?-marksdefenderStartingCertainities
- - list of Booleans, for overlay ?-marksattackersTurn
- 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()
-
setVisible
public void setVisible(boolean visible)
- Overrides:
setVisible
in classKDialog
-
-