net.sf.colossus.gui
Class EventViewer

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.EventViewer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

final class EventViewer
extends KDialog

Event Revealing dialog. It collects all revealed events and displays all or only the recent ones of them.

Author:
Clemens Katzer

Nested Class Summary
 
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  Legion attacker
           
private  RevealEvent attackerEventLegion
           
private  boolean autoScroll
           
private  int bookmark
           
private  Client client
           
private  Player currentPlayer
           
private  Legion defender
           
private  RevealEvent defenderEventLegion
           
private  java.util.ArrayList<javax.swing.JPanel> displayQueue
           
static java.lang.String evAutoScroll
           
private  java.awt.Container eventPane
           
private  javax.swing.JScrollBar eventScrollBar
           
private  javax.swing.JScrollPane eventScrollPane
           
static java.lang.String evfAcquire
           
static java.lang.String evfLoser
           
static java.lang.String evfMoveRoll
           
static java.lang.String evfMulligan
           
static java.lang.String evfPlayerChange
           
static java.lang.String evfRecruit
           
static java.lang.String evfSplit
           
static java.lang.String evfSummon
           
static java.lang.String evfTeleport
           
static java.lang.String evfTurnChange
           
static java.lang.String evfWon
           
static java.lang.String evHideUndone
           
static java.lang.String evMaxTurns
           
private  int expireTurns
           
private  boolean hideUndoneEvents
           
private  RevealEvent lastAttackerEventLegion
           
private  RevealEvent lastDefenderEventLegion
           
private static java.util.logging.Logger LOGGER
           
private  RevealEvent loserLegion
           
private  java.lang.String maxString
           
private  int maxTurns
           
private  javax.swing.JComboBox maxTurnsDisplayExpiringBox
           
private  int mulliganOldRoll
           
private  IOptions options
           
private  javax.swing.Box settingsPane
           
private  boolean[] showEventType
           
private  java.util.List<RevealEvent> syncdEventList
           
private  int turnNr
           
private  boolean visible
           
private static java.lang.String WINDOW_TITLE
           
private  RevealEvent winnerLegion
           
 
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
EventViewer(javax.swing.JFrame frame, IOptions options, Client client)
          Inits the dialog, not necessarily displays it.
 
Method Summary
private  void addCheckbox(java.lang.String optname, java.awt.Container pane)
           
 void addCreature(Legion legion, CreatureType type, java.lang.String reason)
           
 void addEvent(RevealEvent e)
           
private  void addEventToEventPane(RevealEvent e)
           
private  void addEventToList(RevealEvent e)
           
 void cancelReinforcement(CreatureType creature, int turn)
           
 void cleanup()
           
private  void displayFromQueue()
           
 void dispose()
           
private  Player getActivePlayer()
           
private  boolean getBoolOption(java.lang.String name, boolean defaultVal)
           
private  void initExpireTurnsFromOptions()
           
private  boolean isEventRelevant(RevealEvent e)
           
private  boolean isEventTooOld(RevealEvent e)
           
 void newCreatureRevealEvent(int eventType, Legion legion1, CreatureType creature, Legion legion2)
           
private  void newEvent(int eventType, Legion legion1, java.util.ArrayList<RevealedCreature> rcList, Legion legion2)
           
private  void newRollEvent(int eventType, int roll1, int roll2)
           
 void newSplitEvent(int turnNr, Legion legion1, java.util.ArrayList<RevealedCreature> rcList, Legion legion2)
           
private  void postAddEventActions()
           
 void purgeOldEvents()
           
private  void queueForDisplaying(javax.swing.JPanel eventPanel)
           
private  void queueSignalRemoveAllForDisplaying()
          Remove all pending events, and queue a null event to signal the displayer to remove all from panel first before adding again.
 void recruitEvent(Legion legion, CreatureType recruit, java.util.List<CreatureType> recruiters, java.lang.String reason)
           
 void removeCreature(Legion legion, CreatureType type, java.lang.String reason)
           
 void revealCreatures(Legion legion, java.util.List<CreatureType> creatureTypes, java.lang.String reason)
           
 void revealEngagedCreatures(java.util.List<CreatureType> creatures, boolean isAttacker, java.lang.String reason)
           
 void setCreatureDead(BattleUnit battleUnit)
           
 void setMulliganOldRoll(int roll)
           
private  void setupGUI()
           
 void setVisible(boolean visible)
           
 void setVisibleMaybe()
           
 void tellEngagement(Legion attacker, Legion defender, int turnNumber)
           
 void tellEngagementResults(Legion winner, java.lang.String method, int turns)
           
 void tellMovementRoll(int roll)
           
private  void triggerDisplaying()
           
 void turnOrPlayerChange(int turnNr, Player player)
           
 void undoEvent(int type, Legion parent, Legion child, int turn)
           
private  void updatePanels(boolean forceAll)
           
 
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

LOGGER

private static final java.util.logging.Logger LOGGER

WINDOW_TITLE

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

options

private IOptions options

client

private Client client

visible

private boolean visible

syncdEventList

private final java.util.List<RevealEvent> syncdEventList

bookmark

private int bookmark

displayQueue

private final java.util.ArrayList<javax.swing.JPanel> displayQueue

turnNr

private int turnNr

currentPlayer

private Player currentPlayer

expireTurns

private int expireTurns

maxString

private java.lang.String maxString

eventPane

private java.awt.Container eventPane

settingsPane

private javax.swing.Box settingsPane

eventScrollPane

private javax.swing.JScrollPane eventScrollPane

eventScrollBar

private javax.swing.JScrollBar eventScrollBar

evfSplit

public static final java.lang.String evfSplit
See Also:
Constant Field Values

evfRecruit

public static final java.lang.String evfRecruit
See Also:
Constant Field Values

evfSummon

public static final java.lang.String evfSummon
See Also:
Constant Field Values

evfTeleport

public static final java.lang.String evfTeleport
See Also:
Constant Field Values

evfAcquire

public static final java.lang.String evfAcquire
See Also:
Constant Field Values

evfWon

public static final java.lang.String evfWon
See Also:
Constant Field Values

evfLoser

public static final java.lang.String evfLoser
See Also:
Constant Field Values

evfMulligan

public static final java.lang.String evfMulligan
See Also:
Constant Field Values

evfMoveRoll

public static final java.lang.String evfMoveRoll
See Also:
Constant Field Values

evfTurnChange

public static final java.lang.String evfTurnChange
See Also:
Constant Field Values

evfPlayerChange

public static final java.lang.String evfPlayerChange
See Also:
Constant Field Values

evAutoScroll

public static final java.lang.String evAutoScroll
See Also:
Constant Field Values

evHideUndone

public static final java.lang.String evHideUndone
See Also:
Constant Field Values

evMaxTurns

public static final java.lang.String evMaxTurns
See Also:
Constant Field Values

showEventType

private final boolean[] showEventType

autoScroll

private boolean autoScroll

hideUndoneEvents

private boolean hideUndoneEvents

maxTurnsDisplayExpiringBox

private javax.swing.JComboBox maxTurnsDisplayExpiringBox

maxTurns

private int maxTurns

mulliganOldRoll

private int mulliganOldRoll

attacker

private Legion attacker

defender

private Legion defender

attackerEventLegion

private RevealEvent attackerEventLegion

defenderEventLegion

private RevealEvent defenderEventLegion

lastAttackerEventLegion

private RevealEvent lastAttackerEventLegion

lastDefenderEventLegion

private RevealEvent lastDefenderEventLegion

winnerLegion

private RevealEvent winnerLegion

loserLegion

private RevealEvent loserLegion
Constructor Detail

EventViewer

EventViewer(javax.swing.JFrame frame,
            IOptions options,
            Client client)
Inits the dialog, not necessarily displays it.

Parameters:
frame - is the parent window frame (MasterBoard)
options - IOptions reference to the client
client - The client, needed to ask all kind of info
Method Detail

initExpireTurnsFromOptions

private void initExpireTurnsFromOptions()

getBoolOption

private boolean getBoolOption(java.lang.String name,
                              boolean defaultVal)

addCheckbox

private void addCheckbox(java.lang.String optname,
                         java.awt.Container pane)

setupGUI

private void setupGUI()

isEventTooOld

private boolean isEventTooOld(RevealEvent e)

isEventRelevant

private boolean isEventRelevant(RevealEvent e)

queueForDisplaying

private void queueForDisplaying(javax.swing.JPanel eventPanel)

queueSignalRemoveAllForDisplaying

private void queueSignalRemoveAllForDisplaying()
Remove all pending events, and queue a null event to signal the displayer to remove all from panel first before adding again.


displayFromQueue

private void displayFromQueue()

postAddEventActions

private void postAddEventActions()

addEventToEventPane

private void addEventToEventPane(RevealEvent e)

addEventToList

private void addEventToList(RevealEvent e)

triggerDisplaying

private void triggerDisplaying()

addEvent

public void addEvent(RevealEvent e)

updatePanels

private void updatePanels(boolean forceAll)

getActivePlayer

private Player getActivePlayer()

newRollEvent

private void newRollEvent(int eventType,
                          int roll1,
                          int roll2)

newEvent

private void newEvent(int eventType,
                      Legion legion1,
                      java.util.ArrayList<RevealedCreature> rcList,
                      Legion legion2)

turnOrPlayerChange

public void turnOrPlayerChange(int turnNr,
                               Player player)

setMulliganOldRoll

public void setMulliganOldRoll(int roll)

tellMovementRoll

public void tellMovementRoll(int roll)

tellEngagement

public void tellEngagement(Legion attacker,
                           Legion defender,
                           int turnNumber)

tellEngagementResults

public void tellEngagementResults(Legion winner,
                                  java.lang.String method,
                                  int turns)

newCreatureRevealEvent

public void newCreatureRevealEvent(int eventType,
                                   Legion legion1,
                                   CreatureType creature,
                                   Legion legion2)

newSplitEvent

public void newSplitEvent(int turnNr,
                          Legion legion1,
                          java.util.ArrayList<RevealedCreature> rcList,
                          Legion legion2)

revealCreatures

public void revealCreatures(Legion legion,
                            java.util.List<CreatureType> creatureTypes,
                            java.lang.String reason)

revealEngagedCreatures

public void revealEngagedCreatures(java.util.List<CreatureType> creatures,
                                   boolean isAttacker,
                                   java.lang.String reason)

addCreature

public void addCreature(Legion legion,
                        CreatureType type,
                        java.lang.String reason)

cancelReinforcement

public void cancelReinforcement(CreatureType creature,
                                int turn)

removeCreature

public void removeCreature(Legion legion,
                           CreatureType type,
                           java.lang.String reason)

recruitEvent

public void recruitEvent(Legion legion,
                         CreatureType recruit,
                         java.util.List<CreatureType> recruiters,
                         java.lang.String reason)

setCreatureDead

public void setCreatureDead(BattleUnit battleUnit)

undoEvent

public void undoEvent(int type,
                      Legion parent,
                      Legion child,
                      int turn)

purgeOldEvents

public void purgeOldEvents()

cleanup

public void cleanup()

dispose

public void dispose()
Overrides:
dispose in class KDialog

setVisibleMaybe

public void setVisibleMaybe()

setVisible

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