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 classInfoPanel.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.FontfontThe font for the end turn message.private ImageLibrarylibThe image library to use for the font.private static java.util.logging.Loggerloggerprivate MapTransformmapTransformThe associated map transform when in MAP mode.private InfoPanel.InfoPanelModemodeThe panel mode.private java.awt.event.MouseAdaptermouseAdapterThe mouse listener for the various subpanels.static java.awt.DimensionPREFERRED_SIZEPreferred size for non-skinned panel.private static intPRODUCTIONNumber of goods/production items to show.private java.awt.ImageskinAn optional background image (the standard one has shape).private static intSLACKA small pixel gap.private static intTEXT_WIDTHPixel width of text area beside icon.private TiletileThe associated tile when in TILE mode.private UnitunitThe associated unit when in UNIT mode.private booleanuseSkinUse 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 voidaddLabels(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.InfoPanelModechangeMode(InfoPanel.InfoPanelMode newMode)Change the panel mode.private voidfillEndPanel()Fill in an end turn message into a new panel and add it.private MapTransformfillMapPanel(MapTransform mapTransform)Fill map transform information into a new panel and add it.private TilefillTilePanel(Tile tile)Fill tile information into a new panel and add it.private UnitfillUnitPanel(Unit unit)Fill unit information into a new panel and add it.private TilegetTile()Get the mode-dependent associated tile.private MigPanelnewPanel(java.awt.LayoutManager layout)Get a new MigPanel with specified layout and size it to fit neatly.voidpaintComponent(java.awt.Graphics graphics)voidpropertyChange(java.beans.PropertyChangeEvent event)voidrefresh()Refresh this panel.private voidsetPanel(MigPanel panel)Size, place and request redraw of the given panel.voidupdate()Update thisInfoPanelto end turn mode.voidupdate(MapTransform mapTransform)Update thisInfoPanelto map mode with a given transform.voidupdate(Tile tile)Update thisInfoPanelto tile mode with a given tile.voidupdate(Unit unit)Update thisInfoPanelto unit mode with a given unit.voidupdateLayoutIfNeeded()-
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- TheFreeColClientfor the game.
-
InfoPanel
public InfoPanel(FreeColClient freeColClient, boolean useSkin)
The constructor that will add the items to this panel.- Parameters:
freeColClient- TheFreeColClientfor 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- TheLayoutManagerfor 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
Tileassociated 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- TheMapTransformto display.- Returns:
- The
MapTransform.
-
fillTilePanel
private Tile fillTilePanel(Tile tile)
Fill tile information into a new panel and add it.- Parameters:
tile- TheTileto 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- TheJPanelto add to.labels- A list ofJLabels 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- TheUnitto display.- Returns:
- The
Unit.
-
update
public void update()
Update thisInfoPanelto end turn mode.
-
update
public void update(MapTransform mapTransform)
Update thisInfoPanelto map mode with a given transform.- Parameters:
mapTransform- TheMapTransformto display.
-
update
public void update(Tile tile)
Update thisInfoPanelto tile mode with a given tile.- Parameters:
tile- The displayedTile.
-
update
public void update(Unit unit)
Update thisInfoPanelto 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:
paintComponentin classjavax.swing.JComponent
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent event)
- Specified by:
propertyChangein interfacejava.beans.PropertyChangeListener
-
-