import javax.swing.JToolBar;
import javax.swing.WindowConstants;
+import tim.prune.config.Config;
+import tim.prune.config.ConfigException;
import tim.prune.gui.DetailsDisplay;
import tim.prune.gui.IconManager;
import tim.prune.gui.MenuManager;
-import tim.prune.gui.ProfileChart;
import tim.prune.gui.SelectorDisplay;
import tim.prune.gui.StatusBar;
import tim.prune.gui.Viewport;
import tim.prune.gui.map.MapCanvas;
+import tim.prune.gui.profile.ProfileChart;
/**
- * Tool to visualize, edit, convert and prune GPS data
+ * Prune 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 and made available through the Gnu GPL
+ * This software is copyright activityworkshop.net 2006-2010 and made available through the Gnu GPL version 2.
+ * For license details please see the included license.txt.
+ * GpsPruner is the main entry point to the application, including initialisation and launch
*/
public class GpsPruner
{
/** Version number of application, used in about screen and for version check */
- public static final String VERSION_NUMBER = "8";
+ public static final String VERSION_NUMBER = "10";
/** Build number, just used for about screen */
- public static final String BUILD_NUMBER = "155";
+ public static final String BUILD_NUMBER = "189";
/** Static reference to App object */
private static App APP = null;
+ /** Program name, used for Frame title and for Macs also on the system bar */
+ private static final String PROGRAM_NAME = "Prune";
+
/**
* Main method
String configFilename = null;
ArrayList<File> dataFiles = new ArrayList<File>();
boolean showUsage = false;
+
+ // Mac OSX - specific properties (Mac insists that this is done as soon as possible)
+ if (System.getProperty("mrj.version") != null) {
+ System.setProperty("apple.laf.useScreenMenuBar", "true"); // menu at top of screen
+ System.setProperty("com.apple.mrj.application.apple.menu.about.name", PROGRAM_NAME);
+ }
+ // Loop over given arguments, if any
for (int i=0; i<args.length; i++)
{
String arg = args[i];
catch (ConfigException ce) {
System.err.println("Failed to load config file: " + configFilename);
}
- if (locale != null) {
+ boolean overrideLang = (locale != null);
+ if (overrideLang) {
// Make sure Config holds chosen language
Config.setConfigString(Config.KEY_LANGUAGE_CODE, localeCode);
}
}
}
I18nManager.init(locale);
- if (langFilename != null) {
+ // Load the external language file, either from config file or from command line params
+ if (langFilename == null && !overrideLang) {
+ // 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("")) {
try {
I18nManager.addLanguageFile(langFilename);
+ Config.setConfigString(Config.KEY_LANGUAGE_FILE, langFilename);
}
catch (FileNotFoundException fnfe) {
System.err.println("Failed to load language file: " + langFilename);
*/
private static void launch(ArrayList<File> inDataFiles)
{
- JFrame frame = new JFrame("Prune");
+ // Initialise Frame
+ JFrame frame = new JFrame(PROGRAM_NAME);
APP = new App(frame);
// make menu