Package net.sf.freecol.client.gui.panel
Class InfoPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- net.sf.freecol.client.gui.panel.MigPanel
-
- net.sf.freecol.client.gui.panel.FreeColPanel
-
- net.sf.freecol.client.gui.panel.InfoPanel
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
public final class InfoPanel extends FreeColPanel implements java.beans.PropertyChangeListener
The InfoPanel is a wrapper for several informative displays in the lower right corner.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
InfoPanel.InfoPanelMode
-
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
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.Font
font
The font for the end turn message.private ImageLibrary
lib
The image library to use for the font.private static java.util.logging.Logger
logger
private MapTransform
mapTransform
The associated map transform when in MAP mode.private InfoPanel.InfoPanelMode
mode
The panel mode.private java.awt.event.MouseAdapter
mouseAdapter
The mouse listener for the various subpanels.static java.awt.Dimension
PREFERRED_SIZE
Preferred size for non-skinned panel.private static int
PRODUCTION
Number of goods/production items to show.private java.awt.Image
skin
An optional background image (the standard one has shape).private static int
SLACK
A small pixel gap.private static int
TEXT_WIDTH
Pixel width of text area beside icon.private Tile
tile
The associated tile when in TILE mode.private Unit
unit
The associated unit when in UNIT mode.private boolean
useSkin
Use the info panel skin.-
Fields inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
CANCEL, editable, HELP, MARGIN, NL_SPAN_SPLIT_2, OK, okButton, SPAN_SPLIT_2
-
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
-
-
Constructor Summary
Constructors Constructor Description InfoPanel(FreeColClient freeColClient)
The constructor that will add the items to this panel.InfoPanel(FreeColClient freeColClient, boolean useSkin)
The constructor that will add the items to this panel.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
addLabels(javax.swing.JPanel panel, java.util.List<javax.swing.JLabel> labels, int max)
Add labels to a panel with MigLayout, on one line.private InfoPanel.InfoPanelMode
changeMode(InfoPanel.InfoPanelMode newMode)
Change the panel mode.private void
fillEndPanel()
Fill in an end turn message into a new panel and add it.private MapTransform
fillMapPanel(MapTransform mapTransform)
Fill map transform information into a new panel and add it.private Tile
fillTilePanel(Tile tile)
Fill tile information into a new panel and add it.private Unit
fillUnitPanel(Unit unit)
Fill unit information into a new panel and add it.private Tile
getTile()
Get the mode-dependent associated tile.private MigPanel
newPanel(java.awt.LayoutManager layout)
Get a new MigPanel with specified layout and size it to fit neatly.void
paintComponent(java.awt.Graphics graphics)
void
propertyChange(java.beans.PropertyChangeEvent event)
void
refresh()
Refresh this panel.private void
setPanel(MigPanel panel)
Size, place and request redraw of the given panel.void
update()
Update thisInfoPanel
to end turn mode.void
update(MapTransform mapTransform)
Update thisInfoPanel
to map mode with a given transform.void
update(Tile tile)
Update thisInfoPanel
to tile mode with a given tile.void
update(Unit unit)
Update thisInfoPanel
to unit mode with a given unit.void
updateLayoutIfNeeded()
-
Methods inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
actionPerformed, addClosingCallback, createColonyButton, getClientOptions, getFreeColClient, getGame, getGUI, getImageLibrary, getMap, getMyPlayer, getSmallAbstractUnitImage, getSpecification, igc, isEditable, removeNotify, requestFocus, setCancelComponent
-
Methods inherited from class net.sf.freecol.client.gui.panel.MigPanel
getMigLayout, getUIClassID
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, 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, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, 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
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
TEXT_WIDTH
private static final int TEXT_WIDTH
Pixel width of text area beside icon.- See Also:
- Constant Field Values
-
SLACK
private static final int SLACK
A small pixel gap.- See Also:
- Constant Field Values
-
PRODUCTION
private static final int PRODUCTION
Number of goods/production items to show.- See Also:
- Constant Field Values
-
PREFERRED_SIZE
public static final java.awt.Dimension PREFERRED_SIZE
Preferred size for non-skinned panel.
-
lib
private final ImageLibrary lib
The image library to use for the font.
-
font
private java.awt.Font font
The font for the end turn message.
-
skin
private java.awt.Image skin
An optional background image (the standard one has shape).
-
mouseAdapter
private final java.awt.event.MouseAdapter mouseAdapter
The mouse listener for the various subpanels.
-
mode
private InfoPanel.InfoPanelMode mode
The panel mode.
-
mapTransform
private MapTransform mapTransform
The associated map transform when in MAP mode.
-
tile
private Tile tile
The associated tile when in TILE mode.
-
unit
private Unit unit
The associated unit when in UNIT mode.
-
useSkin
private boolean useSkin
Use the info panel skin.
-
-
Constructor Detail
-
InfoPanel
public InfoPanel(FreeColClient freeColClient)
The constructor that will add the items to this panel.- Parameters:
freeColClient
- TheFreeColClient
for the game.
-
InfoPanel
public InfoPanel(FreeColClient freeColClient, boolean useSkin)
The constructor that will add the items to this panel.- Parameters:
freeColClient
- TheFreeColClient
for the game.useSkin
- Use the info panel skin.
-
-
Method Detail
-
updateLayoutIfNeeded
public void updateLayoutIfNeeded()
-
newPanel
private MigPanel newPanel(java.awt.LayoutManager layout)
Get a new MigPanel with specified layout and size it to fit neatly.- Parameters:
layout
- TheLayoutManager
for the panel.- Returns:
- The new
MigPanel
.
-
setPanel
private void setPanel(MigPanel panel)
Size, place and request redraw of the given panel.- Parameters:
panel
- The new panel to display.
-
getTile
private Tile getTile()
Get the mode-dependent associated tile.- Returns:
- The
Tile
associated with this panel.
-
changeMode
private InfoPanel.InfoPanelMode changeMode(InfoPanel.InfoPanelMode newMode)
Change the panel mode. The important job here is to clear out all the old settings.- Parameters:
newMode
- The newInfoPanelMode
.- Returns:
- The old
InfoPanelMode
.
-
fillEndPanel
private void fillEndPanel()
Fill in an end turn message into a new panel and add it.
-
fillMapPanel
private MapTransform fillMapPanel(MapTransform mapTransform)
Fill map transform information into a new panel and add it.- Parameters:
mapTransform
- TheMapTransform
to display.- Returns:
- The
MapTransform
.
-
fillTilePanel
private Tile fillTilePanel(Tile tile)
Fill tile information into a new panel and add it.- Parameters:
tile
- TheTile
to display.- Returns:
- The
Tile
.
-
addLabels
private static void addLabels(javax.swing.JPanel panel, java.util.List<javax.swing.JLabel> labels, int max)
Add labels to a panel with MigLayout, on one line.- Parameters:
panel
- TheJPanel
to add to.labels
- A list ofJLabel
s to add.max
- The maximum number of labels to put on a line
-
fillUnitPanel
private Unit fillUnitPanel(Unit unit)
Fill unit information into a new panel and add it.- Parameters:
unit
- TheUnit
to display.- Returns:
- The
Unit
.
-
update
public void update()
Update thisInfoPanel
to end turn mode.
-
update
public void update(MapTransform mapTransform)
Update thisInfoPanel
to map mode with a given transform.- Parameters:
mapTransform
- TheMapTransform
to display.
-
update
public void update(Tile tile)
Update thisInfoPanel
to tile mode with a given tile.- Parameters:
tile
- The displayedTile
.
-
update
public void update(Unit unit)
Update thisInfoPanel
to unit mode with a given unit.- Parameters:
unit
- The displayedUnit
.
-
refresh
public void refresh()
Refresh this panel. Apparently this is necessary when adding the info panel back into the canvas with the skinned corner, otherwise the unit does not get displayed. TODO: Explain why, or fix so we do not need this.
-
paintComponent
public void paintComponent(java.awt.Graphics graphics)
- Overrides:
paintComponent
in classjavax.swing.JComponent
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent event)
- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
-