X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fload%2FFileLoader.java;h=889f1d7933a6ec2357b07fd6c3b9b3ac3affebb9;hp=b3c03b435926411f67f6ab02d164e074d6616fa2;hb=112bb0c9b46894adca9a33ed8c99ea712b253185;hpb=54b9d8bc8f0025ccf97a67d9dd217ef1f9cf082f diff --git a/tim/prune/load/FileLoader.java b/tim/prune/load/FileLoader.java index b3c03b4..889f1d7 100644 --- a/tim/prune/load/FileLoader.java +++ b/tim/prune/load/FileLoader.java @@ -1,7 +1,7 @@ package tim.prune.load; import java.io.File; - +import java.util.ArrayList; import javax.swing.JFileChooser; import javax.swing.JFrame; @@ -21,6 +21,7 @@ public class FileLoader private JFileChooser _fileChooser = null; private JFrame _parentFrame; private TextFileLoader _textFileLoader = null; + private NmeaFileLoader _nmeaFileLoader = null; private XmlFileLoader _xmlFileLoader = null; private ZipFileLoader _zipFileLoader = null; @@ -35,6 +36,7 @@ public class FileLoader _app = inApp; _parentFrame = inParentFrame; _textFileLoader = new TextFileLoader(inApp, inParentFrame); + _nmeaFileLoader = new NmeaFileLoader(inApp); _xmlFileLoader = new XmlFileLoader(inApp); _zipFileLoader = new ZipFileLoader(inApp, _xmlFileLoader); } @@ -56,47 +58,76 @@ public class FileLoader _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.kmz", new String[] {"kmz"})); _fileChooser.setAcceptAllFileFilterUsed(true); // start from directory in config if already set (by load jpegs) - File configDir = Config.getWorkingDirectory(); - if (configDir != null) {_fileChooser.setCurrentDirectory(configDir);} + String configDir = Config.getConfigString(Config.KEY_TRACK_DIR); + if (configDir == null) {configDir = Config.getConfigString(Config.KEY_PHOTO_DIR);} + if (configDir != null) {_fileChooser.setCurrentDirectory(new File(configDir));} + _fileChooser.setMultiSelectionEnabled(true); // Allow multiple selections } // Show the open dialog if (_fileChooser.showOpenDialog(_parentFrame) == JFileChooser.APPROVE_OPTION) { - File file = _fileChooser.getSelectedFile(); - // Check file exists and is readable - if (file != null && file.exists() && file.canRead()) + File[] files = _fileChooser.getSelectedFiles(); + // Loop through files looking for files which exist and are readable + ArrayList dataFiles = new ArrayList(); + if (files != null) { - // Store directory in config for later - Config.setWorkingDirectory(file.getParentFile()); - // Check file type to see if it's xml or just normal text - String fileExtension = file.getName().toLowerCase(); - if (fileExtension.length() > 4) - {fileExtension = fileExtension.substring(fileExtension.length() - 4);} - if (fileExtension.equals(".kml") || fileExtension.equals(".gpx") - || fileExtension.equals(".xml")) - { - // Use xml loader for kml, gpx and xml filenames - _xmlFileLoader.openFile(file); - } - else if (fileExtension.equals(".kmz") || fileExtension.equals(".zip")) - { - // Use zip loader for zipped kml (or zipped gpx) - _zipFileLoader.openFile(file); - } - else + for (int i=0; i 0) { + _app.loadDataFiles(dataFiles); + } else { - // couldn't read file - show error message + // couldn't find any files to load - show error message _app.showErrorMessage("error.load.dialogtitle", "error.load.noread"); } } } + /** + * Open the selected input file + * @param inFile file to open + */ + public void openFile(File inFile) + { + // Store directory in config for later + File parent = inFile.getParentFile(); + if (parent != null) { + Config.setConfigString(Config.KEY_TRACK_DIR, parent.getAbsolutePath()); + } + // 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.equals(".kml") || fileExtension.equals(".gpx") + || fileExtension.equals(".xml")) + { + // Use xml loader for kml, gpx and xml filenames + _xmlFileLoader.openFile(inFile); + } + else if (fileExtension.equals(".kmz") || fileExtension.equals(".zip")) + { + // Use zip loader for zipped kml (or zipped gpx) + _zipFileLoader.openFile(inFile); + } + else if (fileExtension.equals("nmea")) + { + _nmeaFileLoader.openFile(inFile); + } + else + { + // Use text loader for everything else + _textFileLoader.openFile(inFile); + } + } + /** * @return the last delimiter character used for a text file load */