summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
diff options
context:
space:
mode:
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.java108
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();
+ }
}