import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
-
-import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
private JMenuItem _selectStartItem = null;
private JMenuItem _selectEndItem = null;
private JMenuItem _reverseItem = null;
+ private JMenuItem _addTimeOffsetItem = null;
private JMenuItem _mergeSegmentsItem = null;
private JMenu _rearrangeMenu = null;
+ private JMenuItem _cutAndMoveItem = null;
private JMenuItem _show3dItem = null;
- private JMenuItem _showOsmMapItem = null;
private JMenu _browserMapMenu = null;
private JMenuItem _saveExifItem = null;
private JMenuItem _connectPhotoItem = null;
private ActionListener _saveAction = null;
private ActionListener _undoAction = null;
private ActionListener _editPointAction = null;
+ private ActionListener _deletePointAction = null;
+ private ActionListener _deleteRangeAction = null;
private ActionListener _selectStartAction = null;
private ActionListener _selectEndAction = null;
private ActionListener _connectPhotoAction = null;
private JButton _saveButton = null;
private JButton _undoButton = null;
private JButton _editPointButton = null;
+ private JButton _deletePointButton = null;
+ private JButton _deleteRangeButton = null;
private JButton _selectStartButton = null;
private JButton _selectEndButton = null;
private JButton _connectPhotoButton = null;
};
addPhotosMenuItem.addActionListener(_addPhotoAction);
fileMenu.add(addPhotosMenuItem);
+ // Add photos
+ JMenuItem loadFromGpsMenuItem = new JMenuItem(I18nManager.getText("menu.file.loadfromgps"));
+ loadFromGpsMenuItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ _app.beginLoadFromGps();
+ }
+ });
+ fileMenu.add(loadFromGpsMenuItem);
+ fileMenu.addSeparator();
// Save
_saveItem = new JMenuItem(I18nManager.getText("menu.file.save"), KeyEvent.VK_S);
_saveAction = new ActionListener() {
});
fileMenu.add(exitMenuItem);
menubar.add(fileMenu);
+ // Edit menu
JMenu editMenu = new JMenu(I18nManager.getText("menu.edit"));
editMenu.setMnemonic(KeyEvent.VK_E);
_undoItem = new JMenuItem(I18nManager.getText("menu.edit.undo"));
_editWaypointNameItem.setEnabled(false);
editMenu.add(_editWaypointNameItem);
_deletePointItem = new JMenuItem(I18nManager.getText("menu.edit.deletepoint"));
- _deletePointItem.addActionListener(new ActionListener() {
+ _deletePointAction = new ActionListener() {
public void actionPerformed(ActionEvent e)
{
_app.deleteCurrentPoint();
}
- });
+ };
+ _deletePointItem.addActionListener(_deletePointAction);
_deletePointItem.setEnabled(false);
editMenu.add(_deletePointItem);
_deleteRangeItem = new JMenuItem(I18nManager.getText("menu.edit.deleterange"));
- _deleteRangeItem.addActionListener(new ActionListener() {
+ _deleteRangeAction = new ActionListener() {
public void actionPerformed(ActionEvent e)
{
_app.deleteSelectedRange();
}
- });
+ };
+ _deleteRangeItem.addActionListener(_deleteRangeAction);
_deleteRangeItem.setEnabled(false);
editMenu.add(_deleteRangeItem);
_deleteDuplicatesItem = new JMenuItem(I18nManager.getText("menu.edit.deleteduplicates"));
});
_reverseItem.setEnabled(false);
editMenu.add(_reverseItem);
+ _addTimeOffsetItem = new JMenuItem(I18nManager.getText("menu.edit.addtimeoffset"));
+ _addTimeOffsetItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ _app.beginAddTimeOffset();
+ }
+ });
+ _addTimeOffsetItem.setEnabled(false);
+ editMenu.add(_addTimeOffsetItem);
_mergeSegmentsItem = new JMenuItem(I18nManager.getText("menu.edit.mergetracksegments"));
_mergeSegmentsItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
rearrangeNearestItem.setEnabled(true);
_rearrangeMenu.add(rearrangeNearestItem);
editMenu.add(_rearrangeMenu);
+ _cutAndMoveItem = new JMenuItem(I18nManager.getText("menu.edit.cutandmove"));
+ _cutAndMoveItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ _app.cutAndMoveSelection();
+ }
+ });
+ _cutAndMoveItem.setEnabled(false);
+ editMenu.add(_cutAndMoveItem);
menubar.add(editMenu);
// Select menu
});
_show3dItem.setEnabled(false);
viewMenu.add(_show3dItem);
- // Show OSM map
- _showOsmMapItem = new JMenuItem(I18nManager.getText("menu.view.showmap"));
- _showOsmMapItem.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- _app.showOsmMap();
- }
- });
- _showOsmMapItem.setEnabled(false);
- viewMenu.add(_showOsmMapItem);
// browser submenu
_browserMapMenu = new JMenu(I18nManager.getText("menu.view.browser"));
_browserMapMenu.setEnabled(false);
}
});
helpMenu.add(aboutItem);
+ JMenuItem checkVersionItem = new JMenuItem(I18nManager.getText("menu.help.checkversion"));
+ checkVersionItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ CheckVersionScreen.show(_parent);
+ }
+ });
+ helpMenu.add(checkVersionItem);
menubar.add(helpMenu);
return menubar;
{
JToolBar toolbar = new JToolBar();
// Add text file
- JButton openFileButton = new JButton(new ImageIcon(getClass().getResource("images/add_textfile_icon.png")));
+ JButton openFileButton = new JButton(IconManager.getImageIcon(IconManager.OPEN_FILE));
openFileButton.setToolTipText(I18nManager.getText("menu.file.open"));
openFileButton.addActionListener(_openFileAction);
toolbar.add(openFileButton);
// Add photo
- JButton addPhotoButton = new JButton(new ImageIcon(getClass().getResource("images/add_photo_icon.png")));
+ JButton addPhotoButton = new JButton(IconManager.getImageIcon(IconManager.ADD_PHOTO));
addPhotoButton.setToolTipText(I18nManager.getText("menu.file.addphotos"));
addPhotoButton.addActionListener(_addPhotoAction);
toolbar.add(addPhotoButton);
// Save
- _saveButton = new JButton(new ImageIcon(getClass().getResource("images/save_icon.gif")));
+ _saveButton = new JButton(IconManager.getImageIcon(IconManager.SAVE_FILE));
_saveButton.setToolTipText(I18nManager.getText("menu.file.save"));
_saveButton.addActionListener(_saveAction);
_saveButton.setEnabled(false);
toolbar.add(_saveButton);
// Undo
- _undoButton = new JButton(new ImageIcon(getClass().getResource("images/undo_icon.gif")));
+ _undoButton = new JButton(IconManager.getImageIcon(IconManager.UNDO));
_undoButton.setToolTipText(I18nManager.getText("menu.edit.undo"));
_undoButton.addActionListener(_undoAction);
_undoButton.setEnabled(false);
toolbar.add(_undoButton);
// Edit point
- _editPointButton = new JButton(new ImageIcon(getClass().getResource("images/edit_point_icon.gif")));
+ _editPointButton = new JButton(IconManager.getImageIcon(IconManager.EDIT_POINT));
_editPointButton.setToolTipText(I18nManager.getText("menu.edit.editpoint"));
_editPointButton.addActionListener(_editPointAction);
_editPointButton.setEnabled(false);
toolbar.add(_editPointButton);
+ // Delete point
+ _deletePointButton = new JButton(IconManager.getImageIcon(IconManager.DELETE_POINT));
+ _deletePointButton.setToolTipText(I18nManager.getText("menu.edit.deletepoint"));
+ _deletePointButton.addActionListener(_deletePointAction);
+ _deletePointButton.setEnabled(false);
+ toolbar.add(_deletePointButton);
+ // Delete range
+ _deleteRangeButton = new JButton(IconManager.getImageIcon(IconManager.DELETE_RANGE));
+ _deleteRangeButton.setToolTipText(I18nManager.getText("menu.edit.deleterange"));
+ _deleteRangeButton.addActionListener(_deleteRangeAction);
+ _deleteRangeButton.setEnabled(false);
+ toolbar.add(_deleteRangeButton);
// Select start, end
- _selectStartButton = new JButton(new ImageIcon(getClass().getResource("images/set_start_icon.png")));
+ _selectStartButton = new JButton(IconManager.getImageIcon(IconManager.SET_RANGE_START));
_selectStartButton.setToolTipText(I18nManager.getText("menu.select.start"));
_selectStartButton.addActionListener(_selectStartAction);
_selectStartButton.setEnabled(false);
toolbar.add(_selectStartButton);
- _selectEndButton = new JButton(new ImageIcon(getClass().getResource("images/set_end_icon.png")));
+ _selectEndButton = new JButton(IconManager.getImageIcon(IconManager.SET_RANGE_END));
_selectEndButton.setToolTipText(I18nManager.getText("menu.select.end"));
_selectEndButton.addActionListener(_selectEndAction);
_selectEndButton.setEnabled(false);
toolbar.add(_selectEndButton);
- _connectPhotoButton = new JButton(new ImageIcon(getClass().getResource("images/connect_photo_icon.png")));
+ _connectPhotoButton = new JButton(IconManager.getImageIcon(IconManager.CONNECT_PHOTO));
_connectPhotoButton.setToolTipText(I18nManager.getText("menu.photo.connect"));
_connectPhotoButton.addActionListener(_connectPhotoAction);
_connectPhotoButton.setEnabled(false);
_selectNoneItem.setEnabled(hasData);
if (_show3dItem != null)
_show3dItem.setEnabled(hasData);
- _showOsmMapItem.setEnabled(hasData);
_browserMapMenu.setEnabled(hasData);
// is undo available?
boolean hasUndo = !_app.getUndoStack().isEmpty();
_editPointButton.setEnabled(hasPoint);
_editWaypointNameItem.setEnabled(hasPoint);
_deletePointItem.setEnabled(hasPoint);
+ _deletePointButton.setEnabled(hasPoint);
_selectStartItem.setEnabled(hasPoint);
_selectStartButton.setEnabled(hasPoint);
_selectEndItem.setEnabled(hasPoint);
_saveExifItem.setEnabled(anyPhotos);
// is there a current photo?
boolean hasPhoto = anyPhotos && _selection.getCurrentPhotoIndex() >= 0;
- // connect is only available when current photo is not connected to current point
- boolean connectAvailable = hasPhoto && hasPoint
- && _track.getPoint(_selection.getCurrentPointIndex()).getPhoto() == null;
+ // connect is available if photo and point selected, and photo has no point
+ boolean connectAvailable = hasPhoto && hasPoint && _photos.getPhoto(_selection.getCurrentPhotoIndex()) != null
+ && _photos.getPhoto(_selection.getCurrentPhotoIndex()).getDataPoint() == null;
_connectPhotoItem.setEnabled(connectAvailable);
_connectPhotoButton.setEnabled(connectAvailable);
_disconnectPhotoItem.setEnabled(hasPhoto && _photos.getPhoto(_selection.getCurrentPhotoIndex()) != null
// is there a current range?
boolean hasRange = (hasData && _selection.hasRangeSelected());
_deleteRangeItem.setEnabled(hasRange);
+ _deleteRangeButton.setEnabled(hasRange);
_interpolateItem.setEnabled(hasRange
&& (_selection.getEnd() - _selection.getStart()) == 1);
_mergeSegmentsItem.setEnabled(hasRange);
_reverseItem.setEnabled(hasRange);
+ _addTimeOffsetItem.setEnabled(hasRange);
+ // Is the currently selected point outside the current range?
+ _cutAndMoveItem.setEnabled(hasRange && hasPoint &&
+ (_selection.getCurrentPointIndex() < _selection.getStart()
+ || _selection.getCurrentPointIndex() > (_selection.getEnd()+1)));
}