1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
package tim.prune.function;
import tim.prune.App;
import tim.prune.data.Track;
/**
* Class to provide the function to crop the track
* to the current selection
*/
public class CropToSelection extends DeleteBitOfTrackFunction
{
/**
* Constructor
* @param inApp application object for callback
*/
public CropToSelection(App inApp)
{
super(inApp);
}
/** Get the name key */
public String getNameKey() {
return "function.croptrack";
}
/**
* @return name key for undo operation
*/
protected String getUndoNameKey() {
return "undo.croptrack";
}
/**
* Begin the function
*/
public void begin()
{
// check track
Track track = _app.getTrackInfo().getTrack();
if (track == null || track.getNumPoints() <= 0) return;
// check selection
final int selStart = _app.getTrackInfo().getSelection().getStart();
final int selEnd = _app.getTrackInfo().getSelection().getEnd();
if (selStart < 0 || selEnd < 0 || selEnd <= selStart) return;
// check for all selected
if (selStart == 0 && selEnd == (track.getNumPoints() - 1)) return;
// Pass indexes to parent class
deleteTwoSections(0, selStart-1, selEnd+1, track.getNumPoints()-1);
}
}
|