]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/undo/UndoDeleteRange.java
Version 3, August 2007
[GpsPrune.git] / tim / prune / undo / UndoDeleteRange.java
index 6bb0b7df08aebc795a9ded8de37871051f71940f..4e526cd8193d99b5c73154d3326ff2c2a0f6b904 100644 (file)
@@ -2,6 +2,7 @@ package tim.prune.undo;
 \r
 import tim.prune.I18nManager;\r
 import tim.prune.data.DataPoint;\r
+import tim.prune.data.PhotoList;\r
 import tim.prune.data.TrackInfo;\r
 \r
 /**\r
@@ -11,6 +12,7 @@ public class UndoDeleteRange implements UndoOperation
 {\r
        private int _startIndex = -1;\r
        private DataPoint[] _points = null;\r
+       private PhotoList _photoList = null;\r
 \r
 \r
        /**\r
@@ -22,6 +24,7 @@ public class UndoDeleteRange implements UndoOperation
        {\r
                _startIndex = inTrackInfo.getSelection().getStart();\r
                _points = inTrackInfo.cloneSelectedRange();\r
+               _photoList = inTrackInfo.getPhotoList().cloneList();\r
        }\r
 \r
 \r
@@ -41,6 +44,17 @@ public class UndoDeleteRange implements UndoOperation
         */\r
        public void performUndo(TrackInfo inTrackInfo)\r
        {\r
+               // restore photos to how they were before\r
+               inTrackInfo.getPhotoList().restore(_photoList);\r
+               // reconnect photos to points\r
+               for (int i=0; i<_points.length; i++)\r
+               {\r
+                       DataPoint point = _points[i];\r
+                       if (point != null && point.getPhoto() != null)\r
+                       {\r
+                               point.getPhoto().setDataPoint(point);\r
+                       }\r
+               }\r
                // restore point array into track\r
                inTrackInfo.getTrack().insertRange(_points, _startIndex);\r
        }\r