diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se/notepadMinusMinus')
| -rw-r--r-- | src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainView.fxml | 12 | ||||
| -rw-r--r-- | src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java | 108 |
2 files changed, 113 insertions, 7 deletions
diff --git a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainView.fxml b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainView.fxml index 5b99713..1a07833 100644 --- a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainView.fxml +++ b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainView.fxml @@ -13,27 +13,27 @@ <menus> <Menu mnemonicParsing="false" text="Datei"> <items> - <MenuItem mnemonicParsing="false" text="Neu"> + <MenuItem mnemonicParsing="false" onAction="#handleNew" text="Neu"> <accelerator> <KeyCodeCombination alt="UP" code="N" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> </accelerator> </MenuItem> - <MenuItem mnemonicParsing="false" text="Öffnen"> + <MenuItem mnemonicParsing="false" onAction="#handleOpen" text="Öffnen"> <accelerator> <KeyCodeCombination alt="UP" code="O" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> </accelerator> </MenuItem> - <MenuItem mnemonicParsing="false" text="Speichern"> + <MenuItem mnemonicParsing="false" onAction="#handleSave" text="Speichern"> <accelerator> <KeyCodeCombination alt="UP" code="S" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> </accelerator> </MenuItem> - <MenuItem mnemonicParsing="false" text="Speichern unter"> + <MenuItem mnemonicParsing="false" onAction="#handleSaveAs" text="Speichern unter"> <accelerator> <KeyCodeCombination alt="UP" code="S" control="UP" meta="UP" shift="DOWN" shortcut="DOWN" /> </accelerator> </MenuItem> - <MenuItem mnemonicParsing="false" text="Schließen"> + <MenuItem mnemonicParsing="false" onAction="#handleExit" text="Schließen"> <accelerator> <KeyCodeCombination alt="UP" code="Q" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> </accelerator> @@ -83,7 +83,7 @@ <Label fx:id="ectsSumLabel" text="0" GridPane.columnIndex="1" /> <Label text="Note:" GridPane.columnIndex="2" /> <Label fx:id="averageNoteLabel" text="0,0" GridPane.columnIndex="3" /> - <Button mnemonicParsing="false" onAction="#handleNew" text="Neu" GridPane.columnIndex="4" /> + <Button mnemonicParsing="false" onAction="#handleNewValue" text="Neu" GridPane.columnIndex="4" /> <Button disable="true" mnemonicParsing="false" text="Löschen" GridPane.columnIndex="5" /> <Label text="Kolloquium" GridPane.rowIndex="1" /> <ComboBox fx:id="colloquiumComboBox" disable="true" prefWidth="150.0" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="1" /> 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(); + } } |
