]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/data/PhotoList.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / data / PhotoList.java
diff --git a/src/tim/prune/data/PhotoList.java b/src/tim/prune/data/PhotoList.java
new file mode 100644 (file)
index 0000000..3281962
--- /dev/null
@@ -0,0 +1,99 @@
+package tim.prune.data;
+
+import java.util.ArrayList;
+
+/**
+ * Class to hold a list of Photos, using the MediaList superclass
+ */
+public class PhotoList extends MediaList
+{
+       /**
+        * Empty constructor
+        */
+       public PhotoList() {
+               this(null);
+       }
+
+       /**
+        * Constructor
+        * @param inList ArrayList containing Photo objects
+        */
+       private PhotoList(ArrayList<MediaObject> inList) {
+               super(inList);
+       }
+
+       /**
+        * @return clone of list contents
+        */
+       public PhotoList cloneList()
+       {
+               if (getNumMedia() == 0) return this;
+               ArrayList<MediaObject> listCopy = new ArrayList<MediaObject>();
+               listCopy.addAll(_media);
+               return new PhotoList(listCopy);
+       }
+
+       /**
+        * @return the number of photos in the list
+        */
+       public int getNumPhotos() {
+               return getNumMedia();
+       }
+
+       /**
+        * Add a Photo to the list
+        * @param inPhoto Photo object to add
+        */
+       public void addPhoto(Photo inPhoto) {
+               addMedia(inPhoto);
+       }
+
+       /**
+        * Add a Photo to the list
+        * @param inPhoto Photo object to add
+        * @param inIndex index at which to add photo
+        */
+       public void addPhoto(Photo inPhoto, int inIndex) {
+               addMedia(inPhoto, inIndex);
+       }
+
+       /**
+        * Remove the selected photo from the list
+        * @param inIndex index number to remove
+        */
+       public void deletePhoto(int inIndex) {
+               deleteMedia(inIndex);
+       }
+
+       /**
+        * Get the index of the given Photo
+        * @param inPhoto Photo object to check
+        * @return index of this Photo in the list, or -1 if not found
+        */
+       public int getPhotoIndex(Photo inPhoto) {
+               return getMediaIndex(inPhoto);
+       }
+
+       /**
+        * Get the Photo at the given index
+        * @param inIndex index number, starting at 0
+        * @return specified Photo object
+        */
+       public Photo getPhoto(int inIndex) {
+               return (Photo) getMedia(inIndex);
+       }
+
+       /**
+        * @return true if photo list contains correlated photos
+        */
+       public boolean hasCorrelatedPhotos() {
+               return hasCorrelatedMedia();
+       }
+
+       /**
+        * Remove all correlated photos from the list
+        */
+       public void removeCorrelatedPhotos() {
+               removeCorrelatedMedia();
+       }
+}