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

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.FreeColDialog<DiplomaticTrade>
                          extended by net.sf.freecol.client.gui.panel.NegotiationDialog
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 NegotiationDialog
extends FreeColDialog<DiplomaticTrade>
implements java.awt.event.ActionListener

The panel that allows negotiations between players.

See Also:
Serialized Form

Nested Class Summary
 class NegotiationDialog.ColonyTradeItemPanel
           
 class NegotiationDialog.GoldTradeItemPanel
           
 class NegotiationDialog.GoodsTradeItemPanel
           
 class NegotiationDialog.StanceTradeItemPanel
           
 
Nested classes/interfaces inherited from class net.sf.freecol.client.gui.panel.FreeColDialog
FreeColDialog.FreeColFileFilter
 
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.lang.String ACCEPT
           
private  javax.swing.JButton acceptButton
           
private  DiplomaticTrade agreement
           
private  boolean canAccept
           
private static java.lang.String CANCEL
           
private  javax.swing.JButton cancelButton
           
private  NegotiationDialog.ColonyTradeItemPanel colonyDemand
           
private  NegotiationDialog.ColonyTradeItemPanel colonyOffer
           
private  NegotiationDialog.GoldTradeItemPanel goldDemand
           
private  NegotiationDialog.GoldTradeItemPanel goldOffer
           
private  NegotiationDialog.GoodsTradeItemPanel goodsDemand
           
private  NegotiationDialog.GoodsTradeItemPanel goodsOffer
           
private static int HUGE_DEMAND
           
private static java.util.logging.Logger logger
           
private  Player otherPlayer
           
private  Player player
           
private  Player recipient
           
private static java.lang.String SEND
           
private  javax.swing.JButton sendButton
           
private  Player sender
           
private  Settlement settlement
           
private  NegotiationDialog.StanceTradeItemPanel stance
           
private  javax.swing.JTextPane summary
           
private  Unit unit
           
 
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
NegotiationDialog(FreeColClient freeColClient, GUI gui, Unit unit, Settlement settlement)
          Creates a new NegotiationDialog instance.
NegotiationDialog(FreeColClient freeColClient, GUI gui, Unit unit, Settlement settlement, DiplomaticTrade agreement)
          Creates a new NegotiationDialog instance.
 
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.
 void addColonyTradeItem(Player source, Colony colony)
          Adds a ColonyTradeItem to the list of TradeItems.
 void addGoldTradeItem(Player source, int amount)
          Adds a GoldTradeItem to the list of TradeItems.
 void addGoodsTradeItem(Player source, Goods goods)
          Adds a GoodsTradeItem to the list of TradeItems.
 Player.Stance getStance()
          Returns the stance being offered.
private  boolean hasPeaceOffer()
           
 void initialize()
          Set up the dialog.
private  void insertDemands()
           
private  void insertOffers()
           
private  void insertText(java.lang.String text)
           
private  void insertTradeItemDescriptions(Player itemSource)
           
 void setStance(Player.Stance stance)
          Trade a stance change between the players.
private  void updateDemandItems()
           
 void updateDialog()
           
private  void updateOfferItems()
           
private  void updateSummary()
           
 
Methods inherited from class net.sf.freecol.client.gui.panel.FreeColDialog
createChoiceDialog, createConfirmDialog, createConfirmDialog, createInputDialog, createLoadDialog, createMapSizeDialog, createSaveDialog, getFGOFileFilter, getFSGFileFilter, getGameOptionsFileFilter, getResponse, resetResponse, setResponse
 
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

logger

private static java.util.logging.Logger logger

SEND

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

ACCEPT

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

CANCEL

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

HUGE_DEMAND

private static final int HUGE_DEMAND
See Also:
Constant Field Values

agreement

private DiplomaticTrade agreement

acceptButton

private javax.swing.JButton acceptButton

cancelButton

private javax.swing.JButton cancelButton

sendButton

private javax.swing.JButton sendButton

stance

private NegotiationDialog.StanceTradeItemPanel stance

goldOffer

private NegotiationDialog.GoldTradeItemPanel goldOffer

goldDemand

private NegotiationDialog.GoldTradeItemPanel goldDemand

colonyOffer

private NegotiationDialog.ColonyTradeItemPanel colonyOffer

colonyDemand

private NegotiationDialog.ColonyTradeItemPanel colonyDemand

goodsOffer

private NegotiationDialog.GoodsTradeItemPanel goodsOffer

goodsDemand

private NegotiationDialog.GoodsTradeItemPanel goodsDemand

summary

private javax.swing.JTextPane summary

unit

private final Unit unit

settlement

private final Settlement settlement

player

private Player player

otherPlayer

private Player otherPlayer

sender

private Player sender

recipient

private Player recipient

canAccept

private boolean canAccept
Constructor Detail

NegotiationDialog

public NegotiationDialog(FreeColClient freeColClient,
                         GUI gui,
                         Unit unit,
                         Settlement settlement)
Creates a new NegotiationDialog instance.

Parameters:
unit - an Unit value
settlement - a Settlement value

NegotiationDialog

public NegotiationDialog(FreeColClient freeColClient,
                         GUI gui,
                         Unit unit,
                         Settlement settlement,
                         DiplomaticTrade agreement)
Creates a new NegotiationDialog instance.

Parameters:
freeColClient -
unit - an Unit value
settlement - a Settlement value
agreement - a DiplomaticTrade with the offer
Method Detail

initialize

public void initialize()
Set up the dialog.

Overrides:
initialize in class FreeColDialog<DiplomaticTrade>

updateSummary

private void updateSummary()

updateOfferItems

private void updateOfferItems()

updateDemandItems

private void updateDemandItems()

updateDialog

public void updateDialog()

insertText

private void insertText(java.lang.String text)
                 throws java.lang.Exception
Throws:
java.lang.Exception

insertOffers

private void insertOffers()

insertDemands

private void insertDemands()

insertTradeItemDescriptions

private void insertTradeItemDescriptions(Player itemSource)

hasPeaceOffer

private boolean hasPeaceOffer()

addColonyTradeItem

public void addColonyTradeItem(Player source,
                               Colony colony)
Adds a ColonyTradeItem to the list of TradeItems.

Parameters:
source - a Player value
colony - a Colony value

addGoldTradeItem

public void addGoldTradeItem(Player source,
                             int amount)
Adds a GoldTradeItem to the list of TradeItems.

Parameters:
source - a Player value
amount - an int value

addGoodsTradeItem

public void addGoodsTradeItem(Player source,
                              Goods goods)
Adds a GoodsTradeItem to the list of TradeItems.

Parameters:
source - a Player value
goods - a Goods value

setStance

public void setStance(Player.Stance stance)
Trade a stance change between the players.

Parameters:
stance - The Stance to trade.

getStance

public Player.Stance getStance()
Returns the stance being offered.

Returns:
a Stance value

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 FreeColDialog<DiplomaticTrade>
Parameters:
event - The incoming action event