]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/load/FileLoader.java
Version 19, May 2018
[GpsPrune.git] / tim / prune / load / FileLoader.java
index 889f1d7933a6ec2357b07fd6c3b9b3ac3affebb9..52bdef232942f0c5290d2c8160dccba45ce0ef92 100644 (file)
@@ -2,11 +2,15 @@ package tim.prune.load;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.TreeSet;
+
 import javax.swing.JFileChooser;
 import javax.swing.JFrame;
 
 import tim.prune.App;
-import tim.prune.Config;
+import tim.prune.config.Config;
+import tim.prune.data.Photo;
+import tim.prune.load.xml.GzipFileLoader;
 import tim.prune.load.xml.XmlFileLoader;
 import tim.prune.load.xml.ZipFileLoader;
 
@@ -24,6 +28,7 @@ public class FileLoader
        private NmeaFileLoader _nmeaFileLoader = null;
        private XmlFileLoader _xmlFileLoader = null;
        private ZipFileLoader _zipFileLoader = null;
+       private GzipFileLoader _gzipFileLoader = null;
 
 
        /**
@@ -39,6 +44,7 @@ public class FileLoader
                _nmeaFileLoader = new NmeaFileLoader(inApp);
                _xmlFileLoader = new XmlFileLoader(inApp);
                _zipFileLoader = new ZipFileLoader(inApp, _xmlFileLoader);
+               _gzipFileLoader = new GzipFileLoader(inApp, _xmlFileLoader);
        }
 
 
@@ -57,6 +63,7 @@ public class FileLoader
                        _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.kml", new String[] {"kml"}));
                        _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.kmz", new String[] {"kmz"}));
                        _fileChooser.setAcceptAllFileFilterUsed(true);
+                       _fileChooser.setFileFilter(_fileChooser.getAcceptAllFileFilter()); // For some reason seems necessary
                        // start from directory in config if already set (by load jpegs)
                        String configDir = Config.getConfigString(Config.KEY_TRACK_DIR);
                        if (configDir == null) {configDir = Config.getConfigString(Config.KEY_PHOTO_DIR);}
@@ -104,8 +111,9 @@ public class FileLoader
                }
                // Check file type to see if it's xml or just normal text
                String fileExtension = inFile.getName().toLowerCase();
-               if (fileExtension.length() > 4)
-                       {fileExtension = fileExtension.substring(fileExtension.length() - 4);}
+               if (fileExtension.length() > 4) {
+                       fileExtension = fileExtension.substring(fileExtension.length() - 4);
+               }
                if (fileExtension.equals(".kml") || fileExtension.equals(".gpx")
                        || fileExtension.equals(".xml"))
                {
@@ -117,10 +125,23 @@ public class FileLoader
                        // Use zip loader for zipped kml (or zipped gpx)
                        _zipFileLoader.openFile(inFile);
                }
+               else if (fileExtension.endsWith(".gz") || fileExtension.equals("gzip"))
+               {
+                       // Use gzip loader for gzipped xml
+                       _gzipFileLoader.openFile(inFile);
+               }
                else if (fileExtension.equals("nmea"))
                {
                        _nmeaFileLoader.openFile(inFile);
                }
+               else if (fileExtension.equals(".jpg") || fileExtension.equals("jpeg"))
+               {
+                       Photo photo = JpegLoader.createPhoto(inFile);
+                       TreeSet<Photo> photoSet = new TreeSet<Photo>(new MediaSorter());
+                       photoSet.add(photo);
+                       _app.informPhotosLoaded(photoSet);
+                       _app.informNoDataLoaded(); // To trigger load of next file if any
+               }
                else
                {
                        // Use text loader for everything else