- _menuManager.informFileLoaded();
- }
- }
-
-
- /**
- * Connect the current photo to the current point
- */
- public void connectPhotoToPoint()
- {
- Photo photo = _trackInfo.getCurrentPhoto();
- DataPoint point = _trackInfo.getCurrentPoint();
- if (photo != null && point != null)
- {
- if (point.getPhoto() == null)
- {
- // point doesn't currently have a photo, so just connect it
- _undoStack.add(new UndoConnectPhoto(point, photo.getFile().getName()));
- photo.setDataPoint(point);
- point.setPhoto(photo);
- UpdateMessageBroker.informSubscribers(DataSubscriber.SELECTION_CHANGED);
- UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.photo.connect"));
- }
- }
- }
-
-
- /**
- * Disconnect the current photo from its point
- */
- public void disconnectPhotoFromPoint()
- {
- Photo photo = _trackInfo.getCurrentPhoto();
- if (photo != null && photo.getDataPoint() != null)
- {
- DataPoint point = photo.getDataPoint();
- _undoStack.add(new UndoDisconnectPhoto(point, photo.getFile().getName()));
- // disconnect
- photo.setDataPoint(null);
- point.setPhoto(null);
- UpdateMessageBroker.informSubscribers(DataSubscriber.SELECTION_CHANGED);
- UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.photo.disconnect"));
- }
- }
-
-
- /**
- * Remove the current photo, if any
- */
- public void deleteCurrentPhoto()
- {
- // Delete the current photo, and optionally its point too, keeping undo information
- Photo currentPhoto = _trackInfo.getCurrentPhoto();
- if (currentPhoto != null)
- {
- // Photo is selected, see if it has a point or not
- boolean photoDeleted = false;
- UndoDeletePhoto undoAction = null;
- if (currentPhoto.getDataPoint() == null)
- {
- // no point attached, so just delete photo
- undoAction = new UndoDeletePhoto(currentPhoto, _trackInfo.getSelection().getCurrentPhotoIndex(),
- null, -1);
- photoDeleted = _trackInfo.deleteCurrentPhoto(false);
- }
- else
- {
- // point is attached, so need to confirm point deletion
- undoAction = new UndoDeletePhoto(currentPhoto, _trackInfo.getSelection().getCurrentPhotoIndex(),
- currentPhoto.getDataPoint(), _trackInfo.getTrack().getPointIndex(currentPhoto.getDataPoint()));
- int response = JOptionPane.showConfirmDialog(_frame,
- I18nManager.getText("dialog.deletephoto.deletepoint"),
- I18nManager.getText("dialog.deletephoto.title"),
- JOptionPane.YES_NO_CANCEL_OPTION);
- boolean deletePointToo = (response == JOptionPane.YES_OPTION);
- // Cancel delete if cancel pressed or dialog closed
- if (response == JOptionPane.YES_OPTION || response == JOptionPane.NO_OPTION)
- {
- photoDeleted = _trackInfo.deleteCurrentPhoto(deletePointToo);
- }
- }
- // Add undo information to stack if necessary
- if (photoDeleted)
- {
- _undoStack.add(undoAction);
- }