+ rangeMenu.add(_selectEndItem);
+ rangeMenu.addSeparator();
+ _deleteRangeItem = makeMenuItem(FunctionLibrary.FUNCTION_DELETE_RANGE, false);
+ rangeMenu.add(_deleteRangeItem);
+ _cropTrackItem = makeMenuItem(FunctionLibrary.FUNCTION_CROP_TRACK, false);
+ rangeMenu.add(_cropTrackItem);
+ _reverseItem = new JMenuItem(I18nManager.getText("menu.range.reverse"));
+ _reverseItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.reverseRange();
+ }
+ });
+ _reverseItem.setEnabled(false);
+ rangeMenu.add(_reverseItem);
+ _addTimeOffsetItem = makeMenuItem(FunctionLibrary.FUNCTION_ADD_TIME_OFFSET, false);
+ rangeMenu.add(_addTimeOffsetItem);
+ _addAltitudeOffsetItem = makeMenuItem(FunctionLibrary.FUNCTION_ADD_ALTITUDE_OFFSET, false);
+ rangeMenu.add(_addAltitudeOffsetItem);
+ _mergeSegmentsItem = new JMenuItem(I18nManager.getText("menu.range.mergetracksegments"));
+ _mergeSegmentsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.mergeTrackSegments();
+ }
+ });
+ _mergeSegmentsItem.setEnabled(false);
+ rangeMenu.add(_mergeSegmentsItem);
+ _deleteFieldValuesItem = makeMenuItem(FunctionLibrary.FUNCTION_DELETE_FIELD_VALUES, false);
+ rangeMenu.add(_deleteFieldValuesItem);
+ rangeMenu.addSeparator();
+ _interpolateItem = makeMenuItem(FunctionLibrary.FUNCTION_INTERPOLATE, false);
+ rangeMenu.add(_interpolateItem);
+ _averageItem = new JMenuItem(I18nManager.getText("menu.range.average"));
+ _averageItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.averageSelection();
+ }
+ });
+ _averageItem.setEnabled(false);
+ rangeMenu.add(_averageItem);
+ _cutAndMoveItem = new JMenuItem(I18nManager.getText("menu.range.cutandmove"));
+ _cutAndMoveItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ _app.cutAndMoveSelection();
+ }
+ });
+ _cutAndMoveItem.setEnabled(false);
+ rangeMenu.add(_cutAndMoveItem);
+ _convertNamesToTimesItem = makeMenuItem(FunctionLibrary.FUNCTION_CONVERT_NAMES_TO_TIMES, false);
+ rangeMenu.add(_convertNamesToTimesItem);
+ menubar.add(rangeMenu);
+
+ // Point menu
+ JMenu pointMenu = new JMenu(I18nManager.getText("menu.point"));
+ setAltKey(pointMenu, "altkey.menu.point");
+ _editPointItem = new JMenuItem(I18nManager.getText("menu.point.editpoint"));
+ _editPointAction = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.editCurrentPoint();
+ }
+ };
+ _editPointItem.addActionListener(_editPointAction);
+ _editPointItem.setEnabled(false);
+ pointMenu.add(_editPointItem);
+ _editWaypointNameItem = makeMenuItem(FunctionLibrary.FUNCTION_EDIT_WAYPOINT_NAME, false);
+ pointMenu.add(_editWaypointNameItem);
+ _deletePointItem = new JMenuItem(I18nManager.getText("menu.point.deletepoint"));
+ _deletePointAction = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.deleteCurrentPoint();
+ }
+ };
+ _deletePointItem.addActionListener(_deletePointAction);
+ _deletePointItem.setEnabled(false);
+ _deletePointItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
+ pointMenu.add(_deletePointItem);
+ pointMenu.addSeparator();
+ // find a waypoint
+ _findWaypointItem = makeMenuItem(FunctionLibrary.FUNCTION_FIND_WAYPOINT, false);
+ pointMenu.add(_findWaypointItem);
+ // duplicate current point
+ _duplicatePointItem = makeMenuItem(FunctionLibrary.FUNCTION_DUPLICATE_POINT, false);
+ pointMenu.add(_duplicatePointItem);
+ // paste coordinates function
+ JMenuItem pasteCoordsItem = makeMenuItem(FunctionLibrary.FUNCTION_PASTE_COORDINATES);
+ pointMenu.add(pasteCoordsItem);
+ menubar.add(pointMenu);
+
+ // Add view menu
+ JMenu viewMenu = new JMenu(I18nManager.getText("menu.view"));
+ setAltKey(viewMenu, "altkey.menu.view");
+ // Turn map display on/off
+ _mapCheckbox = new JCheckBoxMenuItem(
+ I18nManager.getText("menu.map.showmap"), false);
+ _mapCheckbox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Config.setConfigBoolean(Config.KEY_SHOW_MAP, _mapCheckbox.isSelected());
+ UpdateMessageBroker.informSubscribers(MAPSERVER_CHANGED);
+ }
+ });
+ viewMenu.add(_mapCheckbox);
+ // Turn off the sidebars
+ JCheckBoxMenuItem sidebarsCheckbox = new JCheckBoxMenuItem(I18nManager.getText("menu.view.showsidebars"));
+ sidebarsCheckbox.setSelected(true);
+ sidebarsCheckbox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.toggleSidebars();
+ }
+ });
+ sidebarsCheckbox.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0)); // shortcut F11
+ viewMenu.add(sidebarsCheckbox);
+ // 3d
+ _show3dItem = makeMenuItem(FunctionLibrary.FUNCTION_3D, false);
+ viewMenu.add(_show3dItem);
+ // browser submenu
+ _browserMapMenu = new JMenu(I18nManager.getText("menu.view.browser"));
+ _browserMapMenu.setEnabled(false);
+ JMenuItem googleMapsItem = new JMenuItem(I18nManager.getText("menu.view.browser.google"));
+ googleMapsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.showExternalMap(UrlGenerator.MAP_SOURCE_GOOGLE);
+ }
+ });
+ _browserMapMenu.add(googleMapsItem);
+ JMenuItem openMapsItem = new JMenuItem(I18nManager.getText("menu.view.browser.openstreetmap"));
+ openMapsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.showExternalMap(UrlGenerator.MAP_SOURCE_OSM);
+ }
+ });
+ _browserMapMenu.add(openMapsItem);
+ JMenuItem mapquestMapsItem = new JMenuItem(I18nManager.getText("menu.view.browser.mapquest"));
+ mapquestMapsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.showExternalMap(UrlGenerator.MAP_SOURCE_MAPQUEST);
+ }
+ });
+ _browserMapMenu.add(mapquestMapsItem);
+ JMenuItem yahooMapsItem = new JMenuItem(I18nManager.getText("menu.view.browser.yahoo"));
+ yahooMapsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.showExternalMap(UrlGenerator.MAP_SOURCE_YAHOO);
+ }
+ });
+ _browserMapMenu.add(yahooMapsItem);
+ JMenuItem bingMapsItem = new JMenuItem(I18nManager.getText("menu.view.browser.bing"));
+ bingMapsItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ _app.showExternalMap(UrlGenerator.MAP_SOURCE_BING);
+ }
+ });
+ _browserMapMenu.add(bingMapsItem);
+ viewMenu.add(_browserMapMenu);
+ // Charts
+ _chartItem = makeMenuItem(FunctionLibrary.FUNCTION_CHARTS, false);
+ viewMenu.add(_chartItem);
+ // Distances
+ _distanceItem = makeMenuItem(FunctionLibrary.FUNCTION_DISTANCES, false);
+ viewMenu.add(_distanceItem);
+ // full range details
+ _fullRangeDetailsItem = makeMenuItem(FunctionLibrary.FUNCTION_FULL_RANGE_DETAILS, false);
+ viewMenu.add(_fullRangeDetailsItem);
+ menubar.add(viewMenu);