]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/undo/UndoDisconnectPhoto.java
Version 5, May 2008
[GpsPrune.git] / tim / prune / undo / UndoDisconnectPhoto.java
1 package tim.prune.undo;\r
2 \r
3 import tim.prune.I18nManager;\r
4 import tim.prune.UpdateMessageBroker;\r
5 import tim.prune.data.DataPoint;\r
6 import tim.prune.data.Photo;\r
7 import tim.prune.data.TrackInfo;\r
8 \r
9 /**\r
10  * Operation to undo the disconnection of a photo from a point\r
11  */\r
12 public class UndoDisconnectPhoto implements UndoOperation\r
13 {\r
14         private DataPoint _point = null;\r
15         private Photo _photo = null;\r
16         private String _filename = null;\r
17 \r
18 \r
19         /**\r
20          * Constructor\r
21          * @param inPoint data point\r
22          * @param inFilename filename of photo\r
23          */\r
24         public UndoDisconnectPhoto(DataPoint inPoint, String inFilename)\r
25         {\r
26                 _point = inPoint;\r
27                 _photo = inPoint.getPhoto();\r
28                 _filename = inFilename;\r
29         }\r
30 \r
31 \r
32         /**\r
33          * @return description of operation including photo filename\r
34          */\r
35         public String getDescription()\r
36         {\r
37                 String desc = I18nManager.getText("undo.disconnectphoto") + " " + _filename;\r
38                 return desc;\r
39         }\r
40 \r
41 \r
42         /**\r
43          * Perform the undo operation on the given Track\r
44          * @param inTrackInfo TrackInfo object on which to perform the operation\r
45          */\r
46         public void performUndo(TrackInfo inTrackInfo) throws UndoException\r
47         {\r
48                 // Connect again\r
49                 if (_point != null && _photo != null)\r
50                 {\r
51                         _point.setPhoto(_photo);\r
52                         _photo.setDataPoint(_point);\r
53                         // inform subscribers\r
54                         UpdateMessageBroker.informSubscribers();\r
55                 }\r
56                 else\r
57                 {\r
58                         // throw exception if failed\r
59                         throw new UndoException(getDescription());\r
60                 }\r
61         }\r
62 }