package games.strategy.triplea.ui; import javax.swing.AbstractAction; import javax.swing.JOptionPane; import games.strategy.engine.data.GameData; import games.strategy.engine.gamePlayer.IPlayerBridge; import games.strategy.engine.pbem.ForumPosterComponent; import games.strategy.engine.pbem.PBEMMessagePoster; import games.strategy.triplea.delegate.remote.IAbstractForumPosterDelegate; import games.strategy.ui.SwingAction; public class EndTurnPanel extends AbstractForumPosterPanel { private static final long serialVersionUID = -6282316384529504341L; protected AbstractAction m_doneAction = SwingAction.of("Done", e -> { if (m_forumPosterComponent.getHasPostedTurnSummary() || JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(JOptionPane.getFrameForComponent(EndTurnPanel.this), "Are you sure you don't want to post?", "Bypass post", JOptionPane.YES_NO_OPTION)) { release(); } }); public EndTurnPanel(final GameData data, final MapPanel map) { super(data, map); m_forumPosterComponent = new ForumPosterComponent(getData(), m_doneAction, getTitle()); } @Override protected String getTitle() { return "Turn Summary"; } @Override public String toString() { return "EndTurnPanel"; } @Override protected boolean allowIncludeTerritorySummary() { return true; } @Override protected boolean allowIncludeTerritoryAllPlayersSummary() { return false; } @Override protected boolean allowIncludeProductionSummary() { return true; } @Override protected boolean allowDiceBattleDetails() { return true; } @Override protected boolean allowDiceStatistics() { return true; } @Override protected IAbstractForumPosterDelegate getForumPosterDelegate() { return (IAbstractForumPosterDelegate) m_bridge.getRemoteDelegate(); } @Override protected boolean getHasPostedTurnSummary() { final IAbstractForumPosterDelegate delegate = (IAbstractForumPosterDelegate) m_bridge.getRemoteDelegate(); return delegate.getHasPostedTurnSummary(); } @Override protected void setHasPostedTurnSummary(final boolean posted) { final IAbstractForumPosterDelegate delegate = (IAbstractForumPosterDelegate) m_bridge.getRemoteDelegate(); delegate.setHasPostedTurnSummary(posted); } @Override protected boolean postTurnSummary(final PBEMMessagePoster poster, final boolean includeSaveGame) { final IAbstractForumPosterDelegate delegate = (IAbstractForumPosterDelegate) m_bridge.getRemoteDelegate(); return delegate.postTurnSummary(poster, getTitle(), includeSaveGame); } @Override protected boolean skipPosting() { return false; } public void waitForEndTurn(final TripleAFrame frame, final IPlayerBridge bridge) { super.waitForDone(frame, bridge); } }