]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/SaveConfig.java
Version 15.2, November 2013
[GpsPrune.git] / tim / prune / function / SaveConfig.java
index 0f2339f7ea84708cdd44eeb30d08927516d7cbc2..489486d64b1119775455a66cead0a47d02eea03b 100644 (file)
@@ -20,9 +20,9 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 
 import tim.prune.App;
-import tim.prune.Config;
 import tim.prune.GenericFunction;
 import tim.prune.I18nManager;
+import tim.prune.config.Config;
 
 /**
  * Class to provide the function to save the config settings
@@ -86,13 +86,16 @@ public class SaveConfig extends GenericFunction
                        {
                                mainPanel.add(new JLabel(keyLabel));
                                String val = conf.getProperty(key);
+                               String tipText = val;
                                if (Config.isKeyBoolean(key)) {
                                        val = Config.getConfigBoolean(key)?I18nManager.getText("dialog.about.yes"):I18nManager.getText("dialog.about.no");
                                }
                                else if (val != null && val.length() > 30) {
                                        val = val.substring(0, 30) + " ...";
                                }
-                               mainPanel.add(new JLabel(val));
+                               JLabel label = new JLabel(val);
+                               label.setToolTipText(tipText);
+                               mainPanel.add(label);
                        }
                }
                dialogPanel.add(mainPanel, BorderLayout.CENTER);
@@ -128,23 +131,46 @@ public class SaveConfig extends GenericFunction
        private void finish()
        {
                File configFile = Config.getConfigFile();
-               if (configFile == null) {configFile = new File(".pruneconfig");}
+               if (configFile == null) {configFile = Config.HOME_CONFIG_FILE;}
                JFileChooser chooser = new JFileChooser(configFile.getAbsoluteFile().getParent());
                chooser.setSelectedFile(configFile);
                int response = chooser.showSaveDialog(_parentFrame);
                if (response == JFileChooser.APPROVE_OPTION)
                {
                        File saveFile = chooser.getSelectedFile();
-                       try
-                       {
-                               Config.getAllConfig().store(new FileOutputStream(saveFile), "Prune config file");
-                       }
-                       catch (IOException ioe) {
-                               _app.showErrorMessageNoLookup(getNameKey(),
-                                       I18nManager.getText("error.save.failed") + " : " + ioe.getMessage());
-                       }
+                       saveConfig(saveFile);
                }
                _dialog.dispose();
                _dialog = null;
        }
+
+       /**
+        * Autosave the settings file without any prompts
+        */
+       public void silentSave()
+       {
+               saveConfig(Config.getConfigFile());
+       }
+
+       /**
+        * Actually save the config file
+        * @param inSaveFile file to save to
+        */
+       private void saveConfig(File inSaveFile)
+       {
+               FileOutputStream outStream = null;
+               try
+               {
+                       outStream = new FileOutputStream(inSaveFile);
+                       Config.getAllConfig().store(outStream, "GpsPrune config file");
+               }
+               catch (IOException ioe) {
+                       _app.showErrorMessageNoLookup(getNameKey(),
+                               I18nManager.getText("error.save.failed") + " : " + ioe.getMessage());
+               }
+               catch (NullPointerException npe) {} // no config file given
+               finally {
+                       try {outStream.close();} catch (Exception e) {}
+               }
+       }
 }