Package net.sf.freecol.client.gui
Class SwingGUI
- java.lang.Object
-
- net.sf.freecol.client.control.FreeColClientHolder
-
- net.sf.freecol.client.gui.GUI
-
- net.sf.freecol.client.gui.SwingGUI
-
public class SwingGUI extends GUI
A wrapper providing functionality for the overall GUI using Java Swing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SwingGUI.PopupPosition
A rough position to place dialogs and panels on the canvas.-
Nested classes/interfaces inherited from class net.sf.freecol.client.gui.GUI
GUI.ViewMode
-
-
Field Summary
Fields Modifier and Type Field Description private Canvas
canvas
The canvas that implements much of the functionality.private static int
DRAG_THRESHOLD
Number of pixels that must be moved before a goto is enabled.private java.awt.Point
dragPoint
Where the map was drag-clicked.private static java.util.List<java.lang.Class<? extends FreeColPanel>>
EUROPE_CLASSES
European subpanel classes.private ImageLibrary
fixedImageLibrary
The fixed/unscaled image library used by panels et al.private boolean
gotoStarted
Has a goto operation started?private java.awt.GraphicsDevice
graphicsDevice
The graphics device to display to.private ImageCache
imageCache
A persistent image cache.private MapControls
mapControls
The various sorts of map controls.private MapViewer
mapViewer
The MapViewer instance used by canvas to paint the main map.private ImageLibrary
scaledImageLibrary
The scaled image library used by the map.private TileViewer
tileViewer
This is the TileViewer instance used for tiles in panels.private Widgets
widgets
The widgets wrapper that handles specific panels and dialogs.
-
Constructor Summary
Constructors Constructor Description SwingGUI(FreeColClient freeColClient)
Create the GUI.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activateGotoPath()
Start/stop the goto path display.private void
animate(Animation a, javax.swing.JLabel unitLabel)
Perform a single animation.void
animateUnitAttack(Unit attacker, Unit defender, Tile attackerTile, Tile defenderTile, boolean success)
Animate a unit attack.void
animateUnitMove(Unit unit, Tile srcTile, Tile dstTile)
Animate a unit move.private void
animations(java.util.List<Animation> animations)
Perform some animations.boolean
canZoomInMap()
Can the map be zoomed in? Used by: ZoomInActionboolean
canZoomInMapControls()
Is the map able to zoom in further? Used by: MiniMapZoomInActionboolean
canZoomOutMap()
Can the map be zoomed out? Used by: ZoomOutActionboolean
canZoomOutMapControls()
Is the map able to zoom out further? Used by: MiniMapZoomOutActionprivate boolean
changeActiveUnit(Unit newUnit)
Change the active unit.private void
changeDone(boolean update)
Finish a view mode change.private void
changeMapScale(float newScale)
private boolean
changeSelectedTile(Tile newTile, boolean refocus)
Change the selected tile.void
changeView()
Change to end turn mode.void
changeView(MapTransform mt)
Change to map transform mode, and select a transform.void
changeView(Tile tile)
Change to terrain mode and select a tile.void
changeView(Unit unit, boolean force)
Change to move units mode, and select a unit.private boolean
changeViewMode(GUI.ViewMode newViewMode)
Change the view mode.void
changeWindowedMode()
Change the windowed mode (really a toggle).void
clearGotoPath()
Stop the goto path display.void
clickAt(int count, int x, int y)
Handle a click on the canvas.void
closeMainPanel()
Close the main panel if present.void
closeMenus()
Close any open menus.void
closePanel(java.lang.String panel)
Close a panel.void
closeStatusPanel()
Close the status panel if present.boolean
confirm(Tile tile, StringTemplate tmpl, javax.swing.ImageIcon icon, java.lang.String okKey, java.lang.String cancelKey)
General modal confirmation dialog.java.awt.image.BufferedImage
createColonyTileImage(Tile tile, Colony colony)
java.awt.image.BufferedImage
createTileImage(Tile tile, Player player)
java.awt.image.BufferedImage
createTileImageWithBeachBorderAndItems(Tile tile)
private int
determineMainFontSizeUsingClientOptions(int dpi)
private float
determineScaleFactorUsingClientOptions(int dpi)
void
displayChat(java.lang.String sender, java.lang.String message, java.awt.Color color, boolean privateChat)
Update with a new chat message.void
displayColonyTiles(java.awt.Graphics2D g2d, Tile[][] tiles, Colony colony)
Display the ColonyTiles of a Colony.void
displayObject(FreeColObject fco)
Show the appropriate panel for an object.void
displayStartChat(java.lang.String sender, java.lang.String message, boolean privateChat)
A chat message was received during the pre-game setup.void
enableMapControls(boolean enable)
Enable the map controls.Unit
getActiveUnit()
Get the active unit.protected <T> T
getChoice(Tile tile, StringTemplate tmpl, javax.swing.ImageIcon icon, java.lang.String cancelKey, java.util.List<ChoiceItem<T>> choices)
General modal choice dialog.private java.awt.Point
getDragPoint()
Gets the point at which the map was clicked for a drag.ImageLibrary
getFixedImageLibrary()
Get the fixed image library for use on panels.Tile
getFocus()
Get the current focus tile.java.lang.String
getInput(Tile tile, StringTemplate tmpl, java.lang.String defaultValue, java.lang.String okKey, java.lang.String cancelKey)
General modal string input dialog.private float
getMapScale()
Get the map scale.java.awt.Dimension
getMapViewDimension()
private SwingGUI.PopupPosition
getPopupPosition(Tile tile)
Get a rough position to place a dialog given a tile which we wish to remain visible.ImageLibrary
getScaledImageLibrary()
Get the scaled image library for use on the map.Direction
getScrollDirection(int x, int y, int scrollSpace, boolean ignoreTop)
Work out what direction to scroll the map if a coordinate is close to an edge.Tile
getSelectedTile()
Get the selected tile.GUI.ViewMode
getViewMode()
Get the current view mode.void
installLookAndFeel(java.lang.String fontName)
Swing system and look-and-feel initialization.void
invokeNowOrLater(java.lang.Runnable runnable)
Run in the EDT, either immediately if in it or later when it wakes up.void
invokeNowOrWait(java.lang.Runnable runnable)
Run in the EDT, either immediately or wait for it.boolean
isClientOptionsDialogShowing()
Checks if a client options dialog is present.boolean
isDrag(int x, int y)
Is mouse movement differnce above the drag threshold?boolean
isGotoStarted()
Check if the user has GoTo mode enabled.boolean
isPanelShowing()
Is another panel being displayed.boolean
isWindowed()
Is this GUI in windowed mode? Used by: DragListener for a nasty workaround that should go awayvoid
miniMapToggleFogOfWarControls()
Toggle the fog of war control.void
miniMapToggleViewControls()
Toggle the view control.void
paintImmediately()
Paint the whole canvas now.void
performGoto(int x, int y)
Perform an immediate goto to a point on the map.void
performGoto(Tile tile)
Perform an immediate goto to a tile with the active unit.void
prepareDrag(int x, int y)
Prepare a drag from the given coordinates.void
prepareResources()
void
prepareShowingMainMenu()
Prepares showing the main menu by removing almost everything from the view.private java.util.List<javax.swing.JLabel>
prepareUnitLabelsForAnimation(java.util.List<Animation> animations)
void
quitGUI()
Quit the GUI.void
reconnectGUI(Unit active, Tile tile)
Reset the GUI on reconnect.void
refresh()
Refresh the whole GUI.void
refreshGuiUsingClientOptions()
Refreshes the GUI with settings from the client options.void
refreshPlayersTable()
Refresh the players table in the StartGamePanel.void
refreshTile(Tile tile)
Schedule a tile to be repainted.private void
refreshTilesForUnit(Unit unit, Tile srcTile, Tile dstTile)
Refreshes and repaints the unit and tiles.private void
releaseUnitOutForAnimation(Unit unit, javax.swing.JLabel unitLabel)
void
reloadResources()
Reloads all images managed byResourceManager
.void
removeComponent(java.awt.Component component)
Remove a component from the GUI.void
removeDialog(FreeColDialog<?> fcd)
Remove a dialog from the GUI.void
removeInGameComponents()
Remove all in-game components (i.e.void
removeTradeRoutePanel(FreeColPanel panel)
Remove a trade route panel and associated input on an associated TradeRouteInputPanel.void
repaint()
Repaints the entire screen, but uses image caches to avoid unnecessary painting of the map.private void
resetMapZoom()
Reset the map zoom and refresh the canvas.void
restoreSavedSize(java.awt.Component comp, java.awt.Dimension size)
Set dialog preferred size to saved size or to the givenDimension
if no saved size was found.boolean
scrollMap(Direction direction)
Scroll the map in a given direction.private void
setDragPoint(int x, int y)
Sets the point at which the map was clicked for a drag.void
setFocus(Tile tileToFocus)
Set the current focus tile.void
setUnitPath(PathNode path)
Set the path for the active unit.FreeColPanel
showAboutPanel()
Show the AboutPanel.FreeColPanel
showBuildQueuePanel(Colony colony)
Show the build queue for a colony.void
showCaptureGoodsDialog(Unit unit, java.util.List<Goods> gl, DialogHandler<java.util.List<Goods>> handler)
Show the dialog to select captured goods.FreeColPanel
showChatPanel()
Show the chat panel.void
showChooseFoundingFatherDialog(java.util.List<FoundingFather> ffs, DialogHandler<FoundingFather> handler)
Show the founding father choice panel.void
showClientOptionsDialog()
Show the client options dialog.FreeColPanel
showColonyPanel(Colony colony, Unit unit)
Show the colony panelFreeColPanel
showColopediaPanel(java.lang.String nodeId)
Show a colopedia panel.FreeColPanel
showColorChooserPanel(java.awt.event.ActionListener al)
Show a color chooser panel.FreeColPanel
showCompactLabourReport()
Show the compact labour report panel.FreeColPanel
showCompactLabourReport(LabourData.UnitData unitData)
Show the compact labour report for the specified unit data.java.util.List<java.lang.String>
showConfirmDeclarationDialog()
Confirm declaration of independence.void
showDeclarationPanel(java.lang.Runnable afterClosing)
Show the declaration panel with the declaration of independence and an animated signature.OptionGroup
showDifficultyDialog(Specification spec, OptionGroup group, boolean editable)
Show a dialog for a difficulty option group.void
showDumpCargoDialog(Unit unit, DialogHandler<java.util.List<Goods>> handler)
Show a dialog to choose what goods to dump.boolean
showEditOptionDialog(Option option)
Show a dialog for editing an individual option.IndianSettlement
showEditSettlementDialog(IndianSettlement is)
Show a dialog for editing a settlmeent.void
showEmigrationDialog(Player player, boolean fountainOfYouth, DialogHandler<java.lang.Integer> handler)
Show a dialog to handle emigration.void
showEndTurnDialog(java.util.List<Unit> units, DialogHandler<java.lang.Boolean> handler)
Show a dialog for the end of turn.FreeColPanel
showErrorPanel(java.lang.String message, java.lang.Runnable callback)
Show an error panel.FreeColPanel
showEuropePanel()
Show the Europe panel.FreeColPanel
showEventPanel(java.lang.String header, java.lang.String image, java.lang.String footer)
Show an event panel.FreeColPanel
showFindSettlementPanel()
Show the FindSettlement panel.void
showFirstContactDialog(Player player, Player other, Tile tile, int settlementCount, DialogHandler<java.lang.Boolean> handler)
Show a first contact dialog.OptionGroup
showGameOptionsDialog(boolean editable)
Show the Game options dialog.FreeColPanel
showHighScoresPanel(java.lang.String messageId, java.util.List<HighScore> scores)
Show the high scores panel.FreeColPanel
showIndianSettlementPanel(IndianSettlement is)
Show a panel for a native settlement.FreeColPanel
showInformationPanel(FreeColObject displayObject, StringTemplate template)
Show an information message.java.io.File
showLoadDialog(java.io.File directory, java.lang.String extension)
Show a dialog where the user may choose a file.LoadingSavegameInfo
showLoadingSavegameDialog(boolean publicServer, boolean singlePlayer)
Show the LoadingSavegameDialog.FreeColPanel
showLogFilePanel()
Show the log file panel.FreeColPanel
showMainPanel(java.lang.String userMsg)
Show the main panel.void
showMainTitle()
Complete reset back to the main panel.OptionGroup
showMapGeneratorOptionsDialog(boolean editable)
Show the map generator options.java.awt.Dimension
showMapSizeDialog()
Show the map size dialog.FreeColPanel
showModelMessages(java.util.List<ModelMessage> modelMessages)
Show model messages.void
showMonarchDialog(Monarch.MonarchAction action, StringTemplate template, java.lang.String monarchKey, DialogHandler<java.lang.Boolean> handler)
Show the monarch dialog.void
showNamingDialog(StringTemplate template, java.lang.String defaultName, Unit unit, DialogHandler<java.lang.String> handler)
Show the naming dialog.void
showNativeDemandDialog(Unit unit, Colony colony, GoodsType type, int amount, DialogHandler<java.lang.Boolean> handler)
Show the native demand dialog.DiplomaticTrade
showNegotiationDialog(FreeColGameObject our, FreeColGameObject other, DiplomaticTrade agreement, StringTemplate comment)
Show the negotiation dialog.FreeColPanel
showNewPanel(Specification spec)
Show the NewPanel.void
showOpeningVideo(java.lang.String userMsg, java.lang.Runnable callback)
Shows theVideoPanel
.Parameters
showParametersDialog()
Show the parameter choice dialog.void
showPopupMenu(javax.swing.JPopupMenu menu, int x, int y)
Display a popup menu.boolean
showPreCombatDialog(Unit attacker, FreeColGameObject defender, Tile tile)
Show the pre-combat dialog.FreeColPanel
showPurchasePanel()
Displays the purchase panel.FreeColPanel
showRecruitPanel()
Displays the recruit panel.FreeColPanel
showReportCargoPanel()
Show the Cargo Report.FreeColPanel
showReportColonyPanel()
Show the Colony Report.FreeColPanel
showReportContinentalCongressPanel()
Show the Continental Congress Report.FreeColPanel
showReportEducationPanel()
Show the Education Report.FreeColPanel
showReportExplorationPanel()
Show the Exploration Report.FreeColPanel
showReportForeignAffairPanel()
Show the Foreign Affairs Report.FreeColPanel
showReportHistoryPanel()
Show the History Report.FreeColPanel
showReportIndianPanel()
Show the Native Affairs Report.FreeColPanel
showReportLabourDetailPanel(UnitType unitType, java.util.Map<UnitType,java.util.Map<Location,java.lang.Integer>> data, TypeCountMap<UnitType> unitCount, java.util.List<Colony> colonies)
Display the labour detail panel.FreeColPanel
showReportLabourPanel()
Show the Labour Report.FreeColPanel
showReportMilitaryPanel()
Show the Military Report.FreeColPanel
showReportNavalPanel()
Show the Naval Report.FreeColPanel
showReportProductionPanel()
Show the Production Report.FreeColPanel
showReportReligiousPanel()
Show the Religion Report.FreeColPanel
showReportRequirementsPanel()
Show the Requirements Report.FreeColPanel
showReportTradePanel()
Show the Trade Report.FreeColPanel
showReportTurnPanel(java.util.List<ModelMessage> messages)
Show the Turn Report.java.lang.String
showRiverStyleDialog(java.util.List<java.lang.String> styles)
Show the river style dialog.java.io.File
showSaveDialog(java.io.File directory, java.lang.String defaultName)
Show the save dialog.java.awt.Dimension
showScaleMapSizeDialog()
Show the map scale dialog.int
showSelectAmountDialog(GoodsType goodsType, int available, int defaultAmount, boolean needToPay)
Show a dialog allowing selecting an amount of goods.Location
showSelectDestinationDialog(Unit unit)
Show a dialog allowing the user to select a destination for a given unit.int
showSelectTributeAmountDialog(StringTemplate question, int maximum)
Show the select-tribute-amount dialog.FreeColPanel
showServerListPanel(java.util.List<ServerInfo> serverList)
Show theServerListPanel
.FreeColPanel
showStartGamePanel(Game game, Player player, boolean singlePlayerMode)
Show the StartGamePanel.FreeColPanel
showStatisticsPanel(java.util.Map<java.lang.String,java.lang.String> serverStats, java.util.Map<java.lang.String,java.lang.String> clientStats)
Show the statistics panel.FreeColPanel
showStatusPanel(java.lang.String message)
Shows a status message which goes away when a new component is added.FreeColPanel
showTilePanel(Tile tile)
Show the tile panel for a given tile.void
showTilePopup(Tile tile)
Shows a tile popup for a given tile.FreeColPanel
showTradeRouteInputPanel(TradeRoute newRoute)
Show the trade route input panel for a given trade route.FreeColPanel
showTradeRoutePanel(Unit unit)
Show a panel to select a trade route for a unit.FreeColPanel
showTrainPanel()
Show the training panel.void
showVictoryDialog(DialogHandler<java.lang.Boolean> handler)
Show the victory dialog.boolean
showWarehouseDialog(Colony colony)
Show the warehouse dialog for a colony.FreeColPanel
showWorkProductionPanel(Unit unit)
Show the production of a unit.private void
startGoto()
Starts a goto operation.void
startGUI(java.awt.Dimension desiredWindowSize)
Starts the GUI by creating and displaying the GUI-objects.void
startMapEditorGUI()
Start the GUI for the map editor.private PathNode
stopGoto()
Stops any ongoing goto operation.Tile
tileAt(int x, int y)
Get the tile at given coordinate.void
traverseGotoPath()
Send the active unit along the current goto path as far as possible.void
updateEuropeanSubpanels()
Update all panels derived from the EuropePanel.void
updateGoto(int x, int y, boolean start)
Update the goto path to a new position on the map.private void
updateGotoTile(Tile tile)
Update the current goto to a given tile.void
updateMapControls()
Update the map controls, including the InfoPanel according to the view mode.void
updateMenuBar()
Update the menu bar.private void
updateUnitPath()
Update the path for the active unit.void
zoomInMap()
Zoom the map in.void
zoomInMapControls()
Zoom in the map controls.void
zoomOutMap()
Zoom the map out.void
zoomOutMapControls()
Zoom out the map controls.-
Methods inherited from class net.sf.freecol.client.gui.GUI
confirm, confirm, confirm, confirm, confirm, confirmAbandonEducation, confirmClearTradeRoute, confirmEuropeanTribute, confirmHostileAction, confirmLeaveColony, confirmNativeTribute, confirmPreCombat, confirmStopGame, getArmedUnitSettlementChoice, getBoycottChoice, getBuyChoice, getChoice, getChoice, getChoice, getClaimChoice, getIndianSettlementTradeChoice, getMissionaryChoice, getNewColonyName, getScoutForeignColonyChoice, getScoutIndianSettlementChoice, getSellChoice, getSoundMixerLabelText, playSound, showDifficultyDialog, showErrorPanel, showErrorPanel, showErrorPanel, showErrorPanel, showInformationPanel, showInformationPanel, showInformationPanel, showLoadSaveFileDialog, showNewPanel
-
Methods inherited from class net.sf.freecol.client.control.FreeColClientHolder
askServer, currentPlayerIsMyPlayer, getClientOptions, getConnectController, getFreeColClient, getFreeColServer, getGame, getGUI, getMap, getMyPlayer, getSpecification, igc, pgc
-
-
-
-
Field Detail
-
EUROPE_CLASSES
private static final java.util.List<java.lang.Class<? extends FreeColPanel>> EUROPE_CLASSES
European subpanel classes.
-
DRAG_THRESHOLD
private static final int DRAG_THRESHOLD
Number of pixels that must be moved before a goto is enabled.- See Also:
- Constant Field Values
-
graphicsDevice
private final java.awt.GraphicsDevice graphicsDevice
The graphics device to display to.
-
imageCache
private final ImageCache imageCache
A persistent image cache.
-
fixedImageLibrary
private ImageLibrary fixedImageLibrary
The fixed/unscaled image library used by panels et al.
-
scaledImageLibrary
private ImageLibrary scaledImageLibrary
The scaled image library used by the map.
-
tileViewer
private TileViewer tileViewer
This is the TileViewer instance used for tiles in panels. It uses the fixed ImageLibrary.
-
mapViewer
private MapViewer mapViewer
The MapViewer instance used by canvas to paint the main map. This does need to be scaled.
-
mapControls
private MapControls mapControls
The various sorts of map controls.
-
canvas
private Canvas canvas
The canvas that implements much of the functionality.
-
widgets
private Widgets widgets
The widgets wrapper that handles specific panels and dialogs.
-
dragPoint
private java.awt.Point dragPoint
Where the map was drag-clicked.
-
gotoStarted
private boolean gotoStarted
Has a goto operation started?
-
-
Constructor Detail
-
SwingGUI
public SwingGUI(FreeColClient freeColClient)
Create the GUI.- Parameters:
freeColClient
- TheFreeColClient
for the game.
-
-
Method Detail
-
animate
private void animate(Animation a, javax.swing.JLabel unitLabel)
Perform a single animation.- Parameters:
a
- TheAnimation
to perform.unitLabel
- The unit label to animate.
-
animations
private void animations(java.util.List<Animation> animations)
Perform some animations.- Parameters:
animations
- TheAnimation
s to perform.
-
releaseUnitOutForAnimation
private void releaseUnitOutForAnimation(Unit unit, javax.swing.JLabel unitLabel)
-
prepareUnitLabelsForAnimation
private java.util.List<javax.swing.JLabel> prepareUnitLabelsForAnimation(java.util.List<Animation> animations)
-
getDragPoint
private java.awt.Point getDragPoint()
Gets the point at which the map was clicked for a drag.- Returns:
- The Point where the mouse was initially clicked.
-
setDragPoint
private void setDragPoint(int x, int y)
Sets the point at which the map was clicked for a drag.- Parameters:
x
- The mouse x position.y
- The mouse y position.
-
isDrag
public boolean isDrag(int x, int y)
Is mouse movement differnce above the drag threshold?- Parameters:
x
- The new mouse x position.y
- The new mouse y position.- Returns:
- True if the mouse has been dragged.
-
changeViewMode
private boolean changeViewMode(GUI.ViewMode newViewMode)
Change the view mode. Always stop the blinking cursor if leaving MOVE_UNITS mode, but leave turning it on to changeActiveUnit, as there is no point enabling it if the active unit is null.- Parameters:
newViewMode
- The newViewMode
.- Returns:
- True if the view mode changed.
-
changeActiveUnit
private boolean changeActiveUnit(Unit newUnit)
Change the active unit. If the unit changes, cancel any current gotos.- Parameters:
newUnit
- The new activeUnit
.- Returns:
- True if the active unit changed.
-
changeSelectedTile
private boolean changeSelectedTile(Tile newTile, boolean refocus)
Change the selected tile. Also moves the focus tile to the selected tile if it differs and either is not on screen, or with the focus override. When the selected tile moves, the cursor needs to be redrawn, so a refresh of the old (if any) and new (if any) tile occurs.- Parameters:
newTile
- The newTile
to select.refocus
- If true force a refocus on all tile changes.- Returns:
- True if the tile was changed.
-
changeDone
private void changeDone(boolean update)
Finish a view mode change.- Parameters:
update
- Update the map controls if true.
-
getMapScale
private final float getMapScale()
Get the map scale. Used by:- Returns:
- The scale for the (rescalable) map.
-
getPopupPosition
private SwingGUI.PopupPosition getPopupPosition(Tile tile)
Get a rough position to place a dialog given a tile which we wish to remain visible.- Parameters:
tile
- TheTile
to expose.- Returns:
- A suitable
PopupPosition
.
-
updateUnitPath
private void updateUnitPath()
Update the path for the active unit.
-
startGoto
private void startGoto()
Starts a goto operation.
-
stopGoto
private PathNode stopGoto()
Stops any ongoing goto operation.- Returns:
- The old goto path if any.
-
updateGotoTile
private void updateGotoTile(Tile tile)
Update the current goto to a given tile.- Parameters:
tile
- The new gotoTile
.
-
paintImmediately
public void paintImmediately()
Paint the whole canvas now.
-
refreshTile
public void refreshTile(Tile tile)
Schedule a tile to be repainted.- Overrides:
refreshTile
in classGUI
- Parameters:
tile
- Thetile
to paint.
-
resetMapZoom
private void resetMapZoom()
Reset the map zoom and refresh the canvas.
-
getFixedImageLibrary
public ImageLibrary getFixedImageLibrary()
Get the fixed image library for use on panels. Used by: ColonyPanel, ConstructionPanel, InfoPanel, certain UnitLabels.- Overrides:
getFixedImageLibrary
in classGUI
- Returns:
- Null here, real implementations will override.
-
getScaledImageLibrary
public ImageLibrary getScaledImageLibrary()
Get the scaled image library for use on the map.- Overrides:
getScaledImageLibrary
in classGUI
- Returns:
- Null here, real implementations will override.
-
isWindowed
public boolean isWindowed()
Is this GUI in windowed mode? Used by: DragListener for a nasty workaround that should go away- Overrides:
isWindowed
in classGUI
- Returns:
- True by default, real implementations will override.
-
invokeNowOrLater
public void invokeNowOrLater(java.lang.Runnable runnable)
Run in the EDT, either immediately if in it or later when it wakes up.- Overrides:
invokeNowOrLater
in classGUI
- Parameters:
runnable
- ARunnable
to run.
-
invokeNowOrWait
public void invokeNowOrWait(java.lang.Runnable runnable)
Run in the EDT, either immediately or wait for it.- Overrides:
invokeNowOrWait
in classGUI
- Parameters:
runnable
- ARunnable
to run.
-
changeWindowedMode
public void changeWindowedMode()
Change the windowed mode (really a toggle). Used by: ChangeWindowedModeAction- Overrides:
changeWindowedMode
in classGUI
-
installLookAndFeel
public void installLookAndFeel(java.lang.String fontName) throws FreeColException
Swing system and look-and-feel initialization. Used by: FreeColClient- Overrides:
installLookAndFeel
in classGUI
- Parameters:
fontName
- An optional font name to be used.- Throws:
FreeColException
- if the LAF is incompatible with the GUI.
-
quitGUI
public void quitGUI()
Quit the GUI. All that is required is to exit the full screen. Used by: FreeColClient.quit
-
reconnectGUI
public void reconnectGUI(Unit active, Tile tile)
Reset the GUI on reconnect. Used by: FreeColClient.restoreGUI- Overrides:
reconnectGUI
in classGUI
- Parameters:
active
- An optional activeUnit
.tile
- An optionalTile
to focus on if there is no active unit.
-
removeInGameComponents
public void removeInGameComponents()
Remove all in-game components (i.e. all the Listeners). Used by: ContinueAction, ConnectController.{mainTitle,newGame} InGameController.loadGame, MapEditorController.newMap, StartMapAction- Overrides:
removeInGameComponents
in classGUI
-
showOpeningVideo
public void showOpeningVideo(java.lang.String userMsg, java.lang.Runnable callback)
Shows theVideoPanel
. Used by: FreeColClient- Overrides:
showOpeningVideo
in classGUI
- Parameters:
userMsg
- An optional user message.callback
- ARunnable
to run when the video completes.
-
startGUI
public void startGUI(java.awt.Dimension desiredWindowSize)
Starts the GUI by creating and displaying the GUI-objects. Used by: FreeColClient
-
getMapViewDimension
public java.awt.Dimension getMapViewDimension()
- Overrides:
getMapViewDimension
in classGUI
-
startMapEditorGUI
public void startMapEditorGUI()
Start the GUI for the map editor. Used by: NewPanel- Overrides:
startMapEditorGUI
in classGUI
-
animateUnitAttack
public void animateUnitAttack(Unit attacker, Unit defender, Tile attackerTile, Tile defenderTile, boolean success)
Animate a unit attack. Used by: client InGameController- Overrides:
animateUnitAttack
in classGUI
- Parameters:
attacker
- The attackingUnit
.defender
- The defendingUnit
.attackerTile
- TheTile
to show the attacker on.defenderTile
- TheTile
to show the defender on.success
- Did the attack succeed?
-
animateUnitMove
public void animateUnitMove(Unit unit, Tile srcTile, Tile dstTile)
Animate a unit move. Used by: client InGameController- Overrides:
animateUnitMove
in classGUI
- Parameters:
unit
- TheUnit
that is moving.srcTile
- TheTile
the unit starts at.dstTile
- TheTile
the unit moves to.
-
refreshTilesForUnit
private void refreshTilesForUnit(Unit unit, Tile srcTile, Tile dstTile)
Refreshes and repaints the unit and tiles.- Parameters:
unit
- TheUnit
that may have moved, and which we should use the line-of-sight for invalidating tiles.srcTile
- The source for the unit.dstTile
- The destination tile for the unit.
-
confirm
public boolean confirm(Tile tile, StringTemplate tmpl, javax.swing.ImageIcon icon, java.lang.String okKey, java.lang.String cancelKey)
General modal confirmation dialog.- Overrides:
confirm
in classGUI
- Parameters:
tile
- An optionalTile
to expose.tmpl
- TheStringTemplate
explaining the choice.icon
- AnImageIcon
to display in dialog.okKey
- A key for the message on the "ok" button.cancelKey
- A key for the message on the "cancel" button.- Returns:
- True if the "ok" button was selected.
-
getChoice
protected <T> T getChoice(Tile tile, StringTemplate tmpl, javax.swing.ImageIcon icon, java.lang.String cancelKey, java.util.List<ChoiceItem<T>> choices)
General modal choice dialog.- Overrides:
getChoice
in classGUI
- Type Parameters:
T
- The choice type.- Parameters:
tile
- An optionalTile
to expose.tmpl
- AStringTemplate
explaining the choice.icon
- An optionalImageIcon
to display in dialog.cancelKey
- A key for the message on the "cancel" button.choices
- A list aChoiceItem
s to choose from.- Returns:
- The selected value of the selected
ChoiceItem
, or null if cancelled.
-
getInput
public java.lang.String getInput(Tile tile, StringTemplate tmpl, java.lang.String defaultValue, java.lang.String okKey, java.lang.String cancelKey)
General modal string input dialog.- Overrides:
getInput
in classGUI
- Parameters:
tile
- An optionalTile
to expose.tmpl
- AStringTemplate
explaining the choice.defaultValue
- The default value to show initially.okKey
- A key for the message on the "ok" button.cancelKey
- A key for the message on the "cancel" button.- Returns:
- The chosen value.
-
getFocus
public Tile getFocus()
Get the current focus tile. Used by: MiniMap.paintMap
-
setFocus
public void setFocus(Tile tileToFocus)
Set the current focus tile. Used by: CanvasMapEditorMouseListener, CenterAction, FindSettlementPanel, InfoPanel, MiniMap.focus, MapEditorController, SelectDestinationDialog.recenter
-
canZoomInMapControls
public boolean canZoomInMapControls()
Is the map able to zoom in further? Used by: MiniMapZoomInAction- Overrides:
canZoomInMapControls
in classGUI
- Returns:
- True if the map can zoom in.
-
canZoomOutMapControls
public boolean canZoomOutMapControls()
Is the map able to zoom out further? Used by: MiniMapZoomOutAction- Overrides:
canZoomOutMapControls
in classGUI
- Returns:
- True if the map can zoom out.
-
enableMapControls
public void enableMapControls(boolean enable)
Enable the map controls. Used by: MapControlsAction.- Overrides:
enableMapControls
in classGUI
- Parameters:
enable
- If true then enable.
-
miniMapToggleViewControls
public void miniMapToggleViewControls()
Toggle the view control. Used by: MiniMapToggleFogOfWarAction- Overrides:
miniMapToggleViewControls
in classGUI
-
miniMapToggleFogOfWarControls
public void miniMapToggleFogOfWarControls()
Toggle the fog of war control. Used by: MiniMapToggleFogOfWarAction- Overrides:
miniMapToggleFogOfWarControls
in classGUI
-
updateMapControls
public void updateMapControls()
Update the map controls, including the InfoPanel according to the view mode. Used by: client InGameController.updateGUI, MapEditorController- Overrides:
updateMapControls
in classGUI
-
zoomInMapControls
public void zoomInMapControls()
Zoom in the map controls. Used by: MiniMapZoomInAction- Overrides:
zoomInMapControls
in classGUI
-
zoomOutMapControls
public void zoomOutMapControls()
Zoom out the map controls. Used by: MiniMapZoomOutAction- Overrides:
zoomOutMapControls
in classGUI
-
closeMenus
public void closeMenus()
Close any open menus. Used by: FreeColClient.skipTurns, client InGameController.{endTurn,setCurrentPlayer} MapEditorController, PreGameController- Overrides:
closeMenus
in classGUI
-
updateMenuBar
public void updateMenuBar()
Update the menu bar. Used by: InGameController.updateGUI, MapEditorController, NewEmptyMapAction- Overrides:
updateMenuBar
in classGUI
-
showPopupMenu
public void showPopupMenu(javax.swing.JPopupMenu menu, int x, int y)
Display a popup menu. Used by: ColonyPanel, DragListener- Overrides:
showPopupMenu
in classGUI
- Parameters:
menu
- TheJPopupMenu
to display.x
- The menu x coordinate.y
- The menu y coordinate.
-
setUnitPath
public void setUnitPath(PathNode path)
Set the path for the active unit. Used by: TilePopup- Overrides:
setUnitPath
in classGUI
- Parameters:
path
- The new unit path.
-
activateGotoPath
public void activateGotoPath()
Start/stop the goto path display. Used by: GotoTileAction- Overrides:
activateGotoPath
in classGUI
-
clearGotoPath
public void clearGotoPath()
Stop the goto path display. Used by: client InGameController.askClearGotoOrders- Overrides:
clearGotoPath
in classGUI
-
isGotoStarted
public boolean isGotoStarted()
Check if the user has GoTo mode enabled. Used by: CanvasMouseListener- Overrides:
isGotoStarted
in classGUI
- Returns:
- True if the user has toggled GoTo mode.
-
performGoto
public void performGoto(Tile tile)
Perform an immediate goto to a tile with the active unit. Used by: TilePopup- Overrides:
performGoto
in classGUI
- Parameters:
tile
- TheTile
to go to.
-
performGoto
public void performGoto(int x, int y)
Perform an immediate goto to a point on the map. Used by: CanvasMouseListener- Overrides:
performGoto
in classGUI
- Parameters:
x
- The x coordinate of the goto destination (pixels).y
- The x coordinate of the goto destination (pixels).
-
traverseGotoPath
public void traverseGotoPath()
Send the active unit along the current goto path as far as possible. Used by: CanvasMouseListener- Overrides:
traverseGotoPath
in classGUI
-
updateGoto
public void updateGoto(int x, int y, boolean start)
Update the goto path to a new position on the map. Used by: CanvasMouseMotionListener- Overrides:
updateGoto
in classGUI
- Parameters:
x
- The x coordinate for the new goto path destination (pixels).y
- The y coordinate for the new goto path destination (pixels).start
- If true start a new goto if one is not underway.
-
prepareDrag
public void prepareDrag(int x, int y)
Prepare a drag from the given coordinates. This may turn into a goto if further drag motion is detected. Used by: CanvasMouseListener- Overrides:
prepareDrag
in classGUI
- Parameters:
x
- Drag x coordinate (pixels).y
- Drag x coordinate (pixels).
-
getScrollDirection
public Direction getScrollDirection(int x, int y, int scrollSpace, boolean ignoreTop)
Work out what direction to scroll the map if a coordinate is close to an edge.- Overrides:
getScrollDirection
in classGUI
- Parameters:
x
- The x coordinate.y
- The y coordinate.scrollSpace
- The clearance from the relevant edgeignoreTop
- If the top should be ignored- Returns:
- The
Direction
to scroll, or null if not.
-
scrollMap
public boolean scrollMap(Direction direction)
Scroll the map in a given direction.
-
createTileImageWithBeachBorderAndItems
public java.awt.image.BufferedImage createTileImageWithBeachBorderAndItems(Tile tile)
- Overrides:
createTileImageWithBeachBorderAndItems
in classGUI
-
createTileImage
public java.awt.image.BufferedImage createTileImage(Tile tile, Player player)
- Overrides:
createTileImage
in classGUI
-
createColonyTileImage
public java.awt.image.BufferedImage createColonyTileImage(Tile tile, Colony colony)
- Overrides:
createColonyTileImage
in classGUI
-
displayColonyTiles
public void displayColonyTiles(java.awt.Graphics2D g2d, Tile[][] tiles, Colony colony)
Display the ColonyTiles of a Colony. Used by: ColonyPanel.TilesPanel- Overrides:
displayColonyTiles
in classGUI
- Parameters:
g2d
- AGraphics2D
to draw to.tiles
- TheTile
s to display.colony
- The enclosingColony
.
-
getViewMode
public GUI.ViewMode getViewMode()
Get the current view mode. Used by: MoveAction, ToggleViewModeAction- Overrides:
getViewMode
in classGUI
- Returns:
- One of the view mode constants, or negative on error.
-
getActiveUnit
public Unit getActiveUnit()
Get the active unit. Used by: many- Overrides:
getActiveUnit
in classGUI
- Returns:
- The current active
Unit
.
-
getSelectedTile
public Tile getSelectedTile()
Get the selected tile. Used by: MoveAction, TilePopupAction, ToggleViewModeAction- Overrides:
getSelectedTile
in classGUI
- Returns:
- The selected
Tile
.
-
changeView
public void changeView(Tile tile)
Change to terrain mode and select a tile. Used by: CanvasMapEditorMouseListener, client InGameController.{updateActiveUnit,moveTileCursor}- Overrides:
changeView
in classGUI
- Parameters:
tile
- TheTile
to select.
-
changeView
public void changeView(Unit unit, boolean force)
Change to move units mode, and select a unit. Used by: ChangeAction, DebugUtils, EndTurnDialog, client InGameController (several) MapEditorController, TilePopup, QuickActionMenu, UnitLabel- Overrides:
changeView
in classGUI
- Parameters:
unit
- TheUnit
to select.force
- Set true if the unit is the same, but *has* changed in some way (e.g. moves left).
-
changeView
public void changeView(MapTransform mt)
Change to map transform mode, and select a transform. Used by: MapEditorController- Overrides:
changeView
in classGUI
- Parameters:
mt
- TheMapTransform
to select.
-
changeView
public void changeView()
Change to end turn mode. Used by: client InGameController.updateActiveUnit- Overrides:
changeView
in classGUI
-
canZoomInMap
public boolean canZoomInMap()
Can the map be zoomed in? Used by: ZoomInAction- Overrides:
canZoomInMap
in classGUI
- Returns:
- True if the map can zoom in.
-
canZoomOutMap
public boolean canZoomOutMap()
Can the map be zoomed out? Used by: ZoomOutAction- Overrides:
canZoomOutMap
in classGUI
- Returns:
- True if the map can zoom out.
-
zoomInMap
public void zoomInMap()
Zoom the map in. Used by: ZoomInAction
-
zoomOutMap
public void zoomOutMap()
Zoom the map out. Used by: ZoomOutAction- Overrides:
zoomOutMap
in classGUI
-
changeMapScale
private void changeMapScale(float newScale)
-
reloadResources
public void reloadResources()
Reloads all images managed byResourceManager
.- Overrides:
reloadResources
in classGUI
-
prepareResources
public void prepareResources()
-
clickAt
public void clickAt(int count, int x, int y)
Handle a click on the canvas. Used by: CanvasMouseListener
-
closePanel
public void closePanel(java.lang.String panel)
Close a panel. Used by: client InGameController.closehandler- Overrides:
closePanel
in classGUI
- Parameters:
panel
- The identifier for the panel to close.
-
closeMainPanel
public void closeMainPanel()
Close the main panel if present. Used by: MapEditorController, PreGameController- Overrides:
closeMainPanel
in classGUI
-
closeStatusPanel
public void closeStatusPanel()
Close the status panel if present. Used by: FreeColClient, MapEditorController, client InGameController, PreGameController- Overrides:
closeStatusPanel
in classGUI
-
displayChat
public void displayChat(java.lang.String sender, java.lang.String message, java.awt.Color color, boolean privateChat)
Update with a new chat message. Used by: client InGameController.{chat,chatHandler}- Overrides:
displayChat
in classGUI
- Parameters:
sender
- The message sender.message
- The chat message.color
- The message color.privateChat
- True if the message is private.
-
displayObject
public void displayObject(FreeColObject fco)
Show the appropriate panel for an object.- Overrides:
displayObject
in classGUI
- Parameters:
fco
- TheFreeColObject
to display.
-
displayStartChat
public void displayStartChat(java.lang.String sender, java.lang.String message, boolean privateChat)
A chat message was received during the pre-game setup. Used by: PreGameController.chatHandler- Overrides:
displayStartChat
in classGUI
- Parameters:
sender
- The player who sent the chat message.message
- The chat message.privateChat
- True if the message is private.
-
isClientOptionsDialogShowing
public boolean isClientOptionsDialogShowing()
Checks if a client options dialog is present. Used by: FreeColAction.shouldBeEnabled- Overrides:
isClientOptionsDialogShowing
in classGUI
- Returns:
- True if the client options are showing.
-
isPanelShowing
public boolean isPanelShowing()
Is another panel being displayed. Used by: many Actions- Overrides:
isPanelShowing
in classGUI
- Returns:
- True if there is another panel present.
-
refresh
public void refresh()
Refresh the whole GUI. This is done by invalidating any cached rendering and then repainting the entire screen. Please use only when the entire map should be fully updated. Please useMapViewerRepaintManager.markAsDirty(Tile)
andGUI.repaint()
instead, if only parts of the map need to be updated.
-
repaint
public void repaint()
Repaints the entire screen, but uses image caches to avoid unnecessary painting of the map. Please useMapViewerRepaintManager.markAsDirty(Tile)
in order to invalidate the caches for a given tile.- Overrides:
repaint
in classGUI
- See Also:
GUI.refresh()
-
refreshPlayersTable
public void refreshPlayersTable()
Refresh the players table in the StartGamePanel. Used by: SetNationMessage.clientHandler- Overrides:
refreshPlayersTable
in classGUI
-
removeComponent
public void removeComponent(java.awt.Component component)
Remove a component from the GUI. Used by: Many panels to close themselves. TODO: is this right?- Overrides:
removeComponent
in classGUI
- Parameters:
component
- TheComponent
to remove.
-
removeDialog
public void removeDialog(FreeColDialog<?> fcd)
Remove a dialog from the GUI. Used by: FreeColDialog.removeNotify- Overrides:
removeDialog
in classGUI
- Parameters:
fcd
- TheFreeColDialog
to remove.
-
removeTradeRoutePanel
public void removeTradeRoutePanel(FreeColPanel panel)
Remove a trade route panel and associated input on an associated TradeRouteInputPanel. Used by: TradeRoutePanel- Overrides:
removeTradeRoutePanel
in classGUI
- Parameters:
panel
- TheFreeColPanel
to remove.
-
restoreSavedSize
public void restoreSavedSize(java.awt.Component comp, java.awt.Dimension size)
Set dialog preferred size to saved size or to the givenDimension
if no saved size was found. Call this method in the constructor of a FreeColPanel in order to remember its size and position. Used by: *Panel- Overrides:
restoreSavedSize
in classGUI
- Parameters:
comp
- TheComponent
to use.size
- TheDimension
to use as default.
-
showTilePopup
public void showTilePopup(Tile tile)
Shows a tile popup for a given tile.- Overrides:
showTilePopup
in classGUI
- Parameters:
tile
- TheTile
where the popup occurred.
-
tileAt
public Tile tileAt(int x, int y)
Get the tile at given coordinate.
-
updateEuropeanSubpanels
public void updateEuropeanSubpanels()
Update all panels derived from the EuropePanel. Used by: NewUnitPanel, RecruitUnitPanel- Overrides:
updateEuropeanSubpanels
in classGUI
-
showAboutPanel
public FreeColPanel showAboutPanel()
Show the AboutPanel.- Overrides:
showAboutPanel
in classGUI
- Returns:
- The panel shown.
-
showBuildQueuePanel
public FreeColPanel showBuildQueuePanel(Colony colony)
Show the build queue for a colony.- Overrides:
showBuildQueuePanel
in classGUI
- Parameters:
colony
- TheColony
to show a panel for.- Returns:
- The build queue panel.
-
showCaptureGoodsDialog
public void showCaptureGoodsDialog(Unit unit, java.util.List<Goods> gl, DialogHandler<java.util.List<Goods>> handler)
Show the dialog to select captured goods.- Overrides:
showCaptureGoodsDialog
in classGUI
- Parameters:
unit
- TheUnit
capturing goods.gl
- The list ofGoods
to choose from.handler
- ADialogHandler
for the dialog response.
-
showChatPanel
public FreeColPanel showChatPanel()
Show the chat panel.- Overrides:
showChatPanel
in classGUI
- Returns:
- The panel shown.
-
showChooseFoundingFatherDialog
public void showChooseFoundingFatherDialog(java.util.List<FoundingFather> ffs, DialogHandler<FoundingFather> handler)
Show the founding father choice panel.- Overrides:
showChooseFoundingFatherDialog
in classGUI
- Parameters:
ffs
- The list ofFoundingFather
s to choose from.handler
- The callback to pass the choice to.
-
showClientOptionsDialog
public void showClientOptionsDialog()
Show the client options dialog.- Overrides:
showClientOptionsDialog
in classGUI
-
refreshGuiUsingClientOptions
public void refreshGuiUsingClientOptions()
Refreshes the GUI with settings from the client options.- Overrides:
refreshGuiUsingClientOptions
in classGUI
-
determineMainFontSizeUsingClientOptions
private int determineMainFontSizeUsingClientOptions(int dpi)
-
determineScaleFactorUsingClientOptions
private float determineScaleFactorUsingClientOptions(int dpi)
-
showColonyPanel
public FreeColPanel showColonyPanel(Colony colony, Unit unit)
Show the colony panel- Overrides:
showColonyPanel
in classGUI
- Parameters:
colony
- TheColony
to display.unit
- An optionalUnit
to select within the panel.- Returns:
- The panel shown.
-
showColopediaPanel
public FreeColPanel showColopediaPanel(java.lang.String nodeId)
Show a colopedia panel.- Overrides:
showColopediaPanel
in classGUI
- Parameters:
nodeId
- The identifier for the colopedia node to show.- Returns:
- The panel shown.
-
showColorChooserPanel
public FreeColPanel showColorChooserPanel(java.awt.event.ActionListener al)
Show a color chooser panel.- Overrides:
showColorChooserPanel
in classGUI
- Parameters:
al
- AnActionListener
to handle panel button presses.- Returns:
- The panel shown.
-
showCompactLabourReport
public FreeColPanel showCompactLabourReport()
Show the compact labour report panel.- Overrides:
showCompactLabourReport
in classGUI
- Returns:
- The panel shown.
-
showCompactLabourReport
public FreeColPanel showCompactLabourReport(LabourData.UnitData unitData)
Show the compact labour report for the specified unit data.- Overrides:
showCompactLabourReport
in classGUI
- Parameters:
unitData
- TheUnitData
to display.- Returns:
- The panel shown.
-
showConfirmDeclarationDialog
public java.util.List<java.lang.String> showConfirmDeclarationDialog()
Confirm declaration of independence.- Overrides:
showConfirmDeclarationDialog
in classGUI
- Returns:
- A list of new nation and country names.
-
showDeclarationPanel
public void showDeclarationPanel(java.lang.Runnable afterClosing)
Show the declaration panel with the declaration of independence and an animated signature.- Overrides:
showDeclarationPanel
in classGUI
- Parameters:
afterClosing
- A callback that is executed after the panel closes.
-
showDifficultyDialog
public OptionGroup showDifficultyDialog(Specification spec, OptionGroup group, boolean editable)
Show a dialog for a difficulty option group.- Overrides:
showDifficultyDialog
in classGUI
- Parameters:
spec
- The enclosingSpecification
.group
- TheOptionGroup
to show.editable
- If true, the option group can be edited.- Returns:
- The (possibly modified)
OptionGroup
.
-
showDumpCargoDialog
public void showDumpCargoDialog(Unit unit, DialogHandler<java.util.List<Goods>> handler)
Show a dialog to choose what goods to dump.- Overrides:
showDumpCargoDialog
in classGUI
- Parameters:
unit
- TheUnit
that is dumping goods.handler
- A callback to pass the dumped goods list to.
-
showEditOptionDialog
public boolean showEditOptionDialog(Option option)
Show a dialog for editing an individual option.- Overrides:
showEditOptionDialog
in classGUI
- Parameters:
option
- TheOption
to edit.- Returns:
- True if the option edit was accepted.
-
showEditSettlementDialog
public IndianSettlement showEditSettlementDialog(IndianSettlement is)
Show a dialog for editing a settlmeent.- Overrides:
showEditSettlementDialog
in classGUI
- Parameters:
is
- TheIndianSettlement
to edit.- Returns:
- The settlement post-edit.
-
showEmigrationDialog
public void showEmigrationDialog(Player player, boolean fountainOfYouth, DialogHandler<java.lang.Integer> handler)
Show a dialog to handle emigration.- Overrides:
showEmigrationDialog
in classGUI
- Parameters:
player
- ThePlayer
whose emigration state needs work.fountainOfYouth
- True if a Fountain of Youth event occurred.handler
- A callback to pass a selected emigration index to.
-
showEndTurnDialog
public void showEndTurnDialog(java.util.List<Unit> units, DialogHandler<java.lang.Boolean> handler)
Show a dialog for the end of turn.- Overrides:
showEndTurnDialog
in classGUI
- Parameters:
units
- A list ofUnit
s that can still move.handler
- A callback to handle the user selected end turn state.
-
showErrorPanel
public FreeColPanel showErrorPanel(java.lang.String message, java.lang.Runnable callback)
Show an error panel.- Overrides:
showErrorPanel
in classGUI
- Parameters:
message
- The error message to display.callback
- An optionalRunnable
to run on close.- Returns:
- The panel shown.
-
showEuropePanel
public FreeColPanel showEuropePanel()
Show the Europe panel.- Overrides:
showEuropePanel
in classGUI
- Returns:
- The panel shown.
-
showEventPanel
public FreeColPanel showEventPanel(java.lang.String header, java.lang.String image, java.lang.String footer)
Show an event panel.- Overrides:
showEventPanel
in classGUI
- Parameters:
header
- The title.image
- A resource key for the image to display.footer
- Optional footer text.- Returns:
- The panel shown.
-
showFindSettlementPanel
public FreeColPanel showFindSettlementPanel()
Show the FindSettlement panel.- Overrides:
showFindSettlementPanel
in classGUI
- Returns:
- The panel shown.
-
showFirstContactDialog
public void showFirstContactDialog(Player player, Player other, Tile tile, int settlementCount, DialogHandler<java.lang.Boolean> handler)
Show a first contact dialog.- Overrides:
showFirstContactDialog
in classGUI
- Parameters:
player
- ThePlayer
making contact.other
- ThePlayer
being contacted.tile
- TheTile
where the contact occurs.settlementCount
- A count of settlements described by the other player.handler
- A callback to handle the player decision to be friendly.
-
showGameOptionsDialog
public OptionGroup showGameOptionsDialog(boolean editable)
Show the Game options dialog.- Overrides:
showGameOptionsDialog
in classGUI
- Parameters:
editable
- True if the options can be edited.- Returns:
- The game options
OptionGroup
.
-
showHighScoresPanel
public FreeColPanel showHighScoresPanel(java.lang.String messageId, java.util.List<HighScore> scores)
Show the high scores panel.- Overrides:
showHighScoresPanel
in classGUI
- Parameters:
messageId
- The message identifier.scores
- TheHighScore
s to display.- Returns:
- The panel shown.
-
showIndianSettlementPanel
public FreeColPanel showIndianSettlementPanel(IndianSettlement is)
Show a panel for a native settlement.- Overrides:
showIndianSettlementPanel
in classGUI
- Parameters:
is
- TheIndianSettlement
to display.- Returns:
- The panel shown.
-
showInformationPanel
public FreeColPanel showInformationPanel(FreeColObject displayObject, StringTemplate template)
Show an information message.- Overrides:
showInformationPanel
in classGUI
- Parameters:
displayObject
- Optional object for displaying as an icon.template
- TheStringTemplate
to display.- Returns:
- The panel shown.
-
showLoadDialog
public java.io.File showLoadDialog(java.io.File directory, java.lang.String extension)
Show a dialog where the user may choose a file.- Overrides:
showLoadDialog
in classGUI
- Parameters:
directory
- The directory containing the files.extension
- An extension to select with.- Returns:
- The selected
File
.
-
showLoadingSavegameDialog
public LoadingSavegameInfo showLoadingSavegameDialog(boolean publicServer, boolean singlePlayer)
Show the LoadingSavegameDialog.- Overrides:
showLoadingSavegameDialog
in classGUI
- Parameters:
publicServer
- FIXMEsinglePlayer
- FIXME- Returns:
- The
LoadingSavegameInfo
from the dialog.
-
showLogFilePanel
public FreeColPanel showLogFilePanel()
Show the log file panel.- Overrides:
showLogFilePanel
in classGUI
- Returns:
- The panel shown.
-
showMainPanel
public FreeColPanel showMainPanel(java.lang.String userMsg)
Show the main panel.- Overrides:
showMainPanel
in classGUI
- Parameters:
userMsg
- An optional user message to display.- Returns:
- The panel shown.
-
showMainTitle
public void showMainTitle()
Complete reset back to the main panel.- Overrides:
showMainTitle
in classGUI
-
showMapGeneratorOptionsDialog
public OptionGroup showMapGeneratorOptionsDialog(boolean editable)
Show the map generator options.- Overrides:
showMapGeneratorOptionsDialog
in classGUI
- Parameters:
editable
- If true, allow edits.- Returns:
- The map generator
OptionGroup
.
-
showMapSizeDialog
public java.awt.Dimension showMapSizeDialog()
Show the map size dialog.- Overrides:
showMapSizeDialog
in classGUI
- Returns:
- The selected map size as a
Dimension
.
-
showModelMessages
public FreeColPanel showModelMessages(java.util.List<ModelMessage> modelMessages)
Show model messages.- Overrides:
showModelMessages
in classGUI
- Parameters:
modelMessages
- A list ofModelMessage
s to display.- Returns:
- The panel shown.
-
showMonarchDialog
public void showMonarchDialog(Monarch.MonarchAction action, StringTemplate template, java.lang.String monarchKey, DialogHandler<java.lang.Boolean> handler)
Show the monarch dialog.- Overrides:
showMonarchDialog
in classGUI
- Parameters:
action
- The action the monarch is taking.template
- A message template.monarchKey
- The identifier for the monarch.handler
- A callback to handle the user response to the monarch action.
-
showNamingDialog
public void showNamingDialog(StringTemplate template, java.lang.String defaultName, Unit unit, DialogHandler<java.lang.String> handler)
Show the naming dialog.- Overrides:
showNamingDialog
in classGUI
- Parameters:
template
- A message template.defaultName
- The default name for the object.unit
- TheUnit
that is naming.handler
- A callback to handle the user response.
-
showNativeDemandDialog
public void showNativeDemandDialog(Unit unit, Colony colony, GoodsType type, int amount, DialogHandler<java.lang.Boolean> handler)
Show the native demand dialog.- Overrides:
showNativeDemandDialog
in classGUI
- Parameters:
unit
- The demandingUnit
.colony
- TheColony
being demanded of.type
- TheGoodsType
demanded (null for gold).amount
- The amount of goods or gold demanded.handler
- A callback to handle the user response.
-
showNegotiationDialog
public DiplomaticTrade showNegotiationDialog(FreeColGameObject our, FreeColGameObject other, DiplomaticTrade agreement, StringTemplate comment)
Show the negotiation dialog.- Overrides:
showNegotiationDialog
in classGUI
- Parameters:
our
- OurFreeColGameObject
that is negotiating.other
- The otherFreeColGameObject
.agreement
- The currentDiplomaticTrade
agreement.comment
- An optionalStringTemplate
containing a commentary message.- Returns:
- The negotiated
DiplomaticTrade
agreement.
-
showNewPanel
public FreeColPanel showNewPanel(Specification spec)
Show the NewPanel.- Overrides:
showNewPanel
in classGUI
- Parameters:
spec
- TheSpecification
to use.- Returns:
- The panel shown.
-
showParametersDialog
public Parameters showParametersDialog()
Show the parameter choice dialog.- Overrides:
showParametersDialog
in classGUI
- Returns:
- The chosen parameters.
-
showPreCombatDialog
public boolean showPreCombatDialog(Unit attacker, FreeColGameObject defender, Tile tile)
Show the pre-combat dialog.- Overrides:
showPreCombatDialog
in classGUI
- Parameters:
attacker
- TheUnit
that is attacking.defender
- TheFreeColObject
that is defending.tile
- TheTile
where the attack occurs.- Returns:
- True if the player decided to attack.
-
showPurchasePanel
public FreeColPanel showPurchasePanel()
Displays the purchase panel.- Overrides:
showPurchasePanel
in classGUI
- Returns:
- The panel shown.
-
showRecruitPanel
public FreeColPanel showRecruitPanel()
Displays the recruit panel.- Overrides:
showRecruitPanel
in classGUI
- Returns:
- The panel shown.
-
showReportCargoPanel
public FreeColPanel showReportCargoPanel()
Show the Cargo Report.- Overrides:
showReportCargoPanel
in classGUI
- Returns:
- The panel shown.
-
showReportColonyPanel
public FreeColPanel showReportColonyPanel()
Show the Colony Report.- Overrides:
showReportColonyPanel
in classGUI
- Returns:
- The panel shown.
-
showReportContinentalCongressPanel
public FreeColPanel showReportContinentalCongressPanel()
Show the Continental Congress Report.- Overrides:
showReportContinentalCongressPanel
in classGUI
- Returns:
- The panel shown.
-
showReportEducationPanel
public FreeColPanel showReportEducationPanel()
Show the Education Report.- Overrides:
showReportEducationPanel
in classGUI
- Returns:
- The panel shown.
-
showReportExplorationPanel
public FreeColPanel showReportExplorationPanel()
Show the Exploration Report.- Overrides:
showReportExplorationPanel
in classGUI
- Returns:
- The panel shown.
-
showReportForeignAffairPanel
public FreeColPanel showReportForeignAffairPanel()
Show the Foreign Affairs Report.- Overrides:
showReportForeignAffairPanel
in classGUI
- Returns:
- The panel shown.
-
showReportHistoryPanel
public FreeColPanel showReportHistoryPanel()
Show the History Report.- Overrides:
showReportHistoryPanel
in classGUI
- Returns:
- The panel shown.
-
showReportIndianPanel
public FreeColPanel showReportIndianPanel()
Show the Native Affairs Report.- Overrides:
showReportIndianPanel
in classGUI
- Returns:
- The panel shown.
-
showReportLabourPanel
public FreeColPanel showReportLabourPanel()
Show the Labour Report.- Overrides:
showReportLabourPanel
in classGUI
- Returns:
- The panel shown.
-
showReportLabourDetailPanel
public FreeColPanel showReportLabourDetailPanel(UnitType unitType, java.util.Map<UnitType,java.util.Map<Location,java.lang.Integer>> data, TypeCountMap<UnitType> unitCount, java.util.List<Colony> colonies)
Display the labour detail panel.- Overrides:
showReportLabourDetailPanel
in classGUI
- Parameters:
unitType
- TheUnitType
to display.data
- The labour data.unitCount
- A map of unit distribution.colonies
- The list of playerColony
s.- Returns:
- The panel shown.
-
showReportMilitaryPanel
public FreeColPanel showReportMilitaryPanel()
Show the Military Report.- Overrides:
showReportMilitaryPanel
in classGUI
- Returns:
- The panel shown.
-
showReportNavalPanel
public FreeColPanel showReportNavalPanel()
Show the Naval Report.- Overrides:
showReportNavalPanel
in classGUI
- Returns:
- The panel shown.
-
showReportProductionPanel
public FreeColPanel showReportProductionPanel()
Show the Production Report.- Overrides:
showReportProductionPanel
in classGUI
- Returns:
- The panel shown.
-
showReportReligiousPanel
public FreeColPanel showReportReligiousPanel()
Show the Religion Report.- Overrides:
showReportReligiousPanel
in classGUI
- Returns:
- The panel shown.
-
showReportRequirementsPanel
public FreeColPanel showReportRequirementsPanel()
Show the Requirements Report.- Overrides:
showReportRequirementsPanel
in classGUI
- Returns:
- The panel shown.
-
showReportTradePanel
public FreeColPanel showReportTradePanel()
Show the Trade Report.- Overrides:
showReportTradePanel
in classGUI
- Returns:
- The panel shown.
-
showReportTurnPanel
public FreeColPanel showReportTurnPanel(java.util.List<ModelMessage> messages)
Show the Turn Report.- Overrides:
showReportTurnPanel
in classGUI
- Parameters:
messages
- TheModelMessage
s that make up the report.- Returns:
- The panel shown.
-
showRiverStyleDialog
public java.lang.String showRiverStyleDialog(java.util.List<java.lang.String> styles)
Show the river style dialog.- Overrides:
showRiverStyleDialog
in classGUI
- Parameters:
styles
- The river styles a choice is made from.- Returns:
- The response returned by the dialog.
-
showSaveDialog
public java.io.File showSaveDialog(java.io.File directory, java.lang.String defaultName)
Show the save dialog.- Overrides:
showSaveDialog
in classGUI
- Parameters:
directory
- The directory containing the files.defaultName
- The default game to save.- Returns:
- The selected file.
-
showScaleMapSizeDialog
public java.awt.Dimension showScaleMapSizeDialog()
Show the map scale dialog.- Overrides:
showScaleMapSizeDialog
in classGUI
- Returns:
- The map scale as a
Dimension
.
-
showSelectAmountDialog
public int showSelectAmountDialog(GoodsType goodsType, int available, int defaultAmount, boolean needToPay)
Show a dialog allowing selecting an amount of goods.- Overrides:
showSelectAmountDialog
in classGUI
- Parameters:
goodsType
- TheGoodsType
to select an amount of.available
- The amount of goods available.defaultAmount
- The amount to select to start with.needToPay
- If true, check the player has sufficient funds.- Returns:
- The amount selected.
-
showSelectDestinationDialog
public Location showSelectDestinationDialog(Unit unit)
Show a dialog allowing the user to select a destination for a given unit.- Overrides:
showSelectDestinationDialog
in classGUI
- Parameters:
unit
- TheUnit
to select a destination for.- Returns:
- A destination for the unit, or null.
-
showSelectTributeAmountDialog
public int showSelectTributeAmountDialog(StringTemplate question, int maximum)
Show the select-tribute-amount dialog.- Overrides:
showSelectTributeAmountDialog
in classGUI
- Parameters:
question
- aStringTemplate
describing the amount of tribute to demand.maximum
- The maximum amount available.- Returns:
- The amount selected.
-
showServerListPanel
public FreeColPanel showServerListPanel(java.util.List<ServerInfo> serverList)
Show theServerListPanel
.- Overrides:
showServerListPanel
in classGUI
- Parameters:
serverList
- The list containing the servers retrieved from the metaserver.- Returns:
- The panel shown.
-
showStartGamePanel
public FreeColPanel showStartGamePanel(Game game, Player player, boolean singlePlayerMode)
Show the StartGamePanel.- Overrides:
showStartGamePanel
in classGUI
- Parameters:
game
- TheGame
that is about to start.player
- ThePlayer
using this client.singlePlayerMode
- True to start a single player game.- Returns:
- The panel shown.
-
showStatisticsPanel
public FreeColPanel showStatisticsPanel(java.util.Map<java.lang.String,java.lang.String> serverStats, java.util.Map<java.lang.String,java.lang.String> clientStats)
Show the statistics panel.- Overrides:
showStatisticsPanel
in classGUI
- Parameters:
serverStats
- A map of server statistics key,value pairs.clientStats
- A map of client statistics key,value pairs.- Returns:
- The panel shown.
-
showStatusPanel
public FreeColPanel showStatusPanel(java.lang.String message)
Shows a status message which goes away when a new component is added.- Overrides:
showStatusPanel
in classGUI
- Parameters:
message
- The text message to display on the status panel.- Returns:
- The panel shown.
-
showTilePanel
public FreeColPanel showTilePanel(Tile tile)
Show the tile panel for a given tile.- Overrides:
showTilePanel
in classGUI
- Parameters:
tile
- TheTile
to display.- Returns:
- The panel shown.
-
showTradeRouteInputPanel
public FreeColPanel showTradeRouteInputPanel(TradeRoute newRoute)
Show the trade route input panel for a given trade route.- Overrides:
showTradeRouteInputPanel
in classGUI
- Parameters:
newRoute
- TheTradeRoute
to display.- Returns:
- The panel shown.
-
showTradeRoutePanel
public FreeColPanel showTradeRoutePanel(Unit unit)
Show a panel to select a trade route for a unit.- Overrides:
showTradeRoutePanel
in classGUI
- Parameters:
unit
- An optionalUnit
to select a trade route for.- Returns:
- The panel shown.
-
showTrainPanel
public FreeColPanel showTrainPanel()
Show the training panel.- Overrides:
showTrainPanel
in classGUI
- Returns:
- The panel shown.
-
showVictoryDialog
public void showVictoryDialog(DialogHandler<java.lang.Boolean> handler)
Show the victory dialog.- Overrides:
showVictoryDialog
in classGUI
- Parameters:
handler
- A callback to handle the continuation decision.
-
showWarehouseDialog
public boolean showWarehouseDialog(Colony colony)
Show the warehouse dialog for a colony. Run out of ColonyPanel, so the tile is already displayed.- Overrides:
showWarehouseDialog
in classGUI
- Parameters:
colony
- TheColony
to display.- Returns:
- The response returned by the dialog.
-
showWorkProductionPanel
public FreeColPanel showWorkProductionPanel(Unit unit)
Show the production of a unit.- Overrides:
showWorkProductionPanel
in classGUI
- Parameters:
unit
- TheUnit
to display.- Returns:
- The panel shown.
-
prepareShowingMainMenu
public void prepareShowingMainMenu()
Description copied from class:GUI
Prepares showing the main menu by removing almost everything from the view.- Overrides:
prepareShowingMainMenu
in classGUI
-
-