1 package jalview.ws.dbsources.das;
\r
3 import jalview.datamodel.AlignmentI;
\r
4 import jalview.datamodel.Alignment;
\r
5 import jalview.datamodel.DBRefEntry;
\r
6 import jalview.datamodel.Sequence;
\r
7 import jalview.datamodel.SequenceI;
\r
8 import jalview.ws.dbsources.DasSequenceSource;
\r
10 import org.biojava.dasobert.eventmodel.SequenceEvent;
\r
11 import org.biojava.dasobert.eventmodel.SequenceListener;
\r
14 * Listen for sequence fetch events from a dasobert SequenceThread started with a
\r
15 * query string and collect sequences returned from the DAS sequence source.
\r
19 public class DasSequenceSourceListener implements SequenceListener
\r
22 String ourAccession = null;
\r
23 DasSequenceSource oursource=null;
\r
26 * @param source the DAS Sequence DbProxy object containing database details for this source
\r
27 * @param query the query string sent to the das source that we should be listening for.
\r
29 public DasSequenceSourceListener(DasSequenceSource source, String query)
\r
35 public void clearSelection()
\r
37 // TODO Auto-generated method stub
\r
40 java.util.Vector seqs = null;
\r
41 public void newSequence(SequenceEvent e)
\r
43 if (!e.getAccessionCode().equals(ourAccession))
\r
45 System.err.println("Warning - received sequence event for strange accession code ("
\r
46 +e.getAccessionCode()+") - we expected "+ourAccession);
\r
52 if (e.getSequence().length()==0)
\r
54 System.err.println("Empty sequence returned for accession code ("
\r
55 +e.getAccessionCode()+") from "+oursource.getDbName());
\r
60 seqs = new java.util.Vector();
\r
62 Sequence sq = new Sequence(e.getAccessionCode(), e.getSequence());
\r
63 sq.addDBRef(new DBRefEntry(oursource.getDbSource(), oursource.getDbVersion()+":"+e.getVersion(), e.getAccessionCode()));
\r
64 seqs.addElement(sq);
\r
68 public void selectedSeqPosition(int position)
\r
70 // TODO Auto-generated method stub
\r
74 public void selectedSeqRange(int start, int end)
\r
76 // TODO Auto-generated method stub
\r
80 public void selectionLocked(boolean flag)
\r
82 // TODO Auto-generated method stub
\r
86 public void newObjectRequested(String accessionCode)
\r
88 // TODO Auto-generated method stub
\r
91 boolean noSequences=false;
\r
92 public void noObjectFound(String accessionCode)
\r
94 if (accessionCode.equals(ourAccession))
\r
100 public boolean hasNoSequences() {
\r
101 return noSequences;
\r
103 boolean called=false;
\r
104 public boolean isNotCalled()
\r
109 public AlignmentI getSequences()
\r
111 if (noSequences || seqs!=null && seqs.size()==0)
\r
113 SequenceI[] sqs = new SequenceI[seqs.size()];
\r
114 for (int i=0,iSize=seqs.size(); i<iSize;i++)
\r
116 sqs[i] = (SequenceI) seqs.elementAt(i);
\r
118 Alignment al = new Alignment(sqs);
\r
119 if (oursource.getSource().hasCapability("features"))
\r
121 java.util.Vector src = new java.util.Vector();
\r
122 src.addElement(oursource.getSource());
\r
123 new jalview.ws.DasSequenceFeatureFetcher(sqs,
\r
125 src, false, false);
\r