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

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.ColonyPanel
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 ColonyPanel
extends FreeColPanel
implements java.awt.event.ActionListener, java.beans.PropertyChangeListener

This is a panel for the Colony display. It shows the units that are working in the colony, the buildings and much more.

See Also:
Serialized Form

Nested Class Summary
 class ColonyPanel.BuildingsPanel
          This panel is a list of the colony's buildings.
 class ColonyPanel.ColonyCargoPanel
          This panel shows the content of a carrier in the colony
 class ColonyPanel.InPortPanel
          A panel that holds UnitsLabels that represent naval Units that are waiting in the port of the colony.
 class ColonyPanel.OutsideColonyPanel
          A panel that holds UnitLabels that represent Units that are standing in front of a colony.
 class ColonyPanel.PopulationPanel
           
 class ColonyPanel.TilePanel
          A panel that displays the tiles in the immediate area around the colony.
 class ColonyPanel.WarehousePanel
          A panel that holds goods that represent cargo that is inside the Colony.
 
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  ColonyPanel.BuildingsPanel buildingsPanel
           
private static int BUILDQUEUE
           
private  javax.swing.JButton buildQueueButton
           
private  ColonyPanel.ColonyCargoPanel cargoPanel
           
private  Colony colony
           
private  ConstructionPanel constructionPanel
           
private  DefaultTransferHandler defaultTransferHandler
           
private static int EXIT
           
private static int FILL
           
private  javax.swing.JButton fillButton
           
private  ColonyPanel.InPortPanel inPortPanel
           
private static java.util.logging.Logger logger
           
private  javax.swing.JComboBox nameBox
           
private  javax.swing.JPanel netProductionPanel
           
private  ColonyPanel.OutsideColonyPanel outsideColonyPanel
           
private  ColonyPanel.PopulationPanel populationPanel
           
private  java.awt.event.MouseListener pressListener
           
private  java.awt.event.MouseListener releaseListener
           
static int SCROLL_AREA_HEIGHT
          The height of the area in which autoscrolling should happen.
static int SCROLL_SPEED
          The speed of the scrolling.
private  UnitLabel selectedUnitLabel
           
private static int SETGOODS
           
private  javax.swing.JButton setGoodsButton
           
private  ColonyPanel.TilePanel tilePanel
           
private static int UNLOAD
           
private  javax.swing.JButton unloadButton
           
private static int WAREHOUSE
           
private  javax.swing.JButton warehouseButton
           
private  ColonyPanel.WarehousePanel warehousePanel
           
 
Fields inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
bigHeaderFont, BORDER_COLOR, CELLBORDER, COLUMNS, defaultFont, editable, emptyMargin, LEFTCELLBORDER, LINK_COLOR, margin, mediumHeaderFont, OK, okButton, okCommand, 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
ColonyPanel(Canvas parent, Colony colony)
          The constructor for the panel.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Analyzes an event and calls the right external methods to take care of the user's request.
private  void addPropertyChangeListeners()
          Add property change listeners needed by this ColonyPanel.
 void closeColonyPanel()
          Closes the ColonyPanel.
private  void debugSetGoods(Canvas canvas, Colony colony)
          Interactive debug-mode change of goods amount in a colony.
private  void fill()
          Fill goods from the carrier currently selected to capacity.
 CargoPanel getCargoPanel()
          Returns a pointer to the CargoPanel-object in use.
 Colony getColony()
          Returns a pointer to the Colony-pointer in use.
 Unit getSelectedUnit()
          Returns the currently select unit.
 UnitLabel getSelectedUnitLabel()
          Returns the currently select unit label.
 ColonyPanel.TilePanel getTilePanel()
          Returns a pointer to the TilePanel-object in use.
 ColonyPanel.WarehousePanel getWarehousePanel()
          Returns a pointer to the WarehousePanel-object in use.
private  void initialize(Colony colony)
          Initialize the data on the window.
 void propertyChange(java.beans.PropertyChangeEvent event)
          Handle a property change event sent to this ColonyPanel.
private  void removePropertyChangeListeners()
          Remove the property change listeners of ColonyPanel.
private  void setColony(Colony colony)
          Set the current colony.
 void setSelectedUnit(Unit unit)
          Selects a unit that is potentially located somewhere in port.
 void setSelectedUnitLabel(UnitLabel unitLabel)
          Selects a unit that is located somewhere on this panel.
private  void sortBuildings(java.util.List<Building> buildings)
           
private  void unload()
          Unloads all goods and units from the carrier currently selected.
private  void updateCarrierButtons()
          Enables the unload and fill buttons if the currently selected unit is a carrier with some cargo.
 void updateConstructionPanel()
           
 void updateInPortPanel()
           
 void updateOutsideColonyPanel()
           
 void updateProductionPanel()
           
 void updateTilePanel()
           
 void updateWarehousePanel()
           
 
Methods inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
addClosingCallback, createColonyButton, createEventForwardingMouseListener, createEventForwardingMouseMotionListener, enterPressesWhenFocused, getCanvas, getClientOptions, getController, getDefaultHeader, getDefaultTextArea, getDefaultTextArea, getDefaultTextPane, getDefaultTextPane, getFreeColClient, getGame, 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, transferFocusBackward, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

private static java.util.logging.Logger logger

SCROLL_AREA_HEIGHT

public static final int SCROLL_AREA_HEIGHT
The height of the area in which autoscrolling should happen.

See Also:
Constant Field Values

SCROLL_SPEED

public static final int SCROLL_SPEED
The speed of the scrolling.

See Also:
Constant Field Values

EXIT

private static final int EXIT
See Also:
Constant Field Values

BUILDQUEUE

private static final int BUILDQUEUE
See Also:
Constant Field Values

UNLOAD

private static final int UNLOAD
See Also:
Constant Field Values

WAREHOUSE

private static final int WAREHOUSE
See Also:
Constant Field Values

FILL

private static final int FILL
See Also:
Constant Field Values

SETGOODS

private static final int SETGOODS
See Also:
Constant Field Values

netProductionPanel

private final javax.swing.JPanel netProductionPanel

populationPanel

private final ColonyPanel.PopulationPanel populationPanel

nameBox

private final javax.swing.JComboBox nameBox

outsideColonyPanel

private final ColonyPanel.OutsideColonyPanel outsideColonyPanel

inPortPanel

private final ColonyPanel.InPortPanel inPortPanel

cargoPanel

private final ColonyPanel.ColonyCargoPanel cargoPanel

warehousePanel

private final ColonyPanel.WarehousePanel warehousePanel

tilePanel

private final ColonyPanel.TilePanel tilePanel

buildingsPanel

private final ColonyPanel.BuildingsPanel buildingsPanel

constructionPanel

private final ConstructionPanel constructionPanel

defaultTransferHandler

private final DefaultTransferHandler defaultTransferHandler

pressListener

private final java.awt.event.MouseListener pressListener

releaseListener

private final java.awt.event.MouseListener releaseListener

colony

private Colony colony

selectedUnitLabel

private UnitLabel selectedUnitLabel

unloadButton

private javax.swing.JButton unloadButton

fillButton

private javax.swing.JButton fillButton

warehouseButton

private javax.swing.JButton warehouseButton

buildQueueButton

private javax.swing.JButton buildQueueButton

setGoodsButton

private javax.swing.JButton setGoodsButton
Constructor Detail

ColonyPanel

public ColonyPanel(Canvas parent,
                   Colony colony)
The constructor for the panel.

Parameters:
parent - The parent of this panel
Method Detail

getCargoPanel

public final CargoPanel getCargoPanel()
Returns a pointer to the CargoPanel-object in use.

Returns:
The CargoPanel.

getWarehousePanel

public final ColonyPanel.WarehousePanel getWarehousePanel()
Returns a pointer to the WarehousePanel-object in use.

Returns:
The WarehousePanel.

getTilePanel

public final ColonyPanel.TilePanel getTilePanel()
Returns a pointer to the TilePanel-object in use.

Returns:
The TilePanel.

getColony

public final Colony getColony()
Returns a pointer to the Colony-pointer in use.

Returns:
The Colony.

setColony

private void setColony(Colony colony)
Set the current colony.

Parameters:
colony - The new colony value.

updateConstructionPanel

public void updateConstructionPanel()

updateInPortPanel

public void updateInPortPanel()

updateWarehousePanel

public void updateWarehousePanel()

updateOutsideColonyPanel

public void updateOutsideColonyPanel()

updateTilePanel

public void updateTilePanel()

updateProductionPanel

public void updateProductionPanel()

sortBuildings

private void sortBuildings(java.util.List<Building> buildings)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Analyzes an event and calls the right external methods to take care of the user's request.

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

debugSetGoods

private void debugSetGoods(Canvas canvas,
                           Colony colony)
Interactive debug-mode change of goods amount in a colony.

Parameters:
canvas - The Canvas to use.
colony - The Colony to set goods amounts in.

unload

private void unload()
Unloads all goods and units from the carrier currently selected.


fill

private void fill()
Fill goods from the carrier currently selected to capacity.


updateCarrierButtons

private void updateCarrierButtons()
Enables the unload and fill buttons if the currently selected unit is a carrier with some cargo.


getSelectedUnit

public Unit getSelectedUnit()
Returns the currently select unit.

Returns:
The currently select unit.

setSelectedUnit

public void setSelectedUnit(Unit unit)
Selects a unit that is potentially located somewhere in port.

Parameters:
unit - The Unit to select.

getSelectedUnitLabel

public UnitLabel getSelectedUnitLabel()
Returns the currently select unit label.

Returns:
The currently select unit label.

setSelectedUnitLabel

public void setSelectedUnitLabel(UnitLabel unitLabel)
Selects a unit that is located somewhere on this panel.

Parameters:
unitLabel - The UnitLabel for the unit that is being selected.

initialize

private void initialize(Colony colony)
Initialize the data on the window. This is the same as calling: initialize(colony, game, null).

Parameters:
colony - The Colony to be displayed.

closeColonyPanel

public void closeColonyPanel()
Closes the ColonyPanel.


addPropertyChangeListeners

private void addPropertyChangeListeners()
Add property change listeners needed by this ColonyPanel.


removePropertyChangeListeners

private void removePropertyChangeListeners()
Remove the property change listeners of ColonyPanel.


propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
Handle a property change event sent to this ColonyPanel.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
event - The PropertyChangeEvent to handle.