]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/undo/UndoDeleteRange.java
Version 4, January 2008
[GpsPrune.git] / tim / prune / undo / UndoDeleteRange.java
index 6bb0b7df08aebc795a9ded8de37871051f71940f..04592aef43de183e7a2908eacf1ec17e9e2f552c 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,17 +12,18 @@ public class UndoDeleteRange implements UndoOperation
 {\r
        private int _startIndex = -1;\r
        private DataPoint[] _points = null;\r
+       private PhotoList _photoList = null;\r
 \r
 \r
        /**\r
         * Constructor\r
-        * @param inIndex index number of point within track\r
-        * @param inPoint data point\r
+        * @param inTrackInfo track info object\r
         */\r
        public UndoDeleteRange(TrackInfo inTrackInfo)\r
        {\r
                _startIndex = inTrackInfo.getSelection().getStart();\r
                _points = inTrackInfo.cloneSelectedRange();\r
+               _photoList = inTrackInfo.getPhotoList().cloneList();\r
        }\r
 \r
 \r
@@ -41,6 +43,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