1 package fr.orsay.lri.varna.applications.fragseq;
3 import java.awt.datatransfer.DataFlavor;
5 import java.io.FileNotFoundException;
6 import java.util.ArrayList;
7 import java.util.Collection;
9 import java.util.Random;
10 import java.util.regex.Pattern;
12 import javax.swing.tree.DefaultMutableTreeNode;
14 import fr.orsay.lri.varna.exceptions.ExceptionExportFailed;
15 import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
16 import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
17 import fr.orsay.lri.varna.exceptions.ExceptionPermissionDenied;
18 import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
19 import fr.orsay.lri.varna.factories.RNAFactory;
20 import fr.orsay.lri.varna.models.rna.RNA;
22 public class FragSeqFileModel implements Comparable<FragSeqFileModel> {
23 private ArrayList<FragSeqModel> _models = new ArrayList<FragSeqModel>();
24 protected Date _lastModified;
25 protected boolean _outOfSync = false;
26 protected String _caption = "";
27 protected String _path = "";
28 protected String _folder = "";
29 protected boolean _cached = false;
32 public static Date lastModif(String path)
34 return new Date(new File(path).lastModified()) ;
37 public FragSeqFileModel(String folder, String path)
39 this(folder,path,lastModif(path));
43 private static Random _rnd = new Random();
45 public FragSeqFileModel(String folder, String path,Date lastModified)
47 _lastModified = lastModified;
51 String[] s = path.split(Pattern.quote(File.separator));
53 _caption = s[s.length-1];
58 ArrayList<RNA> rnas = null;
63 this.addModel(new FragSeqRNASecStrModel(r));
64 int nb =_rnd.nextInt(5);
67 FragSeqAnnotationDataModel data = new FragSeqAnnotationDataModel(r.getID(),""+i+"-"+r.getID());
68 FragSeqAnnotationDataModel.addRandomAnnotations(r,data);
72 } catch (ExceptionUnmatchedClosingParentheses e) {
73 // TODO Auto-generated catch block
75 } catch (FileNotFoundException e) {
76 // TODO Auto-generated catch block
78 } catch (ExceptionFileFormatOrSyntax e) {
79 // TODO Auto-generated catch block
81 } catch (ExceptionExportFailed e) {
82 // TODO Auto-generated catch block
84 } catch (ExceptionPermissionDenied e) {
85 // TODO Auto-generated catch block
87 } catch (ExceptionLoadingFailed e) {
88 // TODO Auto-generated catch block
94 public boolean hasChanged()
99 public boolean checkForModifications()
101 if (!lastModif(_path).equals(_lastModified) && !_outOfSync)
110 public String toString()
112 return _caption + (this._outOfSync?"*":"");
116 public String getCaption()
121 public String getFolder()
126 public String getPath()
132 public int compareTo(FragSeqFileModel o) {
133 return _caption.compareTo(o._caption);
136 public ArrayList<FragSeqModel> getModels()
142 public void addModel(FragSeqModel f)
148 private ArrayList<RNA> createRNAs() throws ExceptionUnmatchedClosingParentheses, ExceptionFileFormatOrSyntax, FileNotFoundException, ExceptionExportFailed, ExceptionPermissionDenied, ExceptionLoadingFailed
150 Collection<RNA> r = RNAFactory.loadSecStr(_path);
155 return new ArrayList<RNA>(r);