]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/undo/UndoDeleteRange.java
Version 16, February 2014
[GpsPrune.git] / tim / prune / undo / UndoDeleteRange.java
index 58f09e9c267afd867c104fa316fc058878367b89..da42bc411c892c11814a8daedf135e8f3864aad5 100644 (file)
@@ -9,7 +9,7 @@ import tim.prune.data.TrackInfo;
 /**\r
  * Operation to undo a delete of a range of points\r
  */\r
-public class UndoDeleteRange implements UndoOperation\r
+public class UndoDeleteRange extends UndoDeleteOperation\r
 {\r
        /**\r
         * Inner class to hold a single range information set\r
@@ -40,6 +40,14 @@ public class UndoDeleteRange implements UndoOperation
                {\r
                        return _startIndex >= 0 && _points != null && _points.length > 0;\r
                }\r
+\r
+               /**\r
+                * @return end index of range\r
+                */\r
+               public int getEndIndex()\r
+               {\r
+                       return _startIndex + _points.length - 1;\r
+               }\r
        }\r
 \r
 \r
@@ -141,6 +149,13 @@ public class UndoDeleteRange implements UndoOperation
                // Undo both the ranges\r
                performUndo(inTrackInfo, _rangeInfo1);\r
                performUndo(inTrackInfo, _rangeInfo2);\r
+               // If there's a current point/range selected, maybe need to adjust start and/or end\r
+               if (_rangeInfo1 != null && _rangeInfo1.isValid()) {\r
+                       modifySelection(inTrackInfo, _rangeInfo1._startIndex, _rangeInfo1.getEndIndex());\r
+               }\r
+               if (_rangeInfo2 != null && _rangeInfo2.isValid()) {\r
+                       modifySelection(inTrackInfo, _rangeInfo2._startIndex, _rangeInfo2.getEndIndex());\r
+               }\r
        }\r
 \r
        /**\r