|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--javax.swing.JComponent
|
+--javax.swing.JInternalFrame
|
+--au.com.solidsoftware.multimahjong.mmc.usergui.MultiGameJoiner
An internal frame that forms a connection to the MultiMahjongServer and allows the user to monitor the list of games that are currently on the server. From this list, the user may select a game to join. The multi game joiner will be shown to players who have requested to join an existing multi player game. It will show a list of all games running on the server. The name of the game creator, the limit, and the number of places remaining will be shown for each game.

The "Back <<" button allows the user to return to the previous game type selector screen.
This frame will also provide a "Join Game" button which allows the user to join the currently selected game. The button will be enabled only when the user has selected a game to join from the list.

Once the user clicks on the "Join Game" button, they will be presented with a waiting screen while waiting for the game creator to start the game. This screen features an animated image. The "Back <<" button becomes disabled once the user has joined a game. type selector screen.

| Inner Class Summary | |
private class |
MultiGameJoiner.MyTableModel
A custom AbstractTableModel to properly format our table
for display purposes. |
| Inner classes inherited from class javax.swing.JInternalFrame |
javax.swing.JInternalFrame.AccessibleJInternalFrame,
javax.swing.JInternalFrame.JDesktopIcon |
| Inner classes inherited from class javax.swing.JComponent |
javax.swing.JComponent.AccessibleJComponent,
javax.swing.JComponent.IntVector,
javax.swing.JComponent.KeyboardBinding,
javax.swing.JComponent.KeyboardState |
| Inner classes inherited from class java.awt.Component |
java.awt.Component.AWTTreeLock |
| Field Summary | |
private javax.swing.JButton |
exitButton
A button that allows the user to return to the game type selector. |
private MiniGame[] |
gamesList
An array containing information that describes each game. |
private GamesObserver |
gamesObserver
This is passed between the MultiGameJoiner and the
Registrar and is used to inform the
MultiGameJoiner that the list of games on the server
has changed. |
private javax.swing.JButton |
joinButton
A button that allows the user to join the currently selected game. |
private int |
playerID
An unique identifier for the user. |
private RefereeIntf |
referee
This is a reference to the remote referee, which initialises the game wall and player seating positions. |
private Registrar |
registrar
A reference to the server-side Registrar, which handles
the starting, joining and ending of multi player games. |
private int |
selectedGame
The array index that refers to the currently selected game in the MiniGame array. |
private MultiGameJoiner.MyTableModel |
tableModel
This specifies the methods the JTable will use to
interrogate a tabular data model. |
| Fields inherited from class javax.swing.JInternalFrame |
closable,
CONTENT_PANE_PROPERTY,
defaultCloseOperation,
desktopIcon,
FRAME_ICON_PROPERTY,
frameIcon,
GLASS_PANE_PROPERTY,
iconable,
IS_CLOSED_PROPERTY,
IS_ICON_PROPERTY,
IS_MAXIMUM_PROPERTY,
IS_SELECTED_PROPERTY,
isClosed,
isIcon,
isMaximum,
isSelected,
LAYERED_PANE_PROPERTY,
maximizable,
MENU_BAR_PROPERTY,
opened,
resizable,
ROOT_PANE_PROPERTY,
rootPane,
rootPaneCheckingEnabled,
title,
TITLE_PROPERTY,
uiClassID |
| Fields inherited from class javax.swing.JComponent |
_bounds,
accessibleContext,
alignmentX,
alignmentY,
ANCESTOR_USING_BUFFER,
ancestorNotifier,
autoscroller,
border,
changeSupport,
clientProperties,
flags,
HAS_FOCUS,
IS_DOUBLE_BUFFERED,
IS_OPAQUE,
IS_PAINTING_TILE,
KEYBOARD_BINDINGS_KEY,
listenerList,
maximumSize,
minimumSize,
NEXT_FOCUS,
paintImmediatelyClip,
preferredSize,
readObjectCallbacks,
REQUEST_FOCUS_DISABLED,
tmpRect,
TOOL_TIP_TEXT_KEY,
ui,
uiClassID,
UNDEFINED_CONDITION,
vetoableChangeSupport,
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,
WHEN_FOCUSED,
WHEN_IN_FOCUSED_WINDOW |
| Fields inherited from class java.awt.Container |
component,
containerListener,
containerSerializedDataVersion,
dispatcher,
layoutMgr,
maxSize,
ncomponents,
serialVersionUID |
| Fields inherited from class java.awt.Component |
actionListenerK,
adjustmentListenerK,
appContext,
assert,
background,
BOTTOM_ALIGNMENT,
CENTER_ALIGNMENT,
changeSupport,
componentListener,
componentListenerK,
componentOrientation,
componentSerializedDataVersion,
containerListenerK,
cursor,
dropTarget,
enabled,
eventMask,
focusListener,
focusListenerK,
font,
foreground,
hasFocus,
height,
incRate,
inputMethodListener,
inputMethodListenerK,
isInc,
isPacked,
itemListenerK,
keyListener,
keyListenerK,
LEFT_ALIGNMENT,
locale,
LOCK,
minSize,
mouseListener,
mouseListenerK,
mouseMotionListener,
mouseMotionListenerK,
name,
nameExplicitlySet,
newEventsOnly,
ownedWindowK,
parent,
peer,
peerFont,
popups,
prefSize,
RIGHT_ALIGNMENT,
serialVersionUID,
textListenerK,
TOP_ALIGNMENT,
valid,
visible,
width,
windowListenerK,
x,
y |
| Constructor Summary | |
MultiGameJoiner(UserGUI userGUI,
java.lang.String name,
int iconID,
Registrar registrar)
Creates a new instance of MultiGameJoiner and displays the
internal frame in the centre of the application window. |
|
| Method Summary | |
void |
addGame(java.lang.String name,
int limit,
int gameID)
Adds a game to the list of available games. |
void |
removeGame(int gameID)
Removes a game from the list of available games. |
void |
updateWaiting(int gameID,
int waitingToJoin)
Updates the number of places remaining in the specified game. |
| Methods inherited from class javax.swing.JInternalFrame |
addImpl,
addInternalFrameListener,
createRootPane,
createRootPaneException,
dispose,
doDefaultCloseAction,
fireInternalFrameEvent,
getAccessibleContext,
getBackground,
getContentPane,
getDefaultCloseOperation,
getDesktopIcon,
getDesktopPane,
getForeground,
getFrameIcon,
getGlassPane,
getJMenuBar,
getLayer,
getLayeredPane,
getMenuBar,
getRootPane,
getTitle,
getUI,
getUIClassID,
getWarningString,
isClosable,
isClosed,
isIcon,
isIconifiable,
isMaximizable,
isMaximum,
isResizable,
isRootPaneCheckingEnabled,
isSelected,
moveToBack,
moveToFront,
pack,
paramString,
removeInternalFrameListener,
reshape,
setBackground,
setClosable,
setClosed,
setContentPane,
setDefaultCloseOperation,
setDesktopIcon,
setForeground,
setFrameIcon,
setGlassPane,
setIcon,
setIconifiable,
setJMenuBar,
setLayer,
setLayeredPane,
setLayout,
setMaximizable,
setMaximum,
setMenuBar,
setResizable,
setRootPane,
setRootPaneCheckingEnabled,
setSelected,
setTitle,
setUI,
setVisible,
show,
startModal,
stopModal,
toBack,
toFront,
updateUI,
updateUIWhenHidden,
writeObject |
| Methods inherited from class javax.swing.JComponent |
_paintImmediately,
|
| Methods inherited from class java.awt.Container |
add,
add,
add,
add,
add,
addContainerListener,
applyOrientation,
countComponents,
deliverEvent,
dispatchEventImpl,
dispatchEventToSelf,
doLayout,
eventEnabled,
findComponentAt,
findComponentAt,
getComponent,
getComponentAt,
getComponentAt,
getComponentCount,
getComponents_NoClientCode,
getComponents,
getLayout,
getMouseEventTarget,
getWindow,
initIDs,
insets,
invalidate,
invalidateTree,
isAncestorOf,
layout,
lightweightPrint,
list,
list,
locate,
minimumSize,
nextFocus,
paintComponents,
postProcessKeyEvent,
postsOldMouseEvents,
preferredSize,
preProcessKeyEvent,
print,
printComponents,
printOneComponent,
processContainerEvent,
processEvent,
proxyEnableEvents,
proxyRequestFocus,
remove,
remove,
removeAll,
removeContainerListener,
setFocusOwner,
transferFocus,
validate,
validateTree |
| Methods inherited from class java.awt.Component |
action,
add,
addComponentListener,
addFocusListener,
addInputMethodListener,
addKeyListener,
addMouseListener,
addMouseMotionListener,
addPropertyChangeListener,
areInputMethodsEnabled,
bounds,
checkImage,
checkImage,
coalesceEvents,
constructComponentName,
contains,
createImage,
createImage,
disable,
disableEvents,
dispatchEvent,
enable,
enable,
enableEvents,
enableInputMethods,
getBounds,
getColorModel,
getComponentOrientation,
getCursor,
getDropTarget,
getFont_NoClientCode,
getFont,
getFontMetrics,
getInputContext,
getInputMethodRequests,
getLocale,
getLocation,
getLocationOnScreen,
getName,
getNativeContainer,
getParent_NoClientCode,
getParent,
getPeer,
getSize,
getToolkit,
getToolkitImpl,
getTreeLock,
getWindowForObject,
gotFocus,
handleEvent,
hide,
imageUpdate,
inside,
isDisplayable,
isEnabled,
isEnabledImpl,
isLightweight,
isShowing,
isValid,
isVisible,
keyDown,
keyUp,
list,
list,
list,
location,
lostFocus,
mouseDown,
mouseDrag,
mouseEnter,
mouseExit,
mouseMove,
mouseUp,
move,
nextFocus,
paintAll,
postEvent,
prepareImage,
prepareImage,
printAll,
processComponentEvent,
processInputMethodEvent,
processMouseEvent,
remove,
removeComponentListener,
removeFocusListener,
removeInputMethodListener,
removeKeyListener,
removeMouseListener,
removeMouseMotionListener,
removePropertyChangeListener,
repaint,
repaint,
repaint,
resize,
resize,
setBounds,
setBounds,
setComponentOrientation,
setCursor,
setDropTarget,
setLocale,
setLocation,
setLocation,
setName,
setSize,
setSize,
show,
size,
toString,
transferFocus |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
wait,
wait,
wait |
| Field Detail |
private javax.swing.JButton exitButton
private javax.swing.JButton joinButton
private MultiGameJoiner.MyTableModel tableModel
JTable will use to
interrogate a tabular data model.private MiniGame[] gamesList
private int selectedGame
MiniGame array.private int playerID
Registrar.private GamesObserver gamesObserver
MultiGameJoiner and the
Registrar and is used to inform the
MultiGameJoiner that the list of games on the server
has changed.private RefereeIntf referee
Referee is also
responsible for coordinating the running of the entire game.private Registrar registrar
Registrar, which handles
the starting, joining and ending of multi player games.| Constructor Detail |
public MultiGameJoiner(UserGUI userGUI,
java.lang.String name,
int iconID,
Registrar registrar)
MultiGameJoiner and displays the
internal frame in the centre of the application window. This method will
create and pass a GamesObserver object to the registrar,
which will contain a reference to this object. The server-side
Registrar object will then use this reference to update the
list of games residing on the server.userGUI - a reference to the parent UserGUI objectname - the name of the usericonID - the iconID of the userregistrar - the server-side Registrar object| Method Detail |
public void addGame(java.lang.String name,
int limit,
int gameID)
GamesObserver which is in turn called by the MMS.name - the name of the game creatorlimit - the score limitgameID - a unique identifier for the game
public void updateWaiting(int gameID,
int waitingToJoin)
GamesObserver which is in turn
called by the MMS.gameID - a unique identifier for the gamewaitingToJoin - the number of places remainingpublic void removeGame(int gameID)
GamesObserver which is in turn called by the MMS.gameID - a unique identifier for the game
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||