]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/MediaList.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / data / MediaList.java
diff --git a/tim/prune/data/MediaList.java b/tim/prune/data/MediaList.java
deleted file mode 100644 (file)
index cc30325..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-package tim.prune.data;
-
-import java.util.ArrayList;
-
-/**
- * Class to hold a list of Media, either Photos or Audio files
- */
-public abstract class MediaList
-{
-       /** list of media objects */
-       protected ArrayList<MediaObject> _media = null;
-
-
-       /**
-        * Empty constructor
-        */
-       public MediaList() {
-               this(null);
-       }
-
-       /**
-        * Constructor
-        * @param inList ArrayList containing media objects
-        */
-       protected MediaList(ArrayList<MediaObject> inList)
-       {
-               _media = inList;
-               if (_media == null) {
-                       _media = new ArrayList<MediaObject>();
-               }
-       }
-
-       /**
-        * @return the number of media in the list
-        */
-       public int getNumMedia() {
-               return _media.size();
-       }
-
-       /**
-        * Add an object to the list
-        * @param inObject object to add
-        */
-       public void addMedia(MediaObject inObject)
-       {
-               if (inObject != null) {
-                       _media.add(inObject);
-               }
-       }
-
-       /**
-        * Add an object to the list at a specified index (used for undo)
-        * @param inObject object to add
-        * @param inIndex index at which to add
-        */
-       public void addMedia(MediaObject inObject, int inIndex)
-       {
-               if (inObject != null) {
-                       _media.add(inIndex, inObject);
-               }
-       }
-
-
-       /**
-        * Remove the selected media from the list
-        * @param inIndex index number to remove
-        */
-       public void deleteMedia(int inIndex)
-       {
-               // Maybe throw exception if this fails?
-               _media.remove(inIndex);
-       }
-
-
-       /**
-        * Checks if the specified object is already in the list
-        * @param inMedia media object to check
-        * @return true if it's already in the list
-        */
-       public boolean contains(MediaObject inMedia) {
-               return (getMediaIndex(inMedia) > -1);
-       }
-
-
-       /**
-        * Get the index of the given media
-        * @param inMedia object to check
-        * @return index of this object in the list, or -1 if not found
-        */
-       public int getMediaIndex(MediaObject inMedia)
-       {
-               // Check if we need to check
-               final int num = getNumMedia();
-               if (num <= 0 || inMedia == null)
-                       return -1;
-               // Loop over list
-               for (int i=0; i<num; i++)
-               {
-                       MediaObject m = _media.get(i);
-                       if (m != null && m.equals(inMedia)) {
-                               return i;
-                       }
-               }
-               // not found
-               return -1;
-       }
-
-
-       /**
-        * Get the media at the given index
-        * @param inIndex index number, starting at 0
-        * @return specified object
-        */
-       public MediaObject getMedia(int inIndex)
-       {
-               if (inIndex < 0 || inIndex >= getNumMedia()) return null;
-               return _media.get(inIndex);
-       }
-
-
-       /**
-        * Crop the list to the specified size
-        * @param inIndex previous size
-        */
-       public void cropTo(int inIndex)
-       {
-               if (inIndex <= 0)
-               {
-                       // delete whole list
-                       _media.clear();
-               }
-               else
-               {
-                       // delete to previous size
-                       while (_media.size() > inIndex) {
-                               _media.remove(_media.size()-1);
-                       }
-               }
-       }
-
-
-       /**
-        * @return array of file names
-        */
-       public String[] getNameList()
-       {
-               final int num = getNumMedia();
-               String[] names = new String[num];
-               for (int i=0; i<num; i++) {
-                       names[i] = getMedia(i).getName();
-               }
-               return names;
-       }
-
-
-       /**
-        * @return true if list contains correlated media
-        */
-       public boolean hasCorrelatedMedia()
-       {
-               for (MediaObject m : _media) {
-                       if (m.getDataPoint() != null) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * @return true if list contains uncorrelated media
-        */
-       public boolean hasUncorrelatedMedia()
-       {
-               for (MediaObject m : _media) {
-                       if (m.getDataPoint() == null && m.hasTimestamp()) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-
-       /**
-        * Remove all correlated media from the list
-        */
-       public void removeCorrelatedMedia()
-       {
-               if (getNumMedia() > 0)
-               {
-                       // Construct new list to copy into
-                       ArrayList<MediaObject> listCopy = new ArrayList<MediaObject>();
-                       // Loop over list
-                       for (MediaObject m : _media)
-                       {
-                               // Copy media if it has no point
-                               if (m != null)
-                               {
-                                       if (m.getDataPoint() == null)
-                                               listCopy.add(m);
-                                       else
-                                               m.resetCachedData();
-                               }
-                       }
-                       // Switch reference to new list
-                       _media = listCopy;
-               }
-       }
-
-       /**
-        * @return true if any of the media objects have Files
-        */
-       public boolean hasMediaWithFile()
-       {
-               for (MediaObject m: _media) {
-                       if (m.getFile() != null) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * @return true if there are any modified media in the list
-        */
-       public boolean hasModifiedMedia()
-       {
-               for (MediaObject m: _media) {
-                       if (m.isModified()) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * @return clone of list contents
-        */
-       public abstract MediaList cloneList();
-
-       /**
-        * Restore contents from other MediaList
-        * @param inOther MediaList with cloned contents
-        */
-       public void restore(MediaList inOther)
-       {
-               _media.clear();
-               if (inOther != null && inOther.getNumMedia() > 0)
-               {
-                       // Copy contents from other list
-                       _media.addAll(inOther._media);
-               }
-       }
-}