net.sf.freecol.client.gui.panel
Class FreeColPanel

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 net.sf.freecol.client.gui.panel.FreeColPanel
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
AboutPanel, BuildQueuePanel, CargoPanel, ChatPanel, ColonyPanel, ColonyPanel.TilePanel, ColopediaGameObjectTypePanel, ColopediaPanel, ColorCellEditor.ColorChooserPanel, ConceptDetailPanel, EuropePanel, FreeColDialog, IndianSettlementPanel, InfoPanel, MainPanel, MapEditorTransformPanel, NewPanel, ReportPanel, ServerListPanel, StartGamePanel, StatisticsPanel, StatusPanel, TilePanel, VictoryPanel, WorkProductionPanel

public abstract class FreeColPanel
extends javax.swing.JPanel
implements java.awt.event.ActionListener

Superclass for all panels in FreeCol.

See Also:
Serialized Form

Nested Class Summary
 
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
protected static java.awt.Font bigHeaderFont
           
protected static java.awt.Color BORDER_COLOR
           
private static int cancelKeyCode
           
static javax.swing.border.Border CELLBORDER
           
protected static int COLUMNS
           
protected static java.awt.Font defaultFont
           
protected  boolean editable
           
static java.awt.Insets emptyMargin
           
private  FreeColClient freeColClient
           
private  GUI gui
           
protected static java.lang.String HELP
           
static javax.swing.border.Border LEFTCELLBORDER
           
protected static java.awt.Color LINK_COLOR
           
private static java.util.logging.Logger logger
           
protected static int margin
           
protected static java.awt.Font mediumHeaderFont
           
protected static java.text.DecimalFormat modifierFormat
           
protected static java.lang.String OK
           
protected  javax.swing.JButton okButton
           
protected static java.awt.Font smallHeaderFont
           
protected static javax.swing.text.StyleContext styleContext
           
static javax.swing.border.Border TOPCELLBORDER
           
static javax.swing.border.Border TOPLEFTCELLBORDER
           
protected static java.awt.Color WARNING_COLOR
           
 
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
FreeColPanel(FreeColClient freeColClient, GUI gui)
          Constructor.
FreeColPanel(FreeColClient freeColClient, GUI gui, java.awt.LayoutManager layout)
          Default constructor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          This function analyses an event and calls the right methods to take care of the user's requests.
 void addClosingCallback(java.lang.Runnable runnable)
          Add a routine to be called when this panel closes.
protected  javax.swing.JButton createColonyButton(Colony colony)
           
static void enterPressesWhenFocused(javax.swing.JButton button)
          Registers enter key for a JButton.
protected  Canvas getCanvas()
          Get the Canvas value.
protected  ClientOptions getClientOptions()
          Return the client's ClientOptions.
protected  InGameController getController()
          Describe getController method here.
protected static javax.swing.JLabel getDefaultHeader(java.lang.String text)
          Returns the default header for panels.
protected static javax.swing.JTextArea getDefaultTextArea(java.lang.String text)
          Returns a text area with standard settings suitable for use in FreeCol dialogs.
protected static javax.swing.JTextArea getDefaultTextArea(java.lang.String text, int columns)
          Returns a text area with standard settings suitable for use in FreeCol dialogs.
static javax.swing.JTextPane getDefaultTextPane()
          Get a JTextPane with default styles.
static javax.swing.JTextPane getDefaultTextPane(java.lang.String text)
          Get a JTextPane with default styles and given text.
protected  java.util.Map<java.lang.String,Turn> getElectionTurns()
          Returns the Turns during which a Player's FoundingFathers were elected to the Continental Congress
protected  FreeColClient getFreeColClient()
          Gets the FreeColClient from the canvas.
protected  Game getGame()
          Describe getGame method here.
protected  GUI getGUI()
           
private  int getInteger(java.lang.String key)
          Return an int associated with the name of the panel's class plus the given key from the saved ClientOptions.
protected  ImageLibrary getLibrary()
          Returns the ImageLibrary.
static javax.swing.JButton getLinkButton(java.lang.String text, javax.swing.Icon icon, java.lang.String action)
          Return a button suitable for linking to another panel (e.g.
static java.text.DecimalFormat getModifierFormat()
          Returns the default modifier value format.
protected  Player getMyPlayer()
          Describe getMyPlayer method here.
 java.awt.Point getSavedPosition()
          Returns the saved position of this panel, null by default.
protected  java.awt.Dimension getSavedSize()
          Returns the saved size of this panel, null by default.
protected  java.util.List<Colony> getSortedColonies()
          Return the player's Colonies, sorted according to player's ClientOptions.
protected  Specification getSpecification()
          Describe getSpecification method here.
protected  boolean isEditable()
          Checks if this panel is editable
protected  javax.swing.JLabel localizedLabel(java.lang.String key)
          Return a JLabel with Messages.message(key) as text.
protected  javax.swing.JLabel localizedLabel(StringTemplate template)
          Return a JLabel with Messages.localize(template) as text.
 void notifyClose()
          Notify this panel that it is being removed from the canvas.
 void requestFocus()
          The OK button requests focus.
protected  void restoreSavedSize(java.awt.Dimension d)
          Set preferred size to saved size, or to the given Dimension if no saved size was found.
protected  void restoreSavedSize(int w, int h)
          Set preferred size to saved size, or to [w, h] if no saved size was found.
private  void saveInteger(java.lang.String key, int value)
          Save an int value to the saved ClientOptions, using the name of the panel's class plus the given key as and ID.
private  void saveSize()
          Save the current size of the panel.
private  void saveSize(java.awt.Dimension size)
          Save the given Dimension as size of the panel.
 void setCancelComponent(javax.swing.AbstractButton cancelButton)
          Make the given button the CANCEL button.
protected  void setEditable(boolean newEditable)
          Set the Editable value.
protected  java.util.Set<Modifier> sortModifiers(java.util.Set<Modifier> result)
          Sort the given modifiers according to type.
 
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, 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

logger

private static final java.util.logging.Logger logger

OK

protected static final java.lang.String OK
See Also:
Constant Field Values

HELP

protected static final java.lang.String HELP
See Also:
Constant Field Values

emptyMargin

public static final java.awt.Insets emptyMargin

cancelKeyCode

private static final int cancelKeyCode
See Also:
Constant Field Values

modifierFormat

protected static final java.text.DecimalFormat modifierFormat

defaultFont

protected static final java.awt.Font defaultFont

smallHeaderFont

protected static final java.awt.Font smallHeaderFont

mediumHeaderFont

protected static final java.awt.Font mediumHeaderFont

bigHeaderFont

protected static final java.awt.Font bigHeaderFont

COLUMNS

protected static final int COLUMNS
See Also:
Constant Field Values

margin

protected static final int margin
See Also:
Constant Field Values

WARNING_COLOR

protected static final java.awt.Color WARNING_COLOR

LINK_COLOR

protected static final java.awt.Color LINK_COLOR

BORDER_COLOR

protected static final java.awt.Color BORDER_COLOR

TOPCELLBORDER

public static final javax.swing.border.Border TOPCELLBORDER

CELLBORDER

public static final javax.swing.border.Border CELLBORDER

LEFTCELLBORDER

public static final javax.swing.border.Border LEFTCELLBORDER

TOPLEFTCELLBORDER

public static final javax.swing.border.Border TOPLEFTCELLBORDER

editable

protected boolean editable

okButton

protected javax.swing.JButton okButton

freeColClient

private FreeColClient freeColClient

gui

private GUI gui

styleContext

protected static javax.swing.text.StyleContext styleContext
Constructor Detail

FreeColPanel

public FreeColPanel(FreeColClient freeColClient,
                    GUI gui)
Constructor.

Parameters:
parent - Canvas

FreeColPanel

public FreeColPanel(FreeColClient freeColClient,
                    GUI gui,
                    java.awt.LayoutManager layout)
Default constructor.

Parameters:
parent - The Canvas all panels belong to.
layout - The LayoutManager to be used.
Method Detail

enterPressesWhenFocused

public static void enterPressesWhenFocused(javax.swing.JButton button)
Registers enter key for a JButton.

Parameters:
button -

getDefaultTextPane

public static javax.swing.JTextPane getDefaultTextPane()
Get a JTextPane with default styles.

Returns:
a JTextPane value

getDefaultTextPane

public static javax.swing.JTextPane getDefaultTextPane(java.lang.String text)
Get a JTextPane with default styles and given text.

Parameters:
text - a String value
Returns:
a JTextPane value

getLinkButton

public static javax.swing.JButton getLinkButton(java.lang.String text,
                                                javax.swing.Icon icon,
                                                java.lang.String action)
Return a button suitable for linking to another panel (e.g. ColopediaPanel).

Parameters:
text - a String value
icon - an Icon value
action - a String value
Returns:
a JButton value

getModifierFormat

public static final java.text.DecimalFormat getModifierFormat()
Returns the default modifier value format.

Returns:
a DecimalFormat value

getDefaultHeader

protected static javax.swing.JLabel getDefaultHeader(java.lang.String text)
Returns the default header for panels.

Parameters:
text - a String value
Returns:
a JLabel value

getDefaultTextArea

protected static javax.swing.JTextArea getDefaultTextArea(java.lang.String text)
Returns a text area with standard settings suitable for use in FreeCol dialogs.

Parameters:
text - The text to display in the text area.
Returns:
a text area with standard settings suitable for use in FreeCol dialogs.

getDefaultTextArea

protected static javax.swing.JTextArea getDefaultTextArea(java.lang.String text,
                                                          int columns)
Returns a text area with standard settings suitable for use in FreeCol dialogs.

Parameters:
text - The text to display in the text area.
columns - an int value
Returns:
a text area with standard settings suitable for use in FreeCol dialogs.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
This function analyses an event and calls the right methods to take care of the user's requests.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
event - The incoming ActionEvent.

addClosingCallback

public void addClosingCallback(java.lang.Runnable runnable)
Add a routine to be called when this panel closes. Triggered by notifyClose() above.

Parameters:
runnable - Some code to run on close.

getSavedPosition

public java.awt.Point getSavedPosition()
Returns the saved position of this panel, null by default.

Returns:
a Point value

notifyClose

public void notifyClose()
Notify this panel that it is being removed from the canvas. Saves the current size and position of the panel to the ClientOptions, which are included in the savegame file.

See Also:
Canvas.remove(Component)

requestFocus

public void requestFocus()
The OK button requests focus.

Overrides:
requestFocus in class javax.swing.JComponent

setCancelComponent

public void setCancelComponent(javax.swing.AbstractButton cancelButton)
Make the given button the CANCEL button.

Parameters:
cancelButton - an AbstractButton value

createColonyButton

protected javax.swing.JButton createColonyButton(Colony colony)

getCanvas

protected final Canvas getCanvas()
Get the Canvas value.

Returns:
a Canvas value

getClientOptions

protected ClientOptions getClientOptions()
Return the client's ClientOptions.

Returns:
a ClientOptions value

getController

protected InGameController getController()
Describe getController method here.

Returns:
an InGameController value

getElectionTurns

protected java.util.Map<java.lang.String,Turn> getElectionTurns()
Returns the Turns during which a Player's FoundingFathers were elected to the Continental Congress

Returns:
a Turn value

getFreeColClient

protected FreeColClient getFreeColClient()
Gets the FreeColClient from the canvas.

Returns:
A current FreeColClient.

getGame

protected Game getGame()
Describe getGame method here.

Returns:
a Game value

getGUI

protected GUI getGUI()

getLibrary

protected ImageLibrary getLibrary()
Returns the ImageLibrary.

Returns:
the ImageLibrary.

getMyPlayer

protected Player getMyPlayer()
Describe getMyPlayer method here.

Returns:
a Player value

getSavedSize

protected final java.awt.Dimension getSavedSize()
Returns the saved size of this panel, null by default.

Returns:
a Dimension value

getSortedColonies

protected java.util.List<Colony> getSortedColonies()
Return the player's Colonies, sorted according to player's ClientOptions.

Returns:
a sorted List of Colonies

getSpecification

protected Specification getSpecification()
Describe getSpecification method here.

Returns:
a Specification value

isEditable

protected boolean isEditable()
Checks if this panel is editable

Returns:
boolean

localizedLabel

protected javax.swing.JLabel localizedLabel(java.lang.String key)
Return a JLabel with Messages.message(key) as text.

Parameters:
key - a String value
Returns:
a JLabel value

localizedLabel

protected javax.swing.JLabel localizedLabel(StringTemplate template)
Return a JLabel with Messages.localize(template) as text.

Parameters:
template - a StringTemplate value
Returns:
a JLabel value

restoreSavedSize

protected void restoreSavedSize(java.awt.Dimension d)
Set preferred size to saved size, or to the given Dimension if no saved size was found. Call this method in the constructor of a FreeColPanel in order to remember its size and position.

Parameters:
d - a Dimension value

restoreSavedSize

protected void restoreSavedSize(int w,
                                int h)
Set preferred size to saved size, or to [w, h] if no saved size was found. Call this method in the constructor of a FreeColPanel in order to remember its size and position.

Parameters:
w - an int value
h - an int value

setEditable

protected void setEditable(boolean newEditable)
Set the Editable value.

Parameters:
newEditable - boolean, the new Editable value

sortModifiers

protected java.util.Set<Modifier> sortModifiers(java.util.Set<Modifier> result)
Sort the given modifiers according to type.

Parameters:
result - Set of Modifier
Returns:
a sorted Set of Modifier

getInteger

private int getInteger(java.lang.String key)
Return an int associated with the name of the panel's class plus the given key from the saved ClientOptions.

Parameters:
key - a String value
Returns:
an int value

saveInteger

private void saveInteger(java.lang.String key,
                         int value)
Save an int value to the saved ClientOptions, using the name of the panel's class plus the given key as and ID.

Parameters:
key - a String value
value - an int value

saveSize

private void saveSize()
Save the current size of the panel.


saveSize

private void saveSize(java.awt.Dimension size)
Save the given Dimension as size of the panel.

Parameters:
size - a Dimension value