diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java')
| -rw-r--r-- | src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java | 108 |
1 files changed, 107 insertions, 1 deletions
diff --git a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java index 493ec42..bea6305 100644 --- a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java +++ b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java @@ -1,9 +1,11 @@ package de.fhswf.in.inf.se.notepadMinusMinus.view; +import java.io.File; import java.math.BigDecimal; import de.fhswf.in.inf.se.notepadMinusMinus.Main; import de.fhswf.in.inf.se.notepadMinusMinus.model.Grade; +import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; @@ -11,6 +13,7 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.ComboBoxTableCell; import javafx.scene.control.cell.TextFieldTableCell; +import javafx.stage.FileChooser; import javafx.util.converter.IntegerStringConverter; public class MainViewController @@ -45,6 +48,8 @@ public class MainViewController @FXML private ComboBox<Double> thesisComboBox; + private Main main; + @FXML private void initialize() { @@ -90,13 +95,114 @@ public class MainViewController public void setMain(Main main) { + this.main = main; gradeTable.setItems(main.getGradeList()); } @FXML - private void handleNew() + private void handleNewValue() { Grade grade = new Grade(); gradeTable.getItems().add(grade); } + + @FXML + private void handleNew() + { + if (main != null) + { + gradeTable.getItems().clear(); + main.setOpenFile(null); + } + } + + @FXML + private void handleOpen() + { + FileChooser fileChooser = new FileChooser(); + + // Set extension filter + FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter( + "XML files (*.xml)", "*.xml"); + fileChooser.getExtensionFilters().add(extFilter); + + // Set initial Directory to a good value + if (main != null && main.getGradesFilePath() != null) + { + fileChooser + .setInitialDirectory(main.getGradesFilePath().getParentFile()); + } + else + { + String userDirectoryString = System.getProperty("user.home"); + File userDirectory = new File(userDirectoryString); + fileChooser.setInitialDirectory(userDirectory); + } + + // Show save file dialog + File file = fileChooser.showOpenDialog(main.getPrimaryStage()); + + if (file != null) + { + main.loadGradesFromFile(file); + } + } + + @FXML + private void handleSave() + { + if (main.getOpenFile() == null) + { + handleSaveAs(); + } + else + { + if (main != null) + { + main.saveGradesToFile(main.getOpenFile()); + } + } + } + + @FXML + private void handleSaveAs() + { + FileChooser fileChooser = new FileChooser(); + + // Only show XML files. + FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter( + "XML files (*.xml)", "*.xml"); + fileChooser.getExtensionFilters().add(extFilter); + + // Set initial Directory to a good value + if (main != null && main.getGradesFilePath() != null) + { + fileChooser + .setInitialDirectory(main.getGradesFilePath().getParentFile()); + } + else + { + String userDirectoryString = System.getProperty("user.home"); + File userDirectory = new File(userDirectoryString); + fileChooser.setInitialDirectory(userDirectory); + } + + File file = fileChooser.showSaveDialog(main.getPrimaryStage()); + + if (file != null) + { + // Set the correct file ending + if (!file.getPath().endsWith(".xml")) + { + file = new File(file.getPath() + ".xml"); + } + main.saveGradesToFile(file); + } + } + + @FXML + private void handleExit() + { + Platform.exit(); + } } |
