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

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
                      extended by net.sf.freecol.client.gui.panel.ReportPanel
                          extended by net.sf.freecol.client.gui.panel.ReportColonyPanel
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public final class ReportColonyPanel
extends ReportPanel
implements java.awt.event.ActionListener

This panel displays the Colony Report.

See Also:
Serialized Form

Nested Class Summary
private  class ReportColonyPanel.Suggestion
           
 
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 static java.util.Comparator<AbstractGoods> abstractGoodsComparator
           
private static java.lang.String BUILDQUEUE
           
private  java.awt.Color cAlarm
           
private  java.awt.Color cExport
           
private  java.awt.Color cGood
           
private  java.util.List<Colony> colonies
           
private  java.awt.Color cPlain
           
private  java.awt.Color cWarn
           
private static java.util.Comparator<GoodsType> goodsComparator
           
private  java.util.List<GoodsType> goodsTypes
           
private static java.util.Comparator<Unit> teacherComparator
           
private  boolean useCompact
           
 
Fields inherited from class net.sf.freecol.client.gui.panel.ReportPanel
header, logger, reportPanel, scrollPane, unitTypeComparator
 
Fields inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
bigHeaderFont, BORDER_COLOR, CELLBORDER, COLUMNS, defaultFont, editable, emptyMargin, HELP, LEFTCELLBORDER, LINK_COLOR, margin, mediumHeaderFont, modifierFormat, OK, okButton, smallHeaderFont, styleContext, TOPCELLBORDER, TOPLEFTCELLBORDER, 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
ReportColonyPanel(FreeColClient freeColClient, GUI gui)
          The constructor that will add the items to this panel.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Implement the action listener, checking for BUILDQUEUE events, generally displaying the colony panel if given a colony id, but otherwise delegating to the ReportPanel handler.
private  void addSuggestion(java.util.HashMap<UnitType,ReportColonyPanel.Suggestion> suggestions, UnitType old, UnitType expert, GoodsType work, int amount)
           
private  void addUnits(java.util.HashMap<UnitType,ReportColonyPanel.Suggestion> suggestions, java.util.List<UnitType> have, Colony colony, int grow)
           
private  GoodsType bestProduction(WorkLocation wl, UnitType type)
           
private  void classicColonyPanel(java.util.List<Colony> colonies)
           
private  javax.swing.JButton colourButton(java.lang.String action, java.lang.String h, javax.swing.ImageIcon i, java.awt.Color c, StringTemplate t)
           
private  void conciseHeaders(java.util.List<GoodsType> goodsTypes, boolean top, Market market)
           
private  void initializeCompactColonyPanel()
           
private  javax.swing.JLabel newLabel(java.lang.String h, javax.swing.ImageIcon i, java.awt.Color c, StringTemplate t)
           
private  StringTemplate stpl(java.lang.String messageId)
           
private  void updateColony(Colony colony)
           
private  void updateCompactColonyPanel()
           
private  boolean wantGoods(WorkLocation wl, GoodsType goodsType, Unit unit, UnitType expert)
          Is it a good idea to produce goods at this work location using a better unit type? Always true for colony tiles, but for buildings we need to be more conservative or we will end up recommending packing each building to capacity.
 
Methods inherited from class net.sf.freecol.client.gui.panel.ReportPanel
createBorder, createUnitTypeLabel, getLocationNameFor, getUnitTypeComparator, initialize, setMainComponent
 
Methods inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
addClosingCallback, createColonyButton, enterPressesWhenFocused, getCanvas, getClientOptions, getController, getDefaultHeader, getDefaultTextArea, getDefaultTextArea, getDefaultTextPane, getDefaultTextPane, getElectionTurns, getFreeColClient, getGame, getGUI, getLibrary, getLinkButton, getModifierFormat, getMyPlayer, getSavedPosition, getSavedSize, getSortedColonies, getSpecification, isEditable, localizedLabel, localizedLabel, notifyClose, requestFocus, restoreSavedSize, restoreSavedSize, setCancelComponent, setEditable, sortModifiers
 
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

goodsComparator

private static final java.util.Comparator<GoodsType> goodsComparator

abstractGoodsComparator

private static final java.util.Comparator<AbstractGoods> abstractGoodsComparator

teacherComparator

private static final java.util.Comparator<Unit> teacherComparator

BUILDQUEUE

private static final java.lang.String BUILDQUEUE
See Also:
Constant Field Values

useCompact

private boolean useCompact

colonies

private java.util.List<Colony> colonies

goodsTypes

private java.util.List<GoodsType> goodsTypes

cAlarm

private java.awt.Color cAlarm

cWarn

private java.awt.Color cWarn

cPlain

private java.awt.Color cPlain

cExport

private java.awt.Color cExport

cGood

private java.awt.Color cGood
Constructor Detail

ReportColonyPanel

public ReportColonyPanel(FreeColClient freeColClient,
                         GUI gui)
The constructor that will add the items to this panel.

Parameters:
freeColClient -
gui -
parent - The parent of this panel.
Method Detail

classicColonyPanel

private void classicColonyPanel(java.util.List<Colony> colonies)

initializeCompactColonyPanel

private void initializeCompactColonyPanel()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Implement the action listener, checking for BUILDQUEUE events, generally displaying the colony panel if given a colony id, but otherwise delegating to the ReportPanel handler.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class ReportPanel
Parameters:
event - The incoming event.

updateCompactColonyPanel

private void updateCompactColonyPanel()

updateColony

private void updateColony(Colony colony)

stpl

private StringTemplate stpl(java.lang.String messageId)

conciseHeaders

private void conciseHeaders(java.util.List<GoodsType> goodsTypes,
                            boolean top,
                            Market market)

newLabel

private javax.swing.JLabel newLabel(java.lang.String h,
                                    javax.swing.ImageIcon i,
                                    java.awt.Color c,
                                    StringTemplate t)

colourButton

private javax.swing.JButton colourButton(java.lang.String action,
                                         java.lang.String h,
                                         javax.swing.ImageIcon i,
                                         java.awt.Color c,
                                         StringTemplate t)

addSuggestion

private void addSuggestion(java.util.HashMap<UnitType,ReportColonyPanel.Suggestion> suggestions,
                           UnitType old,
                           UnitType expert,
                           GoodsType work,
                           int amount)

wantGoods

private boolean wantGoods(WorkLocation wl,
                          GoodsType goodsType,
                          Unit unit,
                          UnitType expert)
Is it a good idea to produce goods at this work location using a better unit type? Always true for colony tiles, but for buildings we need to be more conservative or we will end up recommending packing each building to capacity. FTM then: - assume that if we have upgraded the building we really do want to use it - we should produce hammers if we are not, or if we can upgrade and existing unit - we should produce liberty until we max out the colony SoL

Parameters:
wl - The WorkLocation where production is to occur.
goodsType - The GoodsType to produce.
unit - The Unit that is doing the job at present, which may be null if none is at work.
expert - The expert UnitType to put to work.
Returns:
True if it is a good idea to use the expert.

addUnits

private void addUnits(java.util.HashMap<UnitType,ReportColonyPanel.Suggestion> suggestions,
                      java.util.List<UnitType> have,
                      Colony colony,
                      int grow)

bestProduction

private GoodsType bestProduction(WorkLocation wl,
                                 UnitType type)