SettingsController.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package controller;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.nio.file.Files;
  6. import java.util.List;
  7. import model.Settings;
  8. import ui.Main;
  9. /**
  10. * Save and Load functions for the settings.ini
  11. * @author Martin Herbers
  12. *
  13. */
  14. public class SettingsController {
  15. private static Settings settings = Settings.getSettings();
  16. /**
  17. * Create or override a settings.ini file with all necessary information
  18. */
  19. public static void saveSettings() {
  20. try {
  21. File file = new File(Main.olipPath + "settings.ini");
  22. new File(Main.olipPath).mkdirs();
  23. PrintWriter writer = new PrintWriter(file);
  24. writer.print("[Settings]\r\n");
  25. writer.print("Fill=" + settings.getFill() + "\r\n");
  26. writer.print("SizeScreen=" + settings.getSizeScreen() + "\r\n");
  27. writer.print("SizeFinger=" + settings.getSizeFinger() + "\r\n");
  28. writer.print("OpenSCADPath=" + settings.getOpenSCADPath());
  29. writer.close();
  30. } catch (IOException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. /**
  35. * Parse the settings.ini
  36. */
  37. public static void loadSettings() {
  38. try {
  39. File file = new File(Main.olipPath + "settings.ini");
  40. if (file.exists()) {
  41. List<String> lines = Files.readAllLines(file.toPath());
  42. settings.setFill(Boolean.parseBoolean(lines.get(1).substring(lines.get(1).indexOf('=')+1)));
  43. settings.setSizeScreen(Float.parseFloat(lines.get(2).substring(lines.get(2).indexOf('=')+1)));
  44. settings.setSizeFinger(Float.parseFloat(lines.get(3).substring(lines.get(3).indexOf('=')+1)));
  45. String path = lines.get(4).substring(lines.get(4).indexOf('=')+1);
  46. if (path.equals("null"))
  47. settings.setOpenSCADPath(null);
  48. else
  49. settings.setOpenSCADPath(new File(path).toPath());
  50. }
  51. } catch (IOException e) {
  52. e.printStackTrace();
  53. }
  54. }
  55. }