package cryodex;
import java.util.ArrayList;
import java.util.List;
import cryodex.CryodexController.Modules;
import cryodex.modules.Tournament;
import cryodex.xml.XMLObject;
import cryodex.xml.XMLUtils;
import cryodex.xml.XMLUtils.Element;
public class CryodexOptions implements XMLObject {
private boolean showTableNumbers = true;
private boolean showQuickFind = false;
private final List<Modules> nonVisibleModules = new ArrayList<Modules>();
public CryodexOptions() {
}
public CryodexOptions(Element e) {
showTableNumbers = e.getBooleanFromChild("SHOWTABLENUMBERS", false);
showQuickFind = e.getBooleanFromChild("SHOWQUICKFIND", false);
String modulesToTurnOff = e.getStringFromChild("NONVISIBLEMODULES");
if (modulesToTurnOff != null && modulesToTurnOff.isEmpty() == false) {
for (String s : modulesToTurnOff.split(",")) {
Modules m = Modules.getEnumByName(s);
if (m != null) {
nonVisibleModules.add(m);
m.getModule().setModuleEnabled(false);
m.getModule().getViewMenuItem().setSelected(false);
}
}
}
}
public boolean isShowTableNumbers() {
return showTableNumbers;
}
public void setShowTableNumbers(boolean showTableNumbers) {
this.showTableNumbers = showTableNumbers;
updateTournamentVisuals();
}
public boolean isShowQuickFind() {
return showQuickFind;
}
public void setShowQuickFind(boolean showQuickFind) {
this.showQuickFind = showQuickFind;
updateTournamentVisuals();
}
public List<Modules> getNonVisibleModules() {
return nonVisibleModules;
}
private void updateTournamentVisuals() {
if (CryodexController.isLoading == false
&& CryodexController.getAllTournaments() != null) {
for (Tournament t : CryodexController.getAllTournaments()) {
t.updateVisualOptions();
}
CryodexController.saveData();
}
}
@Override
public StringBuilder appendXML(StringBuilder sb) {
String moduleString = "";
String seperator = "";
for (Modules m : getNonVisibleModules()) {
moduleString += seperator + m.getName();
seperator = ",";
}
XMLUtils.appendObject(sb, "SHOWQUICKFIND", showQuickFind);
XMLUtils.appendObject(sb, "SHOWTABLENUMBERS", showTableNumbers);
XMLUtils.appendObject(sb, "NONVISIBLEMODULES", moduleString);
return sb;
}
}