net.sf.colossus.appmain
Class GetPlayers

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.appmain.GetPlayers
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 GetPlayers
extends KFrame

Class GetPlayers is a dialog used to enter players' names, types, variant, etc.

Author:
David Ripton, Romain Dolbeau
See Also:
Serialized Form

Nested Class Summary
(package private) static class GetPlayers.varFileFilter
           
 
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 byWebClient
           
private  javax.swing.JLabel delayLabel
           
private  javax.swing.JComboBox eventExpiringBox
           
private static java.lang.String loadVariant
           
private static java.util.logging.Logger LOGGER
           
private  java.lang.Object mutex
           
private  boolean mutexNotified
           
private  int oldDelay
           
private  int oldLimit
           
private  Options options
          This is Game's options, which we will modify directly.
private  javax.swing.JComboBox[] playerNames
           
private  javax.swing.JComboBox[] playerTypes
           
private  boolean quitAlreadyTried
           
private  javax.swing.JEditorPane readme
           
private  javax.swing.JScrollPane readmeScrollPane
           
private  javax.swing.JLabel runningOnLabel
           
private  SaveWindow saveWindow
           
private  int serveAtPort
           
private  javax.swing.JComboBox serveAtPortBox
           
private  java.util.TreeSet<java.lang.String> sPortChoices
           
private  Options stOptions
           
private  javax.swing.JTabbedPane tabbedPane
           
private  javax.swing.JLabel timeLimitLabel
           
private  java.util.Vector<java.lang.String> typeChoices
           
private  javax.swing.JComboBox variantBox
           
private  java.util.Vector<java.lang.String> variantVector
           
private  javax.swing.JComboBox viewModeBox
           
private  WhatNextManager whatNextManager
           
 
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
GetPlayers(Options options, java.lang.Object mutex, WhatNextManager whatNextMgr, boolean byWebClient)
          Clear options to abort
 
Method Summary
private  void actOnVariantChange(int oldMaxPlayers, java.lang.String newVarName)
           
private  void addCheckbox(java.lang.String optname, java.awt.Container pane)
           
private  void addVariantToBoxIfNeeded(java.lang.String varName)
           
 void dispose()
           
private  void doClientDialog()
           
private  void doLoadGame()
           
private  void doLoadVariant()
           
(package private)  void doNewGame()
          package privat for unit test case
private  void doOnePlayer(int i, java.awt.Container allPlayersPane)
           
private  void doQuit()
           
private  void doRunWebClient()
           
private  void enablePlayers()
           
 java.awt.Dimension getMinimumSize()
           
 boolean getMutexNotified()
           
 java.awt.Dimension getPreferredSize()
           
private  java.lang.String makeUniqueName(java.lang.String baseName, int i)
           
private  void setDelayLabel(int delay)
           
(package private)  void setPlayerType(int i, java.lang.String type)
          Only meant for unit tests
private  void setRunningOnLabel(int port)
           
private  void setTimeLimitLabel(int limit)
           
private  void setupTypeChoices()
           
private  boolean validateInputs()
          Check if values are legal; if yes, caller can start the game.
 
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, getMousePosition, 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, toString, 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

loadVariant

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

mutex

private final java.lang.Object mutex

mutexNotified

private boolean mutexNotified

runningOnLabel

private final javax.swing.JLabel runningOnLabel

serveAtPortBox

private final javax.swing.JComboBox serveAtPortBox

sPortChoices

private final java.util.TreeSet<java.lang.String> sPortChoices

typeChoices

private final java.util.Vector<java.lang.String> typeChoices

playerTypes

private final javax.swing.JComboBox[] playerTypes

playerNames

private final javax.swing.JComboBox[] playerNames

readme

private javax.swing.JEditorPane readme

readmeScrollPane

private javax.swing.JScrollPane readmeScrollPane

tabbedPane

private final javax.swing.JTabbedPane tabbedPane

variantBox

private final javax.swing.JComboBox variantBox

variantVector

private final java.util.Vector<java.lang.String> variantVector

viewModeBox

private final javax.swing.JComboBox viewModeBox

eventExpiringBox

private final javax.swing.JComboBox eventExpiringBox

serveAtPort

private int serveAtPort

options

private final Options options
This is Game's options, which we will modify directly.


stOptions

private final Options stOptions

whatNextManager

private final WhatNextManager whatNextManager

byWebClient

private final boolean byWebClient

oldDelay

private int oldDelay

delayLabel

private final javax.swing.JLabel delayLabel

oldLimit

private int oldLimit

timeLimitLabel

private final javax.swing.JLabel timeLimitLabel

saveWindow

private final SaveWindow saveWindow

quitAlreadyTried

private boolean quitAlreadyTried
Constructor Detail

GetPlayers

public GetPlayers(Options options,
                  java.lang.Object mutex,
                  WhatNextManager whatNextMgr,
                  boolean byWebClient)
Clear options to abort

Method Detail

actOnVariantChange

private void actOnVariantChange(int oldMaxPlayers,
                                java.lang.String newVarName)

setRunningOnLabel

private void setRunningOnLabel(int port)

setDelayLabel

private void setDelayLabel(int delay)

setTimeLimitLabel

private void setTimeLimitLabel(int limit)

setupTypeChoices

private void setupTypeChoices()

doOnePlayer

private void doOnePlayer(int i,
                         java.awt.Container allPlayersPane)

enablePlayers

private void enablePlayers()

addCheckbox

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

validateInputs

private boolean validateInputs()
Check if values are legal; if yes, caller can start the game.


doLoadGame

private void doLoadGame()

doClientDialog

private void doClientDialog()

doRunWebClient

private void doRunWebClient()

doQuit

private void doQuit()

doNewGame

void doNewGame()
package privat for unit test case


doLoadVariant

private void doLoadVariant()

makeUniqueName

private java.lang.String makeUniqueName(java.lang.String baseName,
                                        int i)

addVariantToBoxIfNeeded

private void addVariantToBoxIfNeeded(java.lang.String varName)

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class java.awt.Container

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class java.awt.Container

dispose

public void dispose()
Overrides:
dispose in class KFrame

setPlayerType

void setPlayerType(int i,
                   java.lang.String type)
Only meant for unit tests


getMutexNotified

public boolean getMutexNotified()