soc.client
Class SOCBoardPanel.ConfirmPlaceShipDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by soc.client.AskDialog
                      extended by soc.client.SOCBoardPanel.ConfirmPlaceShipDialog
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, java.util.EventListener, javax.accessibility.Accessible
Enclosing class:
SOCBoardPanel

private class SOCBoardPanel.ConfirmPlaceShipDialog
extends AskDialog
implements java.lang.Runnable

For scenario _SC_FTRI, modal dialog to confirm placing a ship at an edge with a "gift" trade port. Player will need to pick up this port, and may need to immediately place it elsewhere on the board.

Assumes SOCGame.canPlaceShip(SOCPlayer, int) has been called to validate. Use the AWT event thread to show, so message treating can continue while the dialog is showing. If placement is confirmed, call putPiece, possibly after tryBuild depending on mode when dialog was shown.

Since:
2.0.00
Author:
Jeremy D Monin <jeremy@nand.net>

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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  int edge
          Edge to place at or move to
private  int isMove_fromEdge
          If not -1, do a ship move from this edge, not a placement from player's available pieces
private  boolean sendBuildReqFirst
          If true, send Build Request before sending PutPiece
private static long serialVersionUID
           
 
Fields inherited from class soc.client.AskDialog
choice1But, choice2But, choice3But, choiceDefault, didReqFocus, isMsgMultiLine, msg, padH, padW, pBtns, pcli, pi, wantH, wantW
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
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
private SOCBoardPanel.ConfirmPlaceShipDialog(int edge, boolean sendBuildReqFirst, int isMove_fromEdge)
          Creates a new ConfirmPlaceShipDialog.
 
Method Summary
 void button1Chosen()
          React to the Place Ship button: Call gameManager.buildRequest via BoardPopupMenu.tryBuild, or gameManager.putPiece or movePieceRequest.
 void button2Chosen()
          React to the Don't Place button.
 void windowCloseChosen()
          React to the dialog window closed by user.
 
Methods inherited from class soc.client.AskDialog
actionPerformed, button3Chosen, checkSizeAndFocus, firstLine, getParentFrame, keyPressed, keyReleased, keyTyped, mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased, run, styleAsDefault, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class java.awt.Dialog
addNotify, getAccessibleContext, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, paramString, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.lang.Runnable
run
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

edge

private final int edge
Edge to place at or move to


sendBuildReqFirst

private final boolean sendBuildReqFirst
If true, send Build Request before sending PutPiece


isMove_fromEdge

private final int isMove_fromEdge
If not -1, do a ship move from this edge, not a placement from player's available pieces

Constructor Detail

SOCBoardPanel.ConfirmPlaceShipDialog

private SOCBoardPanel.ConfirmPlaceShipDialog(int edge,
                                             boolean sendBuildReqFirst,
                                             int isMove_fromEdge)
Creates a new ConfirmPlaceShipDialog. To display the dialog without tying up the client's message-treater thread, call EventQueue.invokeLater(thisDialog).

Parameters:
edge - The port edge where the ship would be placed
sendBuildReqFirst - If true, calling from BoardPopupMenu, and after user confirms, client will need to send BUILDREQUEST before placement request
isMove_fromEdge - Edge to move ship from, or -1 if a placement from player's available pieces; if moving a ship, sendBuildReqFirst must be false.
Method Detail

button1Chosen

public void button1Chosen()
React to the Place Ship button: Call gameManager.buildRequest via BoardPopupMenu.tryBuild, or gameManager.putPiece or movePieceRequest.

Specified by:
button1Chosen in class AskDialog

button2Chosen

public void button2Chosen()
React to the Don't Place button.

Specified by:
button2Chosen in class AskDialog

windowCloseChosen

public void windowCloseChosen()
React to the dialog window closed by user. (Don't place the ship)

Specified by:
windowCloseChosen in class AskDialog