package games.strategy.engine.framework.networkMaintenance; import java.awt.Component; import java.awt.Frame; import java.awt.event.ActionEvent; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.AbstractAction; import javax.swing.JOptionPane; import games.strategy.engine.framework.startup.mc.IServerStartupRemote; import games.strategy.triplea.ui.menubar.TripleAMenuBar; public class GetGameSaveClientAction extends AbstractAction { private static final long serialVersionUID = 1118264715230932068L; private final Component m_parent; private final IServerStartupRemote m_serverRemote; public GetGameSaveClientAction(final Component parent, final IServerStartupRemote serverRemote) { super("Download Gamesave (Save Game)"); m_parent = JOptionPane.getFrameForComponent(parent); m_serverRemote = serverRemote; } @Override public void actionPerformed(final ActionEvent e) { final Frame frame = JOptionPane.getFrameForComponent(m_parent); final File f = TripleAMenuBar.getSaveGameLocationDialog(frame); if (f != null) { final byte[] bytes = m_serverRemote.getSaveGame(); try (FileOutputStream fout = new FileOutputStream(f)) { fout.write(bytes); } catch (final IOException exception) { exception.printStackTrace(); } JOptionPane.showMessageDialog(frame, "Game Saved", "Game Saved", JOptionPane.INFORMATION_MESSAGE); } } }