summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameJoinControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/GameJoinControl.java')
-rw-r--r--src/jrummikub/control/network/GameJoinControl.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/jrummikub/control/network/GameJoinControl.java b/src/jrummikub/control/network/GameJoinControl.java
index 048491a..55f584d 100644
--- a/src/jrummikub/control/network/GameJoinControl.java
+++ b/src/jrummikub/control/network/GameJoinControl.java
@@ -1,7 +1,11 @@
package jrummikub.control.network;
+import java.awt.Color;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
@@ -9,6 +13,7 @@ import jrummikub.model.PlayerSettings.Type;
import jrummikub.util.Connection;
import jrummikub.util.GameData;
import jrummikub.util.IListener1;
+import jrummikub.view.ISettingsPanel;
import jrummikub.view.ISettingsPanel.SettingsMode;
import jrummikub.view.IView;
@@ -38,12 +43,26 @@ public class GameJoinControl {
fixGameSettings(settings);
gameData.setGameSettings(settings);
- view.getSettingsPanel().setGameSettings(settings);
+
+ updateSettingsPanel(settings);
}
}
}));
}
+ private void updateSettingsPanel(GameSettings settings) {
+ view.getSettingsPanel().setGameSettings(settings);
+
+ Set<Color> colors = new HashSet<Color>(
+ Arrays.asList(ISettingsPanel.PLAYER_COLORS));
+
+ for (PlayerSettings player : settings.getPlayerList()) {
+ colors.remove(player.getColor());
+ }
+
+ view.getSettingsPanel().setPlayerColors(colors);
+ }
+
private void fixGameSettings(GameSettings settings) {
for (PlayerSettings player : settings.getPlayerList()) {
if (player.getType() == Type.HUMAN) {