package games.strategy.triplea.settings.ai;
import java.util.Arrays;
import java.util.List;
import javax.swing.JTextField;
import games.strategy.engine.ClientContext;
import games.strategy.triplea.settings.IntegerValueRange;
import games.strategy.triplea.settings.SettingInputComponent;
import games.strategy.triplea.settings.SettingInputComponentFactory;
import games.strategy.triplea.settings.SettingsTab;
public class AiTab implements SettingsTab<AiSettings> {
private final List<SettingInputComponent<AiSettings>> inputs;
public AiTab(final AiSettings aiSettings) {
inputs = Arrays.asList(
SettingInputComponentFactory.buildIntegerText(
new IntegerValueRange(0, 3000, AiSettings.DEFAULT_AI_PAUSE_DURACTION),
"AI Pause Duration",
"Time delay (in milliseconds) between AI moves, allows for the AI moves to be watched",
new JTextField(String.valueOf(aiSettings.getAiPauseDuration()), 5),
AiSettings::setAiPauseDuration,
(settings -> String.valueOf(aiSettings.getAiPauseDuration()))),
SettingInputComponentFactory.buildYesOrNoRadioButtons("Show Battles Between AIs",
"When set to yes, combats between AI players will be shown in a battle window.",
aiSettings.showBattlesBetweenAi(),
((settings, s) -> settings.setShowBattlesBetweenAi(Boolean.valueOf(s))),
(settings -> String.valueOf(settings.showBattlesBetweenAi()))));
}
@Override
public String getTabTitle() {
return "AI";
}
@Override
public List<SettingInputComponent<AiSettings>> getInputs() {
return inputs;
}
@Override
public AiSettings getSettingsObject() {
return ClientContext.aiSettings();
}
}