package org.pixelgaffer.turnierserver.codr.utilities; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.util.Properties; import org.pixelgaffer.turnierserver.codr.view.ControllerStartPage; /** * übernimmt die Speicherung von einigen Einstellungen in die settings.prop * * @author Philip */ public class Settings { public static String webUrl = "turnierserver.informatik-olympiade.de"; public void store(ControllerStartPage cStart) { Properties prop = new Properties(); prop.setProperty("webUrl", webUrl); if (cStart == null) { System.out.println("Konnte Einstellungen nicht speichern"); } else { prop.setProperty("theme", cStart.btTheme.isSelected() + ""); prop.setProperty("fontSize", cStart.slFontSize.getValue() + ""); prop.setProperty("pythonInterpreter", cStart.tbPythonInterpreter.getText()); prop.setProperty("jdkHome", cStart.tbJDK.getText()); prop.setProperty("email", cStart.tbEmail.getText()); } try { Writer writer = new FileWriter(Paths.settings()); prop.store(writer, "Settings"); writer.close(); } catch (IOException e) { ErrorLog.write("Es kann keine Settings-Datei angelegt werden."); return; } } public void loadUrl() { Properties prop = new Properties(); try { Reader reader = new FileReader(Paths.settings()); prop.load(reader); reader.close(); } catch (IOException e) { ErrorLog.write("Fehler bei Laden aus der settings.txt"); return; } String newUrl = prop.getProperty("webUrl"); if (newUrl != null) { webUrl = newUrl; } } public void load(ControllerStartPage cStart) { Properties prop = new Properties(); try { Reader reader = new FileReader(Paths.settings()); prop.load(reader); reader.close(); } catch (IOException e) { ErrorLog.write("Fehler bei Laden aus der settings.txt"); return; } String newUrl = prop.getProperty("webUrl"); if (newUrl != null) { webUrl = newUrl; } if (cStart == null) { System.out.println("Konnte Einstellungen nicht laden (Fatal ERROR)"); } else { try { cStart.btTheme.setSelected(Boolean.parseBoolean(prop.getProperty("theme"))); cStart.slFontSize.setValue(Double.parseDouble(prop.getProperty("fontSize"))); cStart.tbPythonInterpreter.setText(prop.getProperty("pythonInterpreter")); cStart.tbJDK.setText(prop.getProperty("jdkHome")); cStart.tbEmail.setText(prop.getProperty("email")); } catch (NullPointerException e) { System.out.println("Konnte Einstellungen nicht laden (Dies ist beim ersten Start normal)"); } } } }