/** * Constructor * * @param doubleclickListener * Gets called when an entry is double clicked, can be <code>null</code> */ public OpenPanel(final ChangingList<? extends MapLoader> maps, IMapSelectedListener mapSelectedListener) { this(maps.getItems(), mapSelectedListener); maps.setListener(changedLister -> { setMapLoaders(changedLister.getItems()); }); }
@Override public void gameJoined(IJoinPhaseMultiplayerGameConnector connector) { SwingUtilities.invokeLater(() -> { initializeChatFor(connector); setStartButtonActionListener(e -> connector.startGame()); connector.getPlayers().setListener(changingPlayers -> onPlayersChanges(changingPlayers, connector)); connector.setMultiplayerListener(new IMultiplayerListener() { @Override public void gameIsStarting(IStartingGame game) { settlersFrame.showStartingGamePanel(game); } @Override public void gameAborted() { settlersFrame.showMainMenu(); } }); onPlayersChanges(connector.getPlayers(), connector); // init the UI with the players }); } });
public void setJoinMultiPlayerMap(IJoinPhaseMultiplayerGameConnector joinMultiPlayerMap, MapLoader mapLoader) { playerSlotFactory = new ClientOfMultiplayerPlayerSlotFactory(); titleLabel.setText(Labels.getString("join-game-panel-join-multi-player-game-title")); numberOfPlayersComboBox.setEnabled(false); peaceTimeComboBox.setEnabled(false); startResourcesComboBox.setEnabled(false); setChatVisible(true); cancelButton.addActionListener(e -> settlersFrame.showMainMenu()); startGameButton.setVisible(false); prepareUiFor(mapLoader); joinMultiPlayerMap.getPlayers().setListener(changingPlayers -> onPlayersChanges(changingPlayers, joinMultiPlayerMap)); joinMultiPlayerMap.setMultiplayerListener(new IMultiplayerListener() { @Override public void gameIsStarting(IStartingGame game) { settlersFrame.showStartingGamePanel(game); } @Override public void gameAborted() { settlersFrame.showMainMenu(); } }); initializeChatFor(joinMultiPlayerMap); onPlayersChanges(joinMultiPlayerMap.getPlayers(), joinMultiPlayerMap); // init the UI with the players }
private void addListener(IMultiplayerConnector multiPlayerConnector) { multiPlayerConnector .getJoinableMultiplayerGames() .setListener(networkGames -> { List<MapLoader> mapLoaders = stream(networkGames.getItems()) .map(NetworkGameMapLoader::new) .collect(Collectors.toList()); SwingUtilities.invokeLater(() -> joinMultiPlayerGamePanel.setMapLoaders(mapLoaders)); }); }