X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2FGpsPruner.java;h=5e0c591b76f82e94173c381c3d991e5b10747337;hp=29f7eb592681131438714de9122b7c7caea0a601;hb=6814c830d470f73c7ec57c71235de333f5ea4279;hpb=112bb0c9b46894adca9a33ed8c99ea712b253185 diff --git a/tim/prune/GpsPruner.java b/tim/prune/GpsPruner.java index 29f7eb5..5e0c591 100644 --- a/tim/prune/GpsPruner.java +++ b/tim/prune/GpsPruner.java @@ -2,6 +2,7 @@ package tim.prune; import java.awt.event.WindowAdapter; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileNotFoundException; @@ -12,29 +13,37 @@ import javax.swing.JSplitPane; 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.SidebarController; 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 = "11.1"; /** Build number, just used for about screen */ - public static final String BUILD_NUMBER = "155"; + public static final String BUILD_NUMBER = "205"; /** 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 @@ -48,6 +57,13 @@ public class GpsPruner String configFilename = null; ArrayList dataFiles = new ArrayList(); 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 inDataFiles) { - JFrame frame = new JFrame("Prune"); + // Initialise Frame + JFrame frame = new JFrame(PROGRAM_NAME); APP = new App(frame); // make menu @@ -184,15 +208,15 @@ public class GpsPruner UpdateMessageBroker.informSubscribers("Prune v" + VERSION_NUMBER); // Arrange in the frame using split panes - JSplitPane midPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, mapDisp, profileDisp); - midPane.setResizeWeight(1.0); // allocate as much space as poss to map - JSplitPane triplePane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, midPane, rightPanel); - triplePane.setResizeWeight(1.0); // allocate as much space as poss to map + JSplitPane midSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT, mapDisp, profileDisp); + midSplit.setResizeWeight(1.0); // allocate as much space as poss to map + JSplitPane rightSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, midSplit, rightPanel); + rightSplit.setResizeWeight(1.0); // allocate as much space as poss to map frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(toolbar, BorderLayout.NORTH); - frame.getContentPane().add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, - triplePane), BorderLayout.CENTER); + JSplitPane leftSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightSplit); + frame.getContentPane().add(leftSplit, BorderLayout.CENTER); frame.getContentPane().add(statusBar, BorderLayout.SOUTH); // add closing listener @@ -215,8 +239,12 @@ public class GpsPruner frame.setSize(650, 450); frame.setVisible(true); // Set position of map/profile splitter - midPane.setDividerLocation(0.75); + midSplit.setDividerLocation(0.75); + // Make a full screen toggler + SidebarController fsc = new SidebarController(new Component[] {leftPanel, profileDisp, rightPanel}, + new JSplitPane[] {leftSplit, midSplit, rightSplit}); + APP.setSidebarController(fsc); // Finally, give the files to load to the App APP.loadDataFiles(inDataFiles); }