jrummikub.view.impl
Class PlayerPanel

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 jrummikub.view.impl.PlayerPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, IPlayerPanel

 class PlayerPanel
extends javax.swing.JPanel
implements IPlayerPanel

Implementation of the player panel


Nested Class Summary
private  class PlayerPanel.LeftPanelResizeListener
           
private  class PlayerPanel.RightPanelResizeListener
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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  javax.swing.JLabel currentPlayerNameLabel
           
private  javax.swing.JButton endTurnButton
           
private  Event endTurnEvent
           
private  HandPanel hand
           
private static float HAND_ROW_BUTTON_RATIO
           
private  javax.swing.JButton handRowDownButton
           
private  javax.swing.JButton handRowUpButton
           
private  javax.swing.JLabel hasLaidOutLabel
           
private  javax.swing.JButton keepStonesButton
           
private  javax.swing.JPanel leftPanel
           
private  java.awt.event.ComponentListener leftPanelResizeListener
           
private  int leftPanelWidth
           
private static float MAX_BUTTON_FONT_SIZE
           
private  boolean mayPause
           
private  javax.swing.JButton pauseButton
           
private  Event pauseEvent
           
private  javax.swing.JButton redealButton
           
private  Event redealEvent
           
private  javax.swing.JPanel rightPanel
           
private  java.awt.event.ComponentListener rightPanelResizeListener
           
private static java.text.DecimalFormat secondFormat
           
private static float SIDE_PANEL_FIRST_LINE_HEIGHT
           
private static int SIDE_PANEL_INSET
           
private static int SIDE_PANEL_MAX_WIDTH
           
private static int SIDE_PANEL_SEPARATOR
           
private  javax.swing.JButton sortByGroupsButton
           
private  Event sortByGroupsEvent
           
private  javax.swing.JButton sortByRunsButton
           
private  Event sortByRunsEvent
           
private  javax.swing.JProgressBar timeBar
           
 
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
PlayerPanel()
          Creates a new PlayerPanel instance
 
Method Summary
private  javax.swing.JButton createButton(javax.swing.JPanel panel, java.lang.String caption, java.awt.event.ActionListener listener)
           
private  void createLeftPanel()
           
private  void createRightPanel()
           
private  void createRightPanelButtons()
           
(package private)  void enableButtons(boolean enable)
           
 IEvent getEndTurnEvent()
          The end turn event is emitted when the player wants to end his turn
(package private)  HandPanel getHandPanel()
           
(package private)  int getLeftPanelWidth()
           
(package private)  IEvent getPauseEvent()
           
 IEvent getRedealEvent()
          The redeal event is emitted when the player wants to get new stones
 IEvent getSortByGroupsEvent()
          The sort by groups event is emitted when the player wants to sort his stones by groups
 IEvent getSortByRunsEvent()
          The sort by runs event is emitted when the player wants to sort his stones by runs
(package private)  void rescale()
           
(package private)  void setCurrentPlayerColor(java.awt.Color color)
           
(package private)  void setCurrentPlayerName(java.lang.String playerName)
          Sets the current player name
 void setEndTurnMode(TurnMode turnMode)
          Sets the buttons available to end the turn
(package private)  void setHasLaidOut(boolean hasLaidOut)
           
(package private)  void setMayPause(boolean mayPause)
           
 void setTime(int time, int totalTime)
          Sets the time the player has left for his turn
(package private)  void showButtons(boolean show)
           
(package private)  void updateButtons()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SIDE_PANEL_INSET

private static final int SIDE_PANEL_INSET
See Also:
Constant Field Values

SIDE_PANEL_SEPARATOR

private static final int SIDE_PANEL_SEPARATOR
See Also:
Constant Field Values

SIDE_PANEL_FIRST_LINE_HEIGHT

private static final float SIDE_PANEL_FIRST_LINE_HEIGHT
See Also:
Constant Field Values

SIDE_PANEL_MAX_WIDTH

private static final int SIDE_PANEL_MAX_WIDTH
See Also:
Constant Field Values

HAND_ROW_BUTTON_RATIO

private static final float HAND_ROW_BUTTON_RATIO
See Also:
Constant Field Values

MAX_BUTTON_FONT_SIZE

private static final float MAX_BUTTON_FONT_SIZE
See Also:
Constant Field Values

secondFormat

private static final java.text.DecimalFormat secondFormat

hand

private HandPanel hand

leftPanel

private javax.swing.JPanel leftPanel

rightPanel

private javax.swing.JPanel rightPanel

currentPlayerNameLabel

private javax.swing.JLabel currentPlayerNameLabel

hasLaidOutLabel

private javax.swing.JLabel hasLaidOutLabel

sortByGroupsButton

private javax.swing.JButton sortByGroupsButton

sortByRunsButton

private javax.swing.JButton sortByRunsButton

handRowUpButton

private javax.swing.JButton handRowUpButton

handRowDownButton

private javax.swing.JButton handRowDownButton

timeBar

private javax.swing.JProgressBar timeBar

endTurnButton

private javax.swing.JButton endTurnButton

keepStonesButton

private javax.swing.JButton keepStonesButton

redealButton

private javax.swing.JButton redealButton

pauseButton

private javax.swing.JButton pauseButton

sortByGroupsEvent

private Event sortByGroupsEvent

sortByRunsEvent

private Event sortByRunsEvent

endTurnEvent

private Event endTurnEvent

redealEvent

private Event redealEvent

pauseEvent

private Event pauseEvent

leftPanelWidth

private int leftPanelWidth

mayPause

private boolean mayPause

leftPanelResizeListener

private java.awt.event.ComponentListener leftPanelResizeListener

rightPanelResizeListener

private java.awt.event.ComponentListener rightPanelResizeListener
Constructor Detail

PlayerPanel

PlayerPanel()
Creates a new PlayerPanel instance

Method Detail

getHandPanel

HandPanel getHandPanel()

setCurrentPlayerName

void setCurrentPlayerName(java.lang.String playerName)
Sets the current player name

Parameters:
playerName - the player name

setCurrentPlayerColor

void setCurrentPlayerColor(java.awt.Color color)

setHasLaidOut

void setHasLaidOut(boolean hasLaidOut)

setTime

public void setTime(int time,
                    int totalTime)
Description copied from interface: IPlayerPanel
Sets the time the player has left for his turn

Specified by:
setTime in interface IPlayerPanel
Parameters:
time - the time left
totalTime - total time for a turn

getSortByGroupsEvent

public IEvent getSortByGroupsEvent()
Description copied from interface: IPlayerPanel
The sort by groups event is emitted when the player wants to sort his stones by groups

Specified by:
getSortByGroupsEvent in interface IPlayerPanel
Returns:
the event

getSortByRunsEvent

public IEvent getSortByRunsEvent()
Description copied from interface: IPlayerPanel
The sort by runs event is emitted when the player wants to sort his stones by runs

Specified by:
getSortByRunsEvent in interface IPlayerPanel
Returns:
the event

getEndTurnEvent

public IEvent getEndTurnEvent()
Description copied from interface: IPlayerPanel
The end turn event is emitted when the player wants to end his turn

Specified by:
getEndTurnEvent in interface IPlayerPanel
Returns:
the event

getRedealEvent

public IEvent getRedealEvent()
Description copied from interface: IPlayerPanel
The redeal event is emitted when the player wants to get new stones

Specified by:
getRedealEvent in interface IPlayerPanel
Returns:
the event

getPauseEvent

IEvent getPauseEvent()

createLeftPanel

private void createLeftPanel()

createRightPanel

private void createRightPanel()

createRightPanelButtons

private void createRightPanelButtons()

createButton

private javax.swing.JButton createButton(javax.swing.JPanel panel,
                                         java.lang.String caption,
                                         java.awt.event.ActionListener listener)

rescale

void rescale()

getLeftPanelWidth

int getLeftPanelWidth()

updateButtons

void updateButtons()

setEndTurnMode

public void setEndTurnMode(TurnMode turnMode)
Description copied from interface: IPlayerPanel
Sets the buttons available to end the turn

Specified by:
setEndTurnMode in interface IPlayerPanel
Parameters:
turnMode - the TurnMode

showButtons

void showButtons(boolean show)

enableButtons

void enableButtons(boolean enable)

setMayPause

void setMayPause(boolean mayPause)