X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fgui%2FMenuManager.java;h=d289b7828fca0086eacf58a6ce74275b1471c786;hp=bce3b4d67b0a6df980b66882f175245af1134155;hb=HEAD;hpb=2302358503c38817e19f6e529f6c9e530aac0e86 diff --git a/src/tim/prune/gui/MenuManager.java b/src/tim/prune/gui/MenuManager.java index bce3b4d..d87f459 100644 --- a/src/tim/prune/gui/MenuManager.java +++ b/src/tim/prune/gui/MenuManager.java @@ -30,10 +30,14 @@ import tim.prune.data.Selection; import tim.prune.data.Track; import tim.prune.data.TrackInfo; import tim.prune.function.ChooseSingleParameter; +import tim.prune.function.PasteCoordinateList; +import tim.prune.function.PasteCoordinates; +import tim.prune.function.PlusCodeFunction; import tim.prune.function.SearchOpenCachingDeFunction; import tim.prune.function.browser.UrlGenerator; import tim.prune.function.browser.WebMapFunction; import tim.prune.function.search.SearchMapillaryFunction; +import tim.prune.function.settings.SaveConfig; /** * Class to manage the menu bar and tool bar, @@ -74,6 +78,7 @@ public class MenuManager implements DataSubscriber private JMenuItem _selectEndItem = null; private JMenuItem _findWaypointItem = null; private JMenuItem _duplicatePointItem = null; + private JMenuItem _projectPointItem = null; private JMenuItem _reverseItem = null; private JMenuItem _addTimeOffsetItem = null; private JMenuItem _addAltitudeOffsetItem = null; @@ -90,10 +95,7 @@ public class MenuManager implements DataSubscriber private JMenu _browserMapMenu = null; private JMenuItem _routingGraphHopperItem = null; private JMenuItem _chartItem = null; - private JMenuItem _getGpsiesItem = null; - private JMenuItem _uploadGpsiesItem = null; private JMenuItem _lookupSrtmItem = null; - private JMenuItem _downloadSrtmItem = null; private JMenuItem _nearbyWikipediaItem = null; private JMenuItem _nearbyOsmPoiItem = null; private JMenuItem _showPeakfinderItem = null; @@ -103,7 +105,7 @@ public class MenuManager implements DataSubscriber private JMenuItem _downloadOsmItem = null; private JMenuItem _getWeatherItem = null; private JMenuItem _distanceItem = null; - private JMenuItem _fullRangeDetailsItem = null; + private JMenuItem _viewFullDetailsItem = null; private JMenuItem _estimateTimeItem = null; private JMenuItem _learnEstimationParams = null; private JMenuItem _autoplayTrack = null; @@ -257,14 +259,6 @@ public class MenuManager implements DataSubscriber // SRTM _lookupSrtmItem = makeMenuItem(FunctionLibrary.FUNCTION_LOOKUP_SRTM, false); onlineMenu.add(_lookupSrtmItem); - _downloadSrtmItem = makeMenuItem(FunctionLibrary.FUNCTION_DOWNLOAD_SRTM, false); - onlineMenu.add(_downloadSrtmItem); - // Get gpsies tracks - _getGpsiesItem = makeMenuItem(FunctionLibrary.FUNCTION_GET_GPSIES, false); - onlineMenu.add(_getGpsiesItem); - // Upload to gpsies - _uploadGpsiesItem = makeMenuItem(FunctionLibrary.FUNCTION_UPLOAD_GPSIES, false); - onlineMenu.add(_uploadGpsiesItem); onlineMenu.addSeparator(); // browser submenu @@ -491,9 +485,17 @@ public class MenuManager implements DataSubscriber // duplicate current point _duplicatePointItem = makeMenuItem(FunctionLibrary.FUNCTION_DUPLICATE_POINT, false); pointMenu.add(_duplicatePointItem); + // project current point + _projectPointItem = makeMenuItem(FunctionLibrary.FUNCTION_PROJECT_POINT, false); + pointMenu.add(_projectPointItem); // paste coordinates function - JMenuItem pasteCoordsItem = makeMenuItem(FunctionLibrary.FUNCTION_PASTE_COORDINATES); + JMenuItem pasteCoordsItem = makeMenuItem(new PasteCoordinates(_app)); pointMenu.add(pasteCoordsItem); + JMenuItem pasteCoordsListItem = makeMenuItem(new PasteCoordinateList(_app)); + pointMenu.add(pasteCoordsListItem); + // pluscodes function + JMenuItem plusCodeItem = makeMenuItem(new PlusCodeFunction(_app)); + pointMenu.add(plusCodeItem); menubar.add(pointMenu); // Add view menu @@ -530,8 +532,8 @@ public class MenuManager implements DataSubscriber _distanceItem = makeMenuItem(FunctionLibrary.FUNCTION_DISTANCES, false); viewMenu.add(_distanceItem); // full range details - _fullRangeDetailsItem = makeMenuItem(FunctionLibrary.FUNCTION_FULL_RANGE_DETAILS, false); - viewMenu.add(_fullRangeDetailsItem); + _viewFullDetailsItem = makeMenuItem(FunctionLibrary.FUNCTION_FULL_DETAILS, false); + viewMenu.add(_viewFullDetailsItem); // estimate time _estimateTimeItem = makeMenuItem(FunctionLibrary.FUNCTION_ESTIMATE_TIME, false); viewMenu.add(_estimateTimeItem); @@ -659,7 +661,10 @@ public class MenuManager implements DataSubscriber _autosaveSettingsCheckbox.setSelected(Config.getConfigBoolean(Config.KEY_AUTOSAVE_SETTINGS)); _autosaveSettingsCheckbox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Config.setConfigBoolean(Config.KEY_AUTOSAVE_SETTINGS, _autosaveSettingsCheckbox.isSelected()); + final boolean autosaveOn = _autosaveSettingsCheckbox.isSelected(); + Config.setConfigBoolean(Config.KEY_AUTOSAVE_SETTINGS, autosaveOn); + // Maybe want to save config? + new SaveConfig(_app).autosaveSwitched(autosaveOn); } }); settingsMenu.add(_autosaveSettingsCheckbox); @@ -868,7 +873,7 @@ public class MenuManager implements DataSubscriber _markRectangleItem.setEnabled(hasData); _markUphillLiftsItem.setEnabled(hasData && _track.hasAltitudeData()); _deleteMarkedPointsItem.setEnabled(hasData && _track.hasMarkedPoints()); - _rearrangeWaypointsItem.setEnabled(hasData && _track.hasTrackPoints() && _track.hasWaypoints()); + _rearrangeWaypointsItem.setEnabled(hasData && _track.hasWaypoints() && _track.getNumPoints() > 1); final boolean hasSeveralTrackPoints = hasData && _track.hasTrackPoints() && _track.getNumPoints() > 3; _splitSegmentsItem.setEnabled(hasSeveralTrackPoints); _sewSegmentsItem.setEnabled(hasSeveralTrackPoints); @@ -880,16 +885,12 @@ public class MenuManager implements DataSubscriber _browserMapMenu.setEnabled(hasData); _distanceItem.setEnabled(hasData); _autoplayTrack.setEnabled(hasData && _track.getNumPoints() > 3); - _getGpsiesItem.setEnabled(hasData); - _uploadGpsiesItem.setEnabled(hasData && _track.hasTrackPoints()); _lookupSrtmItem.setEnabled(hasData); _nearbyWikipediaItem.setEnabled(hasData); _nearbyOsmPoiItem.setEnabled(hasData); _downloadOsmItem.setEnabled(hasData); _getWeatherItem.setEnabled(hasData); _findWaypointItem.setEnabled(hasData && _track.hasWaypoints()); - // have we got a cache? - _downloadSrtmItem.setEnabled(hasData && Config.getConfigString(Config.KEY_DISK_CACHE) != null); // have we got any timestamps? _deleteByDateItem.setEnabled(hasData && _track.hasData(Field.TIMESTAMP)); @@ -911,6 +912,7 @@ public class MenuManager implements DataSubscriber _selectEndItem.setEnabled(hasPoint); _selectEndButton.setEnabled(hasPoint); _duplicatePointItem.setEnabled(hasPoint); + _projectPointItem.setEnabled(hasPoint); _showPeakfinderItem.setEnabled(hasPoint); _showGeohackItem.setEnabled(hasPoint); _searchOpencachingDeItem.setEnabled(hasPoint); @@ -958,7 +960,7 @@ public class MenuManager implements DataSubscriber _addAltitudeOffsetItem.setEnabled(hasRange); _convertNamesToTimesItem.setEnabled(hasRange && _track.hasWaypoints()); _deleteFieldValuesItem.setEnabled(hasRange); - _fullRangeDetailsItem.setEnabled(hasRange); + _viewFullDetailsItem.setEnabled(hasRange || hasPoint); _estimateTimeItem.setEnabled(hasRange); _learnEstimationParams.setEnabled(hasData && _track.hasTrackPoints() && _track.hasData(Field.TIMESTAMP) && _track.hasAltitudeData()); @@ -996,6 +998,7 @@ public class MenuManager implements DataSubscriber } else { + rfl.verifyAll(); // Rebuild menus _recentFileMenu.removeAll(); for (int i=0; i