
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@455 72836036-5685-4462-b002-a69064685172
70 lines
1.9 KiB
Java
70 lines
1.9 KiB
Java
package jrummikub.control.network;
|
|
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
import jrummikub.model.GameSettings;
|
|
import jrummikub.model.PlayerSettings;
|
|
import jrummikub.model.PlayerSettings.Type;
|
|
import jrummikub.util.GameData;
|
|
import jrummikub.util.IListener1;
|
|
import jrummikub.view.ISettingsPanel.SettingsMode;
|
|
import jrummikub.view.IView;
|
|
|
|
public class GameOfferControl extends AbstractGameBeginControl {
|
|
|
|
public GameOfferControl(final ConnectionControl connectionControl,
|
|
final GameSettings settings, final IView view) {
|
|
super(connectionControl, view,
|
|
new GameData(UUID.randomUUID(), settings),
|
|
SettingsMode.NETWORK_OFFER);
|
|
|
|
connections.add(connectionControl.getGameJoinEvent().add(
|
|
new IListener1<String>() {
|
|
@Override
|
|
public void handle(String sender) {
|
|
for (PlayerSettings player : settings.getPlayerList()) {
|
|
if (player.getType() == Type.VACANT) {
|
|
player.setName(sender);
|
|
player.setType(Type.NETWORK);
|
|
updateSettingsPanel();
|
|
connectionControl.ackJoinGame(sender, true);
|
|
connectionControl.offerGame(gameData);
|
|
return;
|
|
}
|
|
}
|
|
|
|
connectionControl.ackJoinGame(sender, false);
|
|
}
|
|
}));
|
|
connections.add(connectionControl.getGameLeaveEvent().add(
|
|
new IListener1<String>() {
|
|
@Override
|
|
public void handle(String sender) {
|
|
List<PlayerSettings> players = gameData
|
|
.getGameSettings().getPlayerList();
|
|
for (PlayerSettings s : players) {
|
|
if (s.getName().equals(sender)
|
|
&& s.getType() == Type.NETWORK) {
|
|
s.setType(Type.VACANT);
|
|
s.setName("Offen");
|
|
break;
|
|
}
|
|
}
|
|
updateSettingsPanel();
|
|
connectionControl.offerGame(gameData);
|
|
}
|
|
}));
|
|
}
|
|
|
|
public void startGameOffer() {
|
|
connectionControl.offerGame(gameData);
|
|
|
|
view.showSettingsPanel(true);
|
|
|
|
}
|
|
|
|
protected void goBack() {
|
|
// TODO
|
|
}
|
|
}
|