From 3bf4e9be2c4858e3a36b421b1e676079425fb0f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Kov=C3=A1r?= <matko@192.168.1.105>
Date: Fri, 25 Feb 2022 16:14:53 +0100
Subject: [PATCH] fixed saving project

---
 .../analyst/project/ProjectPanel.java         | 23 ++++++++++++++-----
 .../analyst/project/ProjectTopComp.java       |  2 +-
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
index 70cc97b4..38af8f99 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
@@ -782,6 +782,7 @@ public class ProjectPanel extends JPanel {
         model.setRowCount(0);
         checkFaceState(null, false);
         selectedRows.clear();        
+        userPreferences.remove("pathToMostRecentProject");
     }
     
     /**
@@ -813,13 +814,23 @@ public class ProjectPanel extends JPanel {
      */
     public void saveProject() {
         
-        JFileChooser chooser = new JFileChooser();
-        //chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
-        chooser.setFileFilter(new FileNameExtensionFilter("json files (*.json)", "json"));
-        chooser.setAcceptAllFileFilterUsed(true);
-        chooser.showSaveDialog(null);
+        File file;
         
-        File file = chooser.getSelectedFile();
+        // If current project was saved before
+        String path = userPreferences.get("pathToMostRecentProject", "");
+        if (path != null && !path.isEmpty()) {
+            file = Paths.get(path).toFile();
+            
+        // Project was not saved before, user chooses new path where to save project
+        } else {
+            JFileChooser chooser = new JFileChooser();
+            //chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+            chooser.setFileFilter(new FileNameExtensionFilter("json files (*.json)", "json"));
+            chooser.setAcceptAllFileFilterUsed(true);
+            chooser.showSaveDialog(null);
+
+            file = chooser.getSelectedFile();
+        }
         
         if (file != null) {
             String filePath = file.getAbsolutePath();
diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java
index 06ae6879..ad98c996 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java
@@ -108,7 +108,7 @@ public final class ProjectTopComp extends TopComponent {
         
         // Asks user whether he wants to create new project or open existing
         projectPanel.openExistingOrNewProject();
-        
+       
         // Pass this class to installer so it can call method of this class on close
         Installer inst = new Installer(this);
     }
-- 
GitLab