SettingsController.java 1.8 KB

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