SettingsWindow.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package ui;
  2. import controller.Controller;
  3. import controller.SettingsController;
  4. import javafx.application.Platform;
  5. import javafx.concurrent.Task;
  6. import javafx.fxml.FXML;
  7. import javafx.scene.control.Button;
  8. import javafx.scene.control.CheckBox;
  9. import javafx.scene.control.Label;
  10. import javafx.scene.control.ScrollBar;
  11. import javafx.stage.DirectoryChooser;
  12. import javafx.stage.Stage;
  13. import java.io.File;
  14. public class SettingsWindow {
  15. @FXML
  16. private CheckBox holeCheckBox;
  17. @FXML
  18. private ScrollBar touchscreenSlider;
  19. @FXML
  20. private Label touchscreenLabel;
  21. @FXML
  22. private ScrollBar fingerSlider;
  23. @FXML
  24. private Label fingerLabel;
  25. @FXML
  26. private Button scadPath;
  27. private static SettingsWindow window;
  28. private Stage stage;
  29. public SettingsWindow() {
  30. window = this;
  31. }
  32. static SettingsWindow getWindow() {
  33. return window;
  34. }
  35. void setUpListener() {
  36. holeCheckBox.setSelected(Controller.getC().getFill());
  37. touchscreenSlider.setValue(Controller.getC().getSizeScreen() * 10);
  38. touchscreenScrolled();
  39. fingerSlider.setValue(Controller.getC().getSizeFinger() * 10);
  40. fingerScrolled();
  41. scadPath.setText(Controller.getC().getOpenSCADPath().toString());
  42. touchscreenSlider.valueProperty().addListener((observable, oldValue, newValue) -> touchscreenScrolled());
  43. fingerSlider.valueProperty().addListener((observable, oldValue, newValue) -> fingerScrolled());
  44. }
  45. @FXML
  46. protected void fillHoleChecked() {
  47. Controller.getC().setFill(holeCheckBox.isSelected());
  48. }
  49. @FXML
  50. private void touchscreenScrolled() {
  51. Controller.getC().setSizeScreen(Math.round(touchscreenSlider.getValue())/10f);
  52. touchscreenLabel.setText("Conductive dot diameter touchscreen: "+ Math.round(touchscreenSlider.getValue())/10f+"mm");
  53. }
  54. @FXML
  55. private void fingerScrolled() {
  56. Controller.getC().setSizeFinger(Math.round(fingerSlider.getValue())/10f);
  57. fingerLabel.setText("Conductive dot diameter finger: "+ Math.round(fingerSlider.getValue())/10f +"mm");
  58. }
  59. @FXML
  60. protected void pathClicked() {
  61. Task task = new Task() {
  62. @Override
  63. protected Void call() {
  64. DirectoryChooser chooser = new DirectoryChooser();
  65. Platform.runLater(() -> {
  66. File file = chooser.showDialog(stage);
  67. if (file != null) {
  68. Controller.getC().setOpenSCADPath(file.toPath());
  69. Platform.runLater(() -> scadPath.setText(file.toPath().toString()));
  70. }
  71. });
  72. return null;
  73. }
  74. };
  75. new Thread(task).start();
  76. }
  77. @FXML
  78. protected void saveClicked() {
  79. SettingsController.saveSettings();
  80. stage.close();
  81. }
  82. @FXML
  83. protected void cancelSettings() {
  84. File file = new File(Main.olipPath + "settings.ini");
  85. if (file.exists())
  86. SettingsController.loadSettings();
  87. stage.close();
  88. }
  89. void setStage(Stage stage) {
  90. this.stage = stage;
  91. }
  92. }