public class WebClient extends KFrame implements IWebClient
Modifier and Type | Class and Description |
---|---|
(package private) class |
WebClient.TriggerTimeIsUp |
javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
Modifier and Type | Field and Description |
---|---|
private javax.swing.Box |
adminTab |
private javax.swing.JTextField |
atDateField |
private javax.swing.JTextField |
atTimeField |
private javax.swing.JCheckBox |
autoGamePaneCB |
private static java.lang.String |
AutoGamePaneCBText |
private static java.lang.String |
AutoGameStartActionClose |
private static java.lang.String |
AutoGameStartActionHide |
private static java.lang.String |
AutoGameStartActionNothing |
private javax.swing.JRadioButton |
autoGSCloseRB |
private javax.swing.JRadioButton |
autoGSHideRB |
private javax.swing.JRadioButton |
autoGSNothingRB |
private javax.swing.JCheckBox |
autologinCB |
private static java.lang.String |
AutoLoginCBText |
private javax.swing.JCheckBox |
balancedTowersCB |
private javax.swing.JTextField |
beepCountField |
private javax.swing.JTextField |
beepIntervalField |
private javax.swing.JButton |
cancelButton |
private static java.lang.String |
CancelButtonText |
private static java.lang.String |
CantHideText |
(package private) static java.lang.String |
CARD_PROPOSED |
private static java.lang.String |
chgPasswordButtonText |
private static java.lang.String |
chgPasswordLabelText |
private boolean |
clientIsUp |
private boolean |
clientStartFailed |
private java.lang.Object |
comingUpMutex |
private javax.swing.JTextField |
commandField |
private static java.lang.String |
createAccountButtonText |
private static java.lang.String |
createAccountLabelText |
private javax.swing.Box |
createGamesTab |
private javax.swing.JButton |
debugSubmitButton |
private java.awt.Point |
defaultLocation |
private static java.lang.String |
defaultSummaryText |
private java.util.HashSet<java.lang.String> |
deletedGames |
private static java.lang.String |
dialogMessage |
private static java.lang.String |
dialogTitle |
private javax.swing.JButton |
dumpInfoButton |
private javax.swing.JTextField |
durationField |
private javax.swing.JButton |
enrollButton |
private static java.lang.String |
EnrollButtonText |
private static int |
EnrolledInstantGame |
private java.lang.String |
enrolledInstantGameId |
(package private) static java.lang.String |
enrolledText |
(package private) static java.lang.String |
enrollText |
private javax.swing.JComboBox |
eventExpiringBox |
private boolean |
failedDueToDuplicateLogin |
private Client |
gameClient |
private java.util.HashMap<java.lang.String,GameInfo> |
gameHash
NOTE: shared with SocketThread, because WCST needs it to restore
game tokens to an GameInfo object
|
private javax.swing.JTextField |
gameNrField |
private RunGameInSameJVM |
gameRunner |
private javax.swing.JPanel |
gamesCards |
private javax.swing.JPanel |
gamesTablesPanel |
private java.util.ArrayList<GameInfo> |
gamesUpdates |
private ChatHandler |
generalChat |
private javax.swing.JButton |
hideButton |
private javax.swing.JLabel |
hideButtonText |
private static java.lang.String |
HideButtonText |
private java.lang.String |
hostname |
private static java.lang.String |
HowtoUnhideText |
private javax.swing.JLabel |
infoTextLabel |
private boolean |
isAdmin |
private Server |
localServer |
private static int |
LoggedIn |
private static java.util.logging.Logger |
LOGGER |
private java.lang.String |
login |
private static java.lang.String |
LoginButtonText |
private javax.swing.JTextField |
loginField |
private javax.swing.JButton |
loginLogoutButton |
private static java.lang.String |
LogoutButtonText |
private javax.swing.JLabel |
maxLabel |
private static int |
maxPort |
private static int |
minPort |
private java.text.DateFormat |
myDateFormat |
(package private) static java.util.Locale |
myLocale |
private java.text.DateFormat |
myTimeFormat |
(package private) static java.lang.String |
needLoginText |
private javax.swing.JTextField |
notifyMessageField |
private javax.swing.JTextField |
notifyUserField |
private static int |
NotLoggedIn |
private javax.swing.JLabel |
nowDateAndTimeLabel |
private static java.lang.String |
optAutoGameStartAction |
private Options |
options |
private java.lang.String |
password |
private javax.swing.JPasswordField |
passwordField |
private static int |
Playing |
(package private) static java.lang.String |
playingText |
private int |
port |
private javax.swing.JPanel |
preferencesPane |
private javax.swing.JPanel |
propGamesCard |
private javax.swing.JButton |
proposeButton |
private static java.lang.String |
ProposeButtonText |
private GameTableModel |
proposedGameDataModel |
private javax.swing.JTable |
proposedGameTable |
private javax.swing.JButton |
quitButton |
private static java.lang.String |
quitButtonText |
private javax.swing.JLabel |
receivedField |
private javax.swing.JButton |
registerOrPasswordButton |
private javax.swing.JLabel |
registerOrPasswordLabel |
private RegisterPasswordPanel |
registerPanel |
private javax.swing.JButton |
rereadLoginMsgButton |
private GameTableModel |
runGameDataModel |
private javax.swing.JTable |
runGameTable |
private javax.swing.Box |
runningGamesTab |
private boolean |
scheduledGamesMode |
private static java.lang.String |
sep |
private IWebServer |
server |
private javax.swing.Box |
serverTab |
private javax.swing.JButton |
shutdownButton |
private javax.swing.JSpinner |
spinner1 |
private javax.swing.JSpinner |
spinner2 |
private javax.swing.JSpinner |
spinner3 |
private javax.swing.JButton |
startButton |
private static java.lang.String |
StartButtonText |
(package private) static java.lang.String |
startClickedText |
private java.lang.String |
startedAtHost |
private int |
startedAtPort |
private java.lang.String |
startedGameId |
private GameInfo |
startingGame |
private javax.swing.JButton |
startLocallyButton |
private static java.lang.String |
StartLocallyButtonText |
private int |
state |
private javax.swing.JLabel |
statusField |
private javax.swing.JLabel |
statusLabel |
private java.lang.String |
statusText |
private javax.swing.JTextField |
summaryText |
private javax.swing.JTabbedPane |
tabbedPane |
private boolean |
timeIsUp |
(package private) static java.lang.String |
TYPE_INSTANTLY |
(package private) static java.lang.String |
TYPE_SCHEDULED |
private javax.swing.JButton |
unenrollButton |
private static java.lang.String |
UnenrollButtonText |
private javax.swing.JCheckBox |
unlimitedMulligansCB |
private javax.swing.JLabel |
userinfoLabel |
private java.lang.String |
username |
private int |
usersDead |
private int |
usersEnrolled |
private int |
usersLoggedIn |
private long |
usersLogoffAgo |
private int |
usersPlaying |
private java.lang.String |
usersText |
private javax.swing.JComboBox |
variantBox |
private javax.swing.JComboBox |
viewmodeBox |
(package private) static java.lang.String |
waitingText |
private javax.swing.JButton |
watchButton |
private static java.lang.String |
WatchButtonText |
private WebClientSocketThread |
wcst |
(package private) static int |
WEB_CLIENT_VERSION |
private javax.swing.JTextField |
webserverHostField |
private javax.swing.JTextField |
webserverPortField |
private WhatNextManager |
whatNextManager |
private static java.lang.String |
windowTitle |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
alreadyLoggedIn, chatDeliver, connectionClosed, didEnroll, didUnenroll, forcedLogout, gameCancelled, gameInfo, gameStarted, gameStartsNow, gameStartsSoon, generalMessage, grantAdmin, pingRequest, requestAttention, systemMessage, tooManyUsers, userInfo
Constructor and Description |
---|
WebClient(WhatNextManager whatNextManager,
java.lang.String hostname,
int port,
java.lang.String login,
java.lang.String password) |
Modifier and Type | Method and Description |
---|---|
private void |
addAdminTab() |
private void |
addRadioButton(java.awt.Container cont,
javax.swing.ButtonGroup group,
java.lang.String text,
java.lang.String current,
java.awt.event.ItemListener listener) |
private void |
adjustToPossibleMax(javax.swing.JSpinner spinner,
int max) |
private void |
autoActions() |
void |
beepButtonAction() |
private void |
cancelButtonAction() |
private void |
cancelOwnInstantGameOnLogout() |
void |
chatDeliver(java.lang.String chatId,
long when,
java.lang.String sender,
java.lang.String message,
boolean resent) |
private boolean |
checkIfCouldCancel() |
private boolean |
checkIfCouldEnroll() |
private boolean |
checkIfCouldPropose() |
private boolean |
checkIfCouldStartOnServer(int state) |
private boolean |
checkIfCouldUnenroll() |
void |
connectionReset(boolean forced) |
private void |
createAdminTab() |
private void |
createCreateGamesTab() |
java.lang.String |
createLoginWebClientSocketThread(boolean force) |
private void |
createPreferencesPane() |
java.lang.String |
createRegisterWebClientSocketThread(java.lang.String username,
java.lang.String password,
java.lang.String email,
java.lang.String confCode) |
private void |
createRunningGamesTab() |
private void |
createServerTab() |
private void |
debugSubmitButtonAction() |
void |
deliverGeneralMessage(long when,
boolean error,
java.lang.String title,
java.lang.String message) |
void |
didEnroll(java.lang.String gameId,
java.lang.String user) |
void |
didUnenroll(java.lang.String gameId,
java.lang.String user) |
private void |
displayOnlyOneInstantGameMessage(java.lang.String action,
java.lang.String message) |
void |
dispose() |
private void |
do_proposeGame(java.lang.String variant,
java.lang.String viewmode,
long startAt,
int duration,
java.lang.String summary,
java.lang.String expire,
boolean unlimMulli,
boolean balTowers,
int min,
int target,
int max) |
private void |
doAutoGSAction() |
private void |
doCancel(java.lang.String gameId) |
private boolean |
doEnroll(java.lang.String gameId) |
void |
doLogin() |
void |
doLogout() |
private void |
doQuit() |
private void |
doRegisterOrPasswordDialog(boolean register) |
void |
doScheduleDummy() |
(package private) boolean |
doStart(java.lang.String gameId) |
private boolean |
doStartLocally(java.lang.String gameId) |
private boolean |
doUnenroll(java.lang.String gameId) |
void |
doUpdateGUI() |
private void |
dumpInfoButtonAction() |
private void |
enrollButtonAction() |
private GameInfo |
findGameById(java.lang.String gameId) |
private GameInfo |
findGameByIdNoComplaint(java.lang.String gameId) |
private java.util.List<GameInfo> |
findMyInstantGames()
Find all "relevant" instant games owned by this player
(relevant means except those who are running, ending or deleted).
|
void |
gameCancelled(java.lang.String gameId,
java.lang.String byUser) |
void |
gameInfo(GameInfo gi) |
void |
gameStartsNow(java.lang.String gameId,
int port,
java.lang.String hostingHost) |
void |
gameStartsSoon(java.lang.String gameId,
java.lang.String startUser) |
int |
getClientVersion() |
private int |
getDuration() |
java.util.HashMap<java.lang.String,GameInfo> |
getGameHash() |
IGameRunner |
getGameRunner() |
java.lang.String |
getHost() |
private int |
getMaxForVariant(java.lang.String variant) |
private java.util.Calendar |
getNowPlusOffset(java.util.Calendar now,
int days,
int hours)
Determine a point in time given amount of days and hours from now.
|
java.lang.String |
getPort() |
boolean |
getScheduledGamesMode() |
java.lang.String |
getSelectedGameId() |
private long |
getStartTime() |
private java.lang.String |
getSummaryText() |
private java.lang.String |
getUserinfoText() |
INotifyWebServer |
getWhomToNotify() |
void |
grantAdminStatus() |
private void |
handleGameInfoUpdates(GameInfo gi) |
private void |
hideButtonAction() |
void |
informGameStartedLocally() |
void |
informLocallyGameOver() |
void |
informStartingOnPlayerHost(java.lang.String hostingPlayer,
java.lang.String hostingHost,
int hostingPort) |
private void |
initFormats() |
private void |
initValues(java.lang.String hostname,
int port,
java.lang.String login,
java.lang.String password) |
boolean |
isAdmin() |
private boolean |
isEligibleToStart(GameInfo gi)
Returns true if this user would be allowed to start this game
(given that all other conditions are fulfilled).
|
private boolean |
isOwner(java.lang.String gameId) |
private boolean |
isScheduledGameAndStartable(java.lang.String id) |
private void |
loadGameButtonAction() |
private void |
loginLogoutButtonAction(java.lang.String command) |
private boolean |
logout() |
private java.lang.String |
makeDateTimeInfoString(java.util.Calendar now) |
private java.lang.String |
makeInfoTextForState(int state) |
private java.lang.String |
makeStatusTextForState(int state) |
private javax.swing.Box |
makeTextBox(java.awt.Component c) |
private javax.swing.Box |
makeTextBox2(java.awt.Component c,
java.awt.Component c2) |
private java.lang.String |
makeWindowTitleForState(int state) |
private javax.swing.JLabel |
nonBoldLabel(java.lang.String text) |
void |
notifyComingUp(boolean success) |
void |
onGameStartAutoAction() |
private GameInfo |
ownInstantGameIfAny()
If there is at least one instant game by this player,
return it (one of it if many), otherwise null.
|
private void |
proposeButtonAction() |
private void |
quitButtonAction() |
void |
reactOnScheduleRadioButtonChange(java.awt.event.ItemEvent e) |
private void |
registerOrPasswordButtonAction(java.lang.String command) |
private void |
removeAdminTab() |
private void |
replaceInTable(javax.swing.JTable table,
GameInfo gi) |
void |
requestAttention(long when,
java.lang.String byUser,
boolean byAdmin,
java.lang.String message,
int beepCount,
long beepInterval,
boolean windows) |
private void |
rereadLoginMsgButtonAction() |
private void |
setAdmin(boolean isAdmin) |
void |
setGameClient(Client c) |
void |
setLocalServer(Server server) |
private void |
setScheduledGamesMode(boolean scheduled) |
private void |
setupGUI() |
private java.util.Timer |
setupTimer() |
void |
showAnswer(java.lang.String s) |
private void |
showRequestAttentionMessage() |
private void |
shutdownButtonAction() |
private void |
startButtonAction() |
private void |
startLocallyButtonAction() |
void |
startOwnClient(java.lang.String gameId,
int port,
java.lang.String hostingHost) |
void |
systemMessage(long when,
java.lang.String message) |
void |
tellGameEnds() |
java.lang.String |
tryChangePassword(java.lang.String name,
java.lang.String oldPW,
java.lang.String newPW1) |
private void |
unenrollButtonAction() |
private void |
updateDateTimeInfoString() |
void |
updateGUI() |
private void |
updateMaxSpinner(java.lang.String variant) |
void |
updateStatus(java.lang.String text,
java.awt.Color color) |
void |
userInfo(int loggedin,
int enrolled,
int playing,
int dead,
long ago,
java.lang.String text) |
boolean |
validateField(java.awt.Component parent,
java.lang.String content,
java.lang.String fieldName) |
(package private) boolean |
validatePort(java.awt.Component parent,
java.lang.String portText) |
boolean |
validateServerAndPort() |
private void |
watchButtonAction() |
centerOnScreen, setVisible, useSaveWindow
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
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
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, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, show, toBack, toFront
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
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, 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, 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, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private static final java.util.logging.Logger LOGGER
static final int WEB_CLIENT_VERSION
static final java.util.Locale myLocale
static final java.lang.String CARD_PROPOSED
static final java.lang.String TYPE_SCHEDULED
static final java.lang.String TYPE_INSTANTLY
private final WhatNextManager whatNextManager
private java.lang.String hostname
private int port
private java.lang.String login
private java.lang.String username
private java.lang.String password
private boolean isAdmin
private final Options options
private Client gameClient
private RunGameInSameJVM gameRunner
private Server localServer
private java.lang.String startedGameId
private int startedAtPort
private java.lang.String startedAtHost
private RegisterPasswordPanel registerPanel
private final java.lang.Object comingUpMutex
private boolean timeIsUp
private boolean clientIsUp
private boolean clientStartFailed
private static final int NotLoggedIn
private static final int LoggedIn
private static final int EnrolledInstantGame
private static final int Playing
private GameInfo startingGame
private static final int minPort
private static final int maxPort
private static final java.lang.String sep
private boolean failedDueToDuplicateLogin
private int state
private java.lang.String enrolledInstantGameId
private boolean scheduledGamesMode
private int usersLoggedIn
private int usersEnrolled
private int usersPlaying
private int usersDead
private long usersLogoffAgo
private java.lang.String usersText
private IWebServer server
private WebClientSocketThread wcst
private javax.swing.JTabbedPane tabbedPane
private javax.swing.Box serverTab
private javax.swing.JPanel preferencesPane
private javax.swing.Box createGamesTab
private javax.swing.Box runningGamesTab
private javax.swing.Box adminTab
private final java.awt.Point defaultLocation
private javax.swing.JLabel statusLabel
private javax.swing.JLabel userinfoLabel
private javax.swing.JTextField webserverHostField
private javax.swing.JTextField webserverPortField
private javax.swing.JTextField loginField
private javax.swing.JPasswordField passwordField
private javax.swing.JTextField commandField
private javax.swing.JLabel receivedField
private javax.swing.JButton loginLogoutButton
private javax.swing.JButton quitButton
private javax.swing.JCheckBox autologinCB
private javax.swing.JCheckBox autoGamePaneCB
private javax.swing.JLabel registerOrPasswordLabel
private javax.swing.JButton registerOrPasswordButton
private javax.swing.JButton debugSubmitButton
private javax.swing.JButton rereadLoginMsgButton
private javax.swing.JButton shutdownButton
private javax.swing.JButton dumpInfoButton
private javax.swing.JTextField notifyMessageField
private javax.swing.JTextField notifyUserField
private javax.swing.JTextField beepCountField
private javax.swing.JTextField beepIntervalField
private javax.swing.JLabel statusField
private java.lang.String statusText
private javax.swing.JComboBox variantBox
private javax.swing.JComboBox viewmodeBox
private javax.swing.JComboBox eventExpiringBox
private javax.swing.JSpinner spinner1
private javax.swing.JSpinner spinner2
private javax.swing.JSpinner spinner3
private javax.swing.JLabel maxLabel
private javax.swing.JCheckBox unlimitedMulligansCB
private javax.swing.JCheckBox balancedTowersCB
private javax.swing.JLabel nowDateAndTimeLabel
private javax.swing.JTextField atDateField
private javax.swing.JTextField atTimeField
private javax.swing.JTextField durationField
private javax.swing.JTextField summaryText
private java.text.DateFormat myDateFormat
private java.text.DateFormat myTimeFormat
private javax.swing.JButton proposeButton
private javax.swing.JButton cancelButton
private javax.swing.JButton enrollButton
private javax.swing.JButton unenrollButton
private javax.swing.JButton startButton
private javax.swing.JButton startLocallyButton
private javax.swing.JButton watchButton
private javax.swing.JButton hideButton
private javax.swing.JLabel hideButtonText
private javax.swing.JTextField gameNrField
private javax.swing.JRadioButton autoGSNothingRB
private javax.swing.JRadioButton autoGSHideRB
private javax.swing.JRadioButton autoGSCloseRB
private javax.swing.JLabel infoTextLabel
static final java.lang.String needLoginText
static final java.lang.String enrollText
static final java.lang.String startClickedText
static final java.lang.String waitingText
static final java.lang.String enrolledText
static final java.lang.String playingText
private ChatHandler generalChat
private final java.util.ArrayList<GameInfo> gamesUpdates
private final java.util.HashMap<java.lang.String,GameInfo> gameHash
private final java.util.HashSet<java.lang.String> deletedGames
private javax.swing.JPanel gamesTablesPanel
private javax.swing.JPanel gamesCards
private javax.swing.JPanel propGamesCard
private javax.swing.JTable proposedGameTable
private GameTableModel proposedGameDataModel
private javax.swing.JTable runGameTable
private GameTableModel runGameDataModel
private static java.lang.String windowTitle
private static final java.lang.String LoginButtonText
private static final java.lang.String LogoutButtonText
private static final java.lang.String quitButtonText
private static final java.lang.String HideButtonText
private static final java.lang.String WatchButtonText
private static final java.lang.String CantHideText
private static final java.lang.String HowtoUnhideText
private static final java.lang.String createAccountButtonText
private static final java.lang.String chgPasswordButtonText
private static final java.lang.String ProposeButtonText
private static final java.lang.String EnrollButtonText
private static final java.lang.String UnenrollButtonText
private static final java.lang.String CancelButtonText
private static final java.lang.String StartButtonText
private static final java.lang.String StartLocallyButtonText
private static final java.lang.String AutoLoginCBText
private static final java.lang.String AutoGamePaneCBText
private static final java.lang.String createAccountLabelText
private static final java.lang.String chgPasswordLabelText
private static final java.lang.String AutoGameStartActionNothing
private static final java.lang.String AutoGameStartActionHide
private static final java.lang.String AutoGameStartActionClose
private static final java.lang.String optAutoGameStartAction
private static final java.lang.String defaultSummaryText
private static java.lang.String dialogTitle
private static java.lang.String dialogMessage
public WebClient(WhatNextManager whatNextManager, java.lang.String hostname, int port, java.lang.String login, java.lang.String password)
public int getClientVersion()
getClientVersion
in interface IWebClient
private void initValues(java.lang.String hostname, int port, java.lang.String login, java.lang.String password)
public void setGameClient(Client c)
private void setScheduledGamesMode(boolean scheduled)
public boolean getScheduledGamesMode()
public void onGameStartAutoAction()
private void setupGUI()
private void autoActions()
private void doAutoGSAction()
public void updateStatus(java.lang.String text, java.awt.Color color)
private void addAdminTab()
private void removeAdminTab()
private void setAdmin(boolean isAdmin)
public boolean isAdmin()
public void showAnswer(java.lang.String s)
public java.lang.String getHost()
public java.lang.String getPort()
public IGameRunner getGameRunner()
public INotifyWebServer getWhomToNotify()
private void createServerTab()
private void addRadioButton(java.awt.Container cont, javax.swing.ButtonGroup group, java.lang.String text, java.lang.String current, java.awt.event.ItemListener listener)
private javax.swing.JLabel nonBoldLabel(java.lang.String text)
private javax.swing.Box makeTextBox(java.awt.Component c)
private javax.swing.Box makeTextBox2(java.awt.Component c, java.awt.Component c2)
private void initFormats()
private java.lang.String makeDateTimeInfoString(java.util.Calendar now)
private void updateDateTimeInfoString()
private void createCreateGamesTab()
private java.util.Calendar getNowPlusOffset(java.util.Calendar now, int days, int hours)
days
- hours
- public void reactOnScheduleRadioButtonChange(java.awt.event.ItemEvent e)
private void createPreferencesPane()
private void updateMaxSpinner(java.lang.String variant)
private void adjustToPossibleMax(javax.swing.JSpinner spinner, int max)
private int getMaxForVariant(java.lang.String variant)
private void createRunningGamesTab()
private void createAdminTab()
public void beepButtonAction()
public java.lang.String createLoginWebClientSocketThread(boolean force)
public java.lang.String createRegisterWebClientSocketThread(java.lang.String username, java.lang.String password, java.lang.String email, java.lang.String confCode)
private boolean logout()
private void doQuit()
private java.lang.String getUserinfoText()
public void updateGUI()
public java.lang.String getSelectedGameId()
private java.lang.String makeWindowTitleForState(int state)
private java.lang.String makeInfoTextForState(int state)
private java.lang.String makeStatusTextForState(int state)
private boolean isEligibleToStart(GameInfo gi)
gi
- private boolean checkIfCouldStartOnServer(int state)
private boolean isScheduledGameAndStartable(java.lang.String id)
private boolean checkIfCouldPropose()
private boolean checkIfCouldCancel()
private boolean checkIfCouldEnroll()
private boolean checkIfCouldUnenroll()
public void doUpdateGUI()
public java.util.HashMap<java.lang.String,GameInfo> getGameHash()
private GameInfo findGameByIdNoComplaint(java.lang.String gameId)
private GameInfo findGameById(java.lang.String gameId)
private boolean isOwner(java.lang.String gameId)
public boolean validateField(java.awt.Component parent, java.lang.String content, java.lang.String fieldName)
boolean validatePort(java.awt.Component parent, java.lang.String portText)
public void doLogin()
public boolean validateServerAndPort()
public void doLogout()
private void cancelOwnInstantGameOnLogout()
private void doRegisterOrPasswordDialog(boolean register)
public java.lang.String tryChangePassword(java.lang.String name, java.lang.String oldPW, java.lang.String newPW1)
private void doCancel(java.lang.String gameId)
public void doScheduleDummy()
private void do_proposeGame(java.lang.String variant, java.lang.String viewmode, long startAt, int duration, java.lang.String summary, java.lang.String expire, boolean unlimMulli, boolean balTowers, int min, int target, int max)
private long getStartTime()
private int getDuration()
private java.lang.String getSummaryText()
private boolean doEnroll(java.lang.String gameId)
private boolean doUnenroll(java.lang.String gameId)
boolean doStart(java.lang.String gameId)
private boolean doStartLocally(java.lang.String gameId)
public void informStartingOnPlayerHost(java.lang.String hostingPlayer, java.lang.String hostingHost, int hostingPort)
public void informGameStartedLocally()
public void informLocallyGameOver()
public void setLocalServer(Server server)
public void grantAdminStatus()
grantAdminStatus
in interface IWebClient
public void didEnroll(java.lang.String gameId, java.lang.String user)
didEnroll
in interface IWebClient
public void didUnenroll(java.lang.String gameId, java.lang.String user)
didUnenroll
in interface IWebClient
public void gameStartsSoon(java.lang.String gameId, java.lang.String startUser)
gameStartsSoon
in interface IWebClient
public void notifyComingUp(boolean success)
private java.util.Timer setupTimer()
public void gameStartsNow(java.lang.String gameId, int port, java.lang.String hostingHost)
gameStartsNow
in interface IWebClient
public void startOwnClient(java.lang.String gameId, int port, java.lang.String hostingHost)
public void gameCancelled(java.lang.String gameId, java.lang.String byUser)
gameCancelled
in interface IWebClient
public void chatDeliver(java.lang.String chatId, long when, java.lang.String sender, java.lang.String message, boolean resent)
chatDeliver
in interface IWebClient
public void requestAttention(long when, java.lang.String byUser, boolean byAdmin, java.lang.String message, int beepCount, long beepInterval, boolean windows)
requestAttention
in interface IWebClient
private void showRequestAttentionMessage()
public void deliverGeneralMessage(long when, boolean error, java.lang.String title, java.lang.String message)
deliverGeneralMessage
in interface IWebClient
public void systemMessage(long when, java.lang.String message)
systemMessage
in interface IWebClient
public void tellGameEnds()
public void userInfo(int loggedin, int enrolled, int playing, int dead, long ago, java.lang.String text)
userInfo
in interface IWebClient
public void gameInfo(GameInfo gi)
gameInfo
in interface IWebClient
private void handleGameInfoUpdates(GameInfo gi)
private void replaceInTable(javax.swing.JTable table, GameInfo gi)
public void connectionReset(boolean forced)
connectionReset
in interface IWebClient
private void hideButtonAction()
private void watchButtonAction()
private void loadGameButtonAction()
private void quitButtonAction()
private void loginLogoutButtonAction(java.lang.String command)
private void rereadLoginMsgButtonAction()
private void shutdownButtonAction()
private void dumpInfoButtonAction()
private void debugSubmitButtonAction()
private void registerOrPasswordButtonAction(java.lang.String command)
private void startLocallyButtonAction()
private void startButtonAction()
private void cancelButtonAction()
private void unenrollButtonAction()
private java.util.List<GameInfo> findMyInstantGames()
private GameInfo ownInstantGameIfAny()
private void displayOnlyOneInstantGameMessage(java.lang.String action, java.lang.String message)
private void enrollButtonAction()
private void proposeButtonAction()