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;
+import tim.prune.function.srtm.DownloadSrtmFunction;
+import tim.prune.function.srtm.SrtmGl1Source;
+import tim.prune.function.srtm.Srtm3Source;
/**
* Class to manage the menu bar and tool bar,
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;
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 JMenu _downloadSrtmMenu = null;
private JMenuItem _nearbyWikipediaItem = null;
private JMenuItem _nearbyOsmPoiItem = null;
private JMenuItem _showPeakfinderItem = null;
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;
// 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);
+ // Download SRTM sub-menu
+ _downloadSrtmMenu = new JMenu(I18nManager.getText("function.downloadsrtm"));
+ _downloadSrtmMenu.setEnabled(false);
+ JMenuItem downloadStrmGl1Item = makeMenuItem(new DownloadSrtmFunction(_app, new SrtmGl1Source()));
+ _downloadSrtmMenu.add(downloadStrmGl1Item);
+ JMenuItem downloadStrm3Item = makeMenuItem(new DownloadSrtmFunction(_app, new Srtm3Source()));
+ _downloadSrtmMenu.add(downloadStrm3Item);
+ onlineMenu.add(_downloadSrtmMenu);
onlineMenu.addSeparator();
// browser submenu
// 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
_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);
settingsMenu.add(makeMenuItem(new ChooseSingleParameter(_app, FunctionLibrary.FUNCTION_SET_ALTITUDE_TOLERANCE)));
// Set timezone
settingsMenu.add(makeMenuItem(FunctionLibrary.FUNCTION_SET_TIMEZONE));
+ // Set Earthdata authentication
+ settingsMenu.add(makeMenuItem(FunctionLibrary.FUNCTION_SET_EARTHDATA_AUTH));
settingsMenu.addSeparator();
// Save configuration
settingsMenu.add(makeMenuItem(FunctionLibrary.FUNCTION_SAVECONFIG));
_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);
_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);
_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);
_getWeatherItem.setEnabled(hasData);
_findWaypointItem.setEnabled(hasData && _track.hasWaypoints());
// have we got a cache?
- _downloadSrtmItem.setEnabled(hasData && Config.getConfigString(Config.KEY_DISK_CACHE) != null);
+ _downloadSrtmMenu.setEnabled(hasData && Config.getConfigString(Config.KEY_DISK_CACHE) != null);
// have we got any timestamps?
_deleteByDateItem.setEnabled(hasData && _track.hasData(Field.TIMESTAMP));
_selectEndItem.setEnabled(hasPoint);
_selectEndButton.setEnabled(hasPoint);
_duplicatePointItem.setEnabled(hasPoint);
+ _projectPointItem.setEnabled(hasPoint);
_showPeakfinderItem.setEnabled(hasPoint);
_showGeohackItem.setEnabled(hasPoint);
_searchOpencachingDeItem.setEnabled(hasPoint);
_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());