/**
* GpsPrune is a tool to visualize, edit, convert and prune GPS data
* Please see the included readme.txt or http://activityworkshop.net
- * This software is copyright activityworkshop.net 2006-2011 and made available through the Gnu GPL version 2.
+ * This software is copyright activityworkshop.net 2006-2014 and made available through the Gnu GPL version 2.
* For license details please see the included license.txt.
* GpsPrune is the main entry point to the application, including initialisation and launch
*/
public class GpsPrune
{
/** Version number of application, used in about screen and for version check */
- public static final String VERSION_NUMBER = "13";
+ public static final String VERSION_NUMBER = "16";
/** Build number, just used for about screen */
- public static final String BUILD_NUMBER = "240";
+ public static final String BUILD_NUMBER = "301";
/** Static reference to App object */
private static App APP = null;
{
// Check if a data file has been given
File f = new File(arg);
- if (f.exists() && f.canRead()) {
+ if (f.exists() && f.isFile() && f.canRead()) {
dataFiles.add(f);
}
- else {
- System.out.println("Unknown parameter '" + arg + "'.");
+ else
+ {
+ // Make a useful String from the unknown parameter - could it be a mistyped filename?
+ System.out.println(makeUnknownParameterString(arg));
showUsage = true;
}
}
}
- if (showUsage) {
- System.out.println("Possible parameters:"
+ if (showUsage)
+ {
+ System.out.println("GpsPrune - a tool for editing GPS data.\nPossible parameters:"
+ "\n --configfile=<file> used to specify a configuration file"
+ "\n --lang=<code> used to specify language code such as DE"
+ "\n --langfile=<file> used to specify an alternative language file\n");
// If langfilename is blank on command line parameters then don't use setting from config
langFilename = Config.getConfigString(Config.KEY_LANGUAGE_FILE);
}
- if (langFilename != null && !langFilename.equals("")) {
+ if (langFilename != null)
+ {
try {
I18nManager.addLanguageFile(langFilename);
Config.setConfigString(Config.KEY_LANGUAGE_FILE, langFilename);
}
catch (FileNotFoundException fnfe) {
System.err.println("Failed to load language file: " + langFilename);
+ Config.setConfigString(Config.KEY_LANGUAGE_FILE, "");
}
}
// Set up the window and go
}
catch (Exception e) {} // ignore
+ // Set up drag-and-drop handler to accept dropped files
+ frame.setTransferHandler(new FileDropHandler(APP));
+
// finish off and display frame
frame.pack();
frame.setSize(650, 450);
// Finally, give the files to load to the App
APP.loadDataFiles(inDataFiles);
}
+
+ /**
+ * Try to guess whether it's a mistyped parameter or a mistyped filename
+ * @param inParam command line argument
+ * @return error message
+ */
+ private static String makeUnknownParameterString(String inParam)
+ {
+ File file = new File(inParam);
+ if (file.exists())
+ {
+ if (file.isDirectory()) return "'" + inParam + "' is a directory";
+ if (!file.canRead()) return "Cannot read file '" + inParam + "'";
+ return "Something wrong with file '" + inParam + "'";
+ }
+ do
+ {
+ String name = file.getName();
+ file = file.getParentFile();
+ if (file != null && file.exists() && file.canRead()) return "Tried to load file '" + inParam + "' but cannot find '" + name + "'";
+ }
+ while (file != null);
+
+ return "Unknown parameter '" + inParam + "'";
+ }
}