]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/function/CropToSelection.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / function / CropToSelection.java
diff --git a/src/tim/prune/function/CropToSelection.java b/src/tim/prune/function/CropToSelection.java
new file mode 100644 (file)
index 0000000..e8575af
--- /dev/null
@@ -0,0 +1,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);
+       }
+}