com.threerings.micasa.lobby
Class LobbySelector

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.threerings.micasa.lobby.LobbySelector
All Implemented Interfaces:
LobbyService.CategoriesListener, LobbyService.LobbiesListener, InvocationService.InvocationListener, ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible

public class LobbySelector
extends JPanel
implements ActionListener, LobbyService.CategoriesListener, LobbyService.LobbiesListener

The lobby selector displays a drop-down box listing the categories of lobbies available on this server and when a category is selected, it displays a list of the lobbies that are available in that category. If a lobby is double-clicked, it moves the client into that lobby room.

See Also:
Serialized Form

Nested Class Summary
protected static class LobbySelector.LobbyCellRenderer
          Used to render Lobby instances in our lobby list.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Map<String,DefaultListModel> _catlists
           
protected  JComboBox _combo
           
protected  MiCasaContext _ctx
           
protected  JList _loblist
           
protected  LobbyService _lservice
           
protected  String _pendingCategory
           
protected static String CAT_FIRST_ITEM
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LobbySelector(MiCasaContext ctx)
          Constructs a new lobby selector component.
 
Method Summary
 void actionPerformed(ActionEvent evt)
          Called when the user selects a category or double-clicks on a lobby.
 void addNotify()
           
protected  void enterLobby(Lobby lobby)
          Called when the user selects a lobby from the lobby list.
 void gotCategories(String[] categories)
          Supplies the listener with the results of a LobbyService.getCategories(com.threerings.micasa.lobby.LobbyService.CategoriesListener) request.
 void gotLobbies(List<Lobby> lobbies)
          Supplies the listener with the results of a LobbyService.getLobbies(java.lang.String, com.threerings.micasa.lobby.LobbyService.LobbiesListener) request.
 void requestFailed(String reason)
           
protected  void selectCategory(String category)
          Fetches the list of lobbies available in a particular category (if they haven't already been fetched) and displays them in the lobby list.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_ctx

protected MiCasaContext _ctx

_lservice

protected LobbyService _lservice

_combo

protected JComboBox _combo

_loblist

protected JList _loblist

_catlists

protected Map<String,DefaultListModel> _catlists

_pendingCategory

protected String _pendingCategory

CAT_FIRST_ITEM

protected static final String CAT_FIRST_ITEM
See Also:
Constant Field Values
Constructor Detail

LobbySelector

public LobbySelector(MiCasaContext ctx)
Constructs a new lobby selector component. It will wait until it is visible before issuing a get categories request to download a list of categories.

Method Detail

addNotify

public void addNotify()
Overrides:
addNotify in class JComponent

actionPerformed

public void actionPerformed(ActionEvent evt)
Called when the user selects a category or double-clicks on a lobby.

Specified by:
actionPerformed in interface ActionListener

gotCategories

public void gotCategories(String[] categories)
Description copied from interface: LobbyService.CategoriesListener
Supplies the listener with the results of a LobbyService.getCategories(com.threerings.micasa.lobby.LobbyService.CategoriesListener) request.

Specified by:
gotCategories in interface LobbyService.CategoriesListener

gotLobbies

public void gotLobbies(List<Lobby> lobbies)
Description copied from interface: LobbyService.LobbiesListener
Supplies the listener with the results of a LobbyService.getLobbies(java.lang.String, com.threerings.micasa.lobby.LobbyService.LobbiesListener) request.

Specified by:
gotLobbies in interface LobbyService.LobbiesListener

requestFailed

public void requestFailed(String reason)
Specified by:
requestFailed in interface InvocationService.InvocationListener

selectCategory

protected void selectCategory(String category)
Fetches the list of lobbies available in a particular category (if they haven't already been fetched) and displays them in the lobby list.


enterLobby

protected void enterLobby(Lobby lobby)
Called when the user selects a lobby from the lobby list.