+++ /dev/null
-package tim.prune.data;
-
-import java.util.ArrayList;
-
-/**
- * Class to hold the information about the file(s)
- * from which the data was loaded from / saved to
- */
-public class FileInfo
-{
- /** List of sources */
- private ArrayList<SourceInfo> _sources = new ArrayList<SourceInfo>();
-
-
- /**
- * Empty constructor
- */
- public FileInfo()
- {}
-
- /**
- * Private constructor for creating clone
- * @param inList list of sources
- */
- private FileInfo(ArrayList<SourceInfo> inList)
- {
- _sources = inList;
- }
-
- /**
- * Add a data source to the list
- * @param inInfo info object to add
- */
- public void addSource(SourceInfo inInfo)
- {
- _sources.add(inInfo);
- }
-
- /**
- * Replace the list of data sources with the given source
- * @param inInfo new source
- */
- public void replaceSource(SourceInfo inInfo)
- {
- _sources.clear();
- addSource(inInfo);
- }
-
- /**
- * remove the last source added
- */
- public void removeSource()
- {
- _sources.remove(_sources.size()-1);
- }
-
- /**
- * @return the number of files loaded
- */
- public int getNumFiles()
- {
- return _sources.size();
- }
-
-
- /**
- * @return The source name, if a single file
- */
- public String getFilename()
- {
- if (getNumFiles() == 1) {
- return _sources.get(0).getName();
- }
- return "";
- }
-
- /**
- * @param inIndex index number, starting from zero
- * @return source info object
- */
- public SourceInfo getSource(int inIndex)
- {
- return _sources.get(inIndex);
- }
-
- /**
- * Get the SourceInfo object (if any) for the given point
- * @param inPoint point object
- * @return SourceInfo object if there is one, otherwise null
- */
- public SourceInfo getSourceForPoint(DataPoint inPoint)
- {
- for (SourceInfo source : _sources)
- {
- if (source.getIndex(inPoint) >= 0) {
- return source;
- }
- }
- return null;
- }
-
- /**
- * @return the info about the last file loaded, if any
- */
- public SourceInfo getLastFileInfo()
- {
- if (getNumFiles() == 0)
- {
- return null;
- }
- return getSource(getNumFiles()-1);
- }
-
- /**
- * @return the most recent file title loaded, if any
- */
- public String getLastFileTitle()
- {
- final int numFiles = getNumFiles();
- if (numFiles == 0)
- {
- return null;
- }
- for (int i=(numFiles-1); i>=0; i--)
- {
- SourceInfo info = getSource(i);
- if (info != null)
- {
- String title = info.getFileTitle();
- if (title != null && !title.equals(""))
- {
- return title;
- }
- }
- }
- return null;
- }
-
- /**
- * Clone contents of file info
- */
- @SuppressWarnings("unchecked")
- public FileInfo clone()
- {
- // copy source list
- ArrayList<SourceInfo> copy = (ArrayList<SourceInfo>) _sources.clone();
- return new FileInfo(copy);
- }
-}