+++ /dev/null
-package tim.prune.function;
-
-import javax.swing.JOptionPane;
-
-import tim.prune.App;
-import tim.prune.GenericFunction;
-import tim.prune.I18nManager;
-import tim.prune.data.AudioClip;
-import tim.prune.undo.UndoDeleteAudio;
-
-/**
- * Function to remove the currently selected audio clip
- */
-public class RemoveAudioFunction extends GenericFunction
-{
- /**
- * Constructor
- * @param inApp App object
- */
- public RemoveAudioFunction(App inApp) {
- super(inApp);
- }
-
- /** @return name key */
- public String getNameKey() {
- return "function.removeaudio";
- }
-
- /**
- * Perform the function
- */
- public void begin()
- {
- // Delete the current audio, and optionally its point too, keeping undo information
- AudioClip currentAudio = _app.getTrackInfo().getCurrentAudio();
- if (currentAudio != null)
- {
- // Audio is selected, see if it has a point or not
- boolean deleted = false;
- UndoDeleteAudio undoAction = null;
- if (currentAudio.getDataPoint() == null)
- {
- // no point attached, so just delete
- undoAction = new UndoDeleteAudio(currentAudio, _app.getTrackInfo().getSelection().getCurrentAudioIndex(),
- null, -1);
- deleted = _app.getTrackInfo().deleteCurrentAudio(false);
- }
- else
- {
- // point is attached, so need to confirm point deletion
- final int pointIndex = _app.getTrackInfo().getTrack().getPointIndex(currentAudio.getDataPoint());
- undoAction = new UndoDeleteAudio(currentAudio, _app.getTrackInfo().getSelection().getCurrentAudioIndex(),
- currentAudio.getDataPoint(), pointIndex);
- undoAction.setAtBoundaryOfSelectedRange(pointIndex == _app.getTrackInfo().getSelection().getStart() ||
- pointIndex == _app.getTrackInfo().getSelection().getEnd());
- int response = JOptionPane.showConfirmDialog(_app.getFrame(),
- I18nManager.getText("dialog.deleteaudio.deletepoint"),
- I18nManager.getText(getNameKey()), 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) {
- deleted = _app.getTrackInfo().deleteCurrentAudio(deletePointToo);
- }
- }
- // Add undo information to stack if necessary
- if (deleted) {
- _app.completeFunction(undoAction, currentAudio.getName() + " " + I18nManager.getText("confirm.media.removed"));
- }
- }
- }
-}