package jrummikub.control.network; import java.util.ArrayList; import java.util.List; import jrummikub.util.Connection; import jrummikub.util.GameData; import jrummikub.util.IListener1; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.IView; public class GameJoinControl { private List connections = new ArrayList(); private GameData gameData; private ConnectionControl connectionControl; private IView view; public GameJoinControl(final ConnectionControl connectionControl, final GameData gameData, final IView view) { this.connectionControl = connectionControl; this.gameData = gameData; this.view = view; view.getSettingsPanel().setSettingsMode(SettingsMode.NETWORK_JOIN); view.getSettingsPanel().enableAddPlayerButton(false); view.getSettingsPanel().setGameSettings(gameData.getGameSettings()); connections.add(connectionControl.getGameOfferEvent().add( new IListener1() { @Override public void handle(GameData data) { if (data.getGameID().equals(gameData.getGameID())) { gameData.setGameSettings(data.getGameSettings()); view.getSettingsPanel().setGameSettings(data.getGameSettings()); } } })); } public void startGameJoin() { view.showSettingsPanel(true); } public void abort() { // TODO Implement abort for (Connection c : connections) { c.remove(); } } }