SettingsWindow.java 3.1 KB

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