SettingsWindow.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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.FileChooser;
  15. import javafx.stage.Stage;
  16. import javax.swing.*;
  17. import java.io.File;
  18. import java.io.IOException;
  19. public class SettingsWindow {
  20. @FXML
  21. private CheckBox holeCheckBox;
  22. @FXML
  23. private ScrollBar touchscreenSlider;
  24. @FXML
  25. private Label touchscreenLabel;
  26. @FXML
  27. private ScrollBar fingerSlider;
  28. @FXML
  29. private Label fingerLabel;
  30. @FXML
  31. private Button scadPath;
  32. private static SettingsWindow window;
  33. private Stage stage;
  34. public SettingsWindow() {
  35. window = this;
  36. }
  37. public static SettingsWindow getWindow() {
  38. return window;
  39. }
  40. protected void setUpListener() {
  41. holeCheckBox.setSelected(Controller.getC().getFill());
  42. touchscreenSlider.setValue(Controller.getC().getSizeScreen() * 10);
  43. touchscreenScrolled();
  44. fingerSlider.setValue(Controller.getC().getSizeFinger() * 10);
  45. fingerScrolled();
  46. String s = Controller.getC().getOpenSCADPath().toString();
  47. scadPath.setText(Controller.getC().getOpenSCADPath().toString());
  48. touchscreenSlider.valueProperty().addListener(new ChangeListener<Number>() {
  49. @Override
  50. public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
  51. touchscreenScrolled();
  52. }
  53. });
  54. fingerSlider.valueProperty().addListener(new ChangeListener<Number>() {
  55. @Override
  56. public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
  57. fingerScrolled();
  58. }
  59. });
  60. }
  61. @FXML
  62. protected void fillHoleChecked() {
  63. Controller.getC().setFill(holeCheckBox.isSelected());
  64. }
  65. @FXML
  66. protected void touchscreenScrolled() {
  67. Controller.getC().setSizeScreen(Math.round(touchscreenSlider.getValue())/10f);
  68. touchscreenLabel.setText("Conductive dot diameter touchscreen: "+ Math.round(touchscreenSlider.getValue())/10f+"mm");
  69. }
  70. @FXML
  71. protected void fingerScrolled() {
  72. Controller.getC().setSizeFinger(Math.round(fingerSlider.getValue())/10f);
  73. fingerLabel.setText("Conductive dot diameter finger: "+ Math.round(fingerSlider.getValue())/10f +"mm");
  74. }
  75. @FXML
  76. protected void pathClicked() {
  77. Task task = new Task() {
  78. @Override
  79. protected Void call() throws Exception {
  80. DirectoryChooser chooser = new DirectoryChooser();
  81. Platform.runLater(() -> {
  82. File file = chooser.showDialog(stage);
  83. if (file != null) {
  84. Controller.getC().setOpenSCADPath(file.toPath());
  85. Platform.runLater(() -> scadPath.setText(file.toPath().toString()));
  86. }
  87. });
  88. /* JFileChooser chooser = new JFileChooser();
  89. chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  90. chooser.showOpenDialog(null);
  91. if (chooser.getSelectedFile() != null && chooser.getSelectedFile().isDirectory()) {
  92. Controller.getC().setOpenSCADPath(chooser.getSelectedFile().toPath());
  93. Platform.runLater(() -> scadPath.setText(chooser.getSelectedFile().toPath().toString()));
  94. }*/
  95. return null;
  96. }
  97. };
  98. new Thread(task).start();
  99. }
  100. @FXML
  101. protected void saveClicked() {
  102. SettingsController.saveSettings();
  103. stage.close();
  104. }
  105. @FXML
  106. protected void cancelSettings() {
  107. File file = null;
  108. try {
  109. file = new File(new File( "." ).getCanonicalPath() + File.separator + "settings.ini");
  110. } catch (IOException e) {
  111. e.printStackTrace();
  112. }
  113. if (file.exists())
  114. SettingsController.loadSettings();
  115. stage.close();
  116. }
  117. public void setStage(Stage stage) {
  118. this.stage = stage;
  119. }
  120. }