Class StatusBarPhaseDisplay
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
megamek.client.ui.widget.SkinnedJPanel
megamek.client.ui.panels.phaseDisplay.AbstractPhaseDisplay
megamek.client.ui.panels.phaseDisplay.StatusBarPhaseDisplay
- All Implemented Interfaces:
ActionListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,BoardViewListener
,KeyBindReceiver
,GameListener
,IPreferenceChangeListener
,Distractable
- Direct Known Subclasses:
ActionPhaseDisplay
,DeploymentDisplay
,DeployMinefieldDisplay
,PrephaseDisplay
,ReportDisplay
,SBFActionPhaseDisplay
,SBFReportDisplay
,SelectArtyAutoHitHexDisplay
public abstract class StatusBarPhaseDisplay
extends AbstractPhaseDisplay
implements ActionListener, IPreferenceChangeListener, KeyBindReceiver
This is a parent class for the button display for each phase. Every phase has a panel of control
buttons along with a Done button. Each button corresponds to a command that can be carried out in
the current phase. This class formats the button panel, the done button, and a status display area.
Control buttons are grouped and the groups can be cycled through.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Comparator for comparing the priority of two commands, used to determine button order.static interface
Interface that defines what a command for a phase is.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
FieldsModifier and TypeFieldDescriptionprotected int
protected int
protected final IClientGUI
protected int
The button group that is currently displayedprotected static final GUIPreferences
protected static final Dimension
protected int
The number of button groups there are, needs to be computed in a child class.protected JPanel
protected JPanel
Fields inherited from class megamek.client.ui.panels.phaseDisplay.AbstractPhaseDisplay
butDone, DONE_BUTTON_WIDTH
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addToDonePanel
(JPanel donePanel, JComponent item) abstract void
clear()
Clears the actions of this phase.protected MegaMekButton
createButton
(String cmd, String keyPrefix) protected String
createToolTip
(String cmd, String keyPrefix, String hotKeyDesc) void
protected abstract List<MegaMekButton>
Returns the list of buttons that should be displayed.boolean
protected String
playerNameOrUnknown
(Player player) void
protected abstract void
set button that should be displayed.protected abstract void
set button tool tips that should be displayed.void
setStatusBarText
(String text) void
void
Adds buttons to the button panel.protected UIUtil.FixedXPanel
protected void
setupStatusBar
(String statusInfo) Sets up the status bar.boolean
This method should return true when this KeyBindReceiver is in a state to receive the keybind and may react to it, false otherwise.void
void
Methods inherited from class megamek.client.ui.panels.phaseDisplay.AbstractPhaseDisplay
boardHexHighlighted, finishedMovingUnits, firstLOSHex, gameBoardChanged, gameBoardNew, gameClientFeedbackRequest, gameEnd, gameEntityChange, gameEntityNew, gameEntityNewOffboard, gameEntityRemove, gameMapQuery, gameNewAction, gamePhaseChange, gamePlayerChange, gamePlayerChat, gamePlayerConnected, gamePlayerDisconnected, gameReport, gameSettingsChange, gameTurnChange, gameVictory, getButDone, getClientgui, hexCursor, hexMoused, hexSelected, isIgnoringEvents, isMyTurn, ready, secondLOSHex, sendDone, setIgnoringEvents, unitSelected
Methods inherited from class megamek.client.ui.widget.SkinnedJPanel
paintComponent
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
Methods inherited from interface megamek.common.util.Distractable
removeAllListeners
Methods inherited from interface megamek.common.event.GameListener
gamePlayerStrategicAction, gameScriptedEvent, gameUnitChange
-
Field Details
-
GUIP
-
MIN_BUTTON_SIZE
-
clientgui
-
panStatus
-
panButtons
-
currentButtonGroup
protected int currentButtonGroupThe button group that is currently displayed -
numButtonGroups
protected int numButtonGroupsThe number of button groups there are, needs to be computed in a child class. -
buttonsPerRow
protected int buttonsPerRow -
buttonsPerGroup
protected int buttonsPerGroup
-
-
Constructor Details
-
StatusBarPhaseDisplay
-
-
Method Details
-
getButtonList
Returns the list of buttons that should be displayed. -
setButtons
protected abstract void setButtons()set button that should be displayed. -
createButton
-
setButtonsTooltips
protected abstract void setButtonsTooltips()set button tool tips that should be displayed. -
createToolTip
-
setupButtonPanel
public void setupButtonPanel()Adds buttons to the button panel. The buttons to be added are retrieved with thegetButtonList()
method. The number of buttons to display is defined inbuttonsPerGroup
and which group of buttons will be displayed is set bycurrentButtonGroup
. -
setupDonePanel
-
addToDonePanel
-
clear
public abstract void clear()Clears the actions of this phase. Called usually when the ESC key is pressed. -
setupStatusBar
Sets up the status bar. It usually displays info on the current phase and if it's the local player's turn. -
setStatusBarText
-
preferenceChange
- Specified by:
preferenceChange
in interfaceIPreferenceChangeListener
-
shouldReceiveKeyCommands
public boolean shouldReceiveKeyCommands()Description copied from interface:KeyBindReceiver
This method should return true when this KeyBindReceiver is in a state to receive the keybind and may react to it, false otherwise. This should return false when the receiver is hidden, inactive or behind a modal dialog. It should return true when it would be expected to act on a keybind, i.e. when it has the appearance of being in focus. When this method returns false, this receiver will not be counted as having consumed the key press.- Specified by:
shouldReceiveKeyCommands
in interfaceKeyBindReceiver
- Returns:
- True when the this receiver is in a state to receive the keybind and may react to it. False otherwise.
-
startTimer
public void startTimer() -
stopTimer
public void stopTimer() -
extendTimer
public void extendTimer() -
isTimerExpired
public boolean isTimerExpired()- Returns:
- True when there is a turn timer and it has expired, false when there was no turn timer or it has not yet expired.
-
getRemainingPlayerWithTurns
-
setStatusBarWithNotDonePlayers
public void setStatusBarWithNotDonePlayers() -
playerNameOrUnknown
-