Added variant buttons to option panel

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@416 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Matthias Schiffer 2011-06-11 04:45:28 +02:00
parent 4fbbcb5e06
commit 6ac71b62e3
5 changed files with 175 additions and 95 deletions

View file

@ -34,9 +34,9 @@ public class SettingsControl {
* Create a new settings control
*
* @param view
* the view to use
* the view to use
* @param settings
* initial game settings
* initial game settings
*/
public SettingsControl(IView view, GameSettings settings) {
this.view = view;
@ -44,8 +44,8 @@ public class SettingsControl {
}
/**
* the start game event is emitted when the user wants to start a game and
* the settings made are valid
* the start game event is emitted when the user wants to start a game and the
* settings made are valid
*
* @return the event
*/
@ -78,8 +78,7 @@ public class SettingsControl {
private void addOptionListeners1() {
connections.add(view.getSettingsPanel()
.getChangeInitialMeldThresholdEvent()
.add(new IListener1<Integer>() {
.getChangeInitialMeldThresholdEvent().add(new IListener1<Integer>() {
@Override
public void handle(Integer value) {
settings.setInitialMeldThreshold(value);
@ -104,8 +103,7 @@ public class SettingsControl {
update();
}
}));
connections.add(view.getSettingsPanel()
.getChangeNumberOfStonesDealtEvent()
connections.add(view.getSettingsPanel().getChangeNumberOfStonesDealtEvent()
.add(new IListener1<Integer>() {
@Override
public void handle(Integer value) {
@ -149,6 +147,26 @@ public class SettingsControl {
update();
}
}));
connections.add(view.getSettingsPanel().getSetVariantDefaultEvent()
.add(new IListener() {
@Override
public void handle() {
settings.reset();
update();
}
}));
connections.add(view.getSettingsPanel().getSetVariantChildrenEvent()
.add(new IListener() {
@Override
public void handle() {
settings.reset();
settings.setHighestValue(10);
settings.setJokerNumber(6);
settings.setTime(120);
settings.setInitialMeldThreshold(20);
update();
}
}));
}
private void addPlayerSettingsListeners() {
@ -221,8 +239,7 @@ public class SettingsControl {
break;
}
settings.getPlayerList().add(
new PlayerSettings("Spieler " + num, color));
settings.getPlayerList().add(new PlayerSettings("Spieler " + num, color));
update();
}
@ -263,9 +280,8 @@ public class SettingsControl {
protected void update() {
view.getSettingsPanel().enableRemovePlayerButtons(
settings.getPlayerList().size() > 2);
view.getSettingsPanel()
.enableAddPlayerButton(
settings.getPlayerList().size() < ISettingsPanel.PLAYER_COLORS.length);
view.getSettingsPanel().enableAddPlayerButton(
settings.getPlayerList().size() < ISettingsPanel.PLAYER_COLORS.length);
checkSettings();
@ -286,9 +302,8 @@ public class SettingsControl {
for (int j = i + 1; j < settings.getPlayerList().size(); ++j) {
if (settings.getPlayerList().get(j).getName().equals(name)) {
view.getSettingsPanel()
.setError(
ISettingsPanel.SettingsError.DUPLICATE_PLAYER_NAME_ERROR);
view.getSettingsPanel().setError(
ISettingsPanel.SettingsError.DUPLICATE_PLAYER_NAME_ERROR);
view.getSettingsPanel().enableStartGameButton(false);
return false;
}
@ -297,8 +312,7 @@ public class SettingsControl {
int totalStonesDealt = settings.getNumberOfStonesDealt()
* settings.getPlayerList().size();
int totalStones = settings.getHighestValue()
* settings.getStoneSetNumber()
int totalStones = settings.getHighestValue() * settings.getStoneSetNumber()
* settings.getStoneColors().size() + settings.getJokerNumber();
if (totalStones <= totalStonesDealt) {