X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=3b511a02981c0575a170e17396dbac1ce18d7b64;hb=a4833a9c3e15e416598b61e6887ee5743c3c2734;hp=6687020665eccf454053aba9f36cafb00a0ed203;hpb=7123652dcf889fca74cb7e8c52ba24e845abfc34;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index 6687020..3b511a0 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -28,13 +28,19 @@ import javax.swing.*; import MCview.*; import jalview.datamodel.*; import jalview.datamodel.xdb.embl.*; -import jalview.analysis.*; import java.io.File; import jalview.io.*; +import jalview.ws.DBRefFetcher; +import jalview.ws.EBIFetchClient; + +import java.awt.Rectangle; +import java.awt.BorderLayout; +import java.awt.Dimension; public class SequenceFetcher extends JPanel implements Runnable { + jalview.ws.SequenceFetcher sfetch; JInternalFrame frame; AlignFrame alignFrame; StringBuffer result; @@ -42,7 +48,26 @@ extends JPanel implements Runnable public SequenceFetcher(AlignFrame af) { alignFrame = af; + sfetch = new jalview.ws.SequenceFetcher(); database.addItem(noDbSelected); + /* + * Dynamically generated database list + * will need a translation function from + * internal source to externally distinct names. + * UNIPROT and UP_NAME are identical DB sources, + * and should be collapsed. + * + + String dbs[] = sfetch.getSupportedDb(); + for (int i=0; i0) { if (parseResult(new Alignment(seqs), null, null)!=null) - result.append("# Successfully parsed the "+database.getSelectedItem()+" Queries into an Alignment"); - } + { + result.append("# Successfully parsed the "+database.getSelectedItem()+" Queries into an Alignment"); + } + } } else if (database.getSelectedItem().equals("PDB")) { - StringTokenizer qset = new StringTokenizer(textfield.getText(), ";"); + StringTokenizer qset = new StringTokenizer(textArea.getText(), ";"); String query; SequenceI[] seqs = null; while (qset.hasMoreTokens() && ((query = qset.nextToken())!=null)) @@ -295,12 +321,12 @@ extends JPanel implements Runnable { result.append(new FastaFile( "http://www.sanger.ac.uk/cgi-bin/Pfam/getalignment.pl?format=fal&acc=" - + textfield.getText().toUpperCase(), "URL").print() + + textArea.getText().toUpperCase(), "URL").print() ); if(result.length()>0) { - parseResult( result.toString(), textfield.getText().toUpperCase() ); + parseResult( result.toString(), textArea.getText().toUpperCase() ); } } @@ -312,7 +338,7 @@ extends JPanel implements Runnable if (result == null || result.length() == 0) { - showErrorMessage("Error retrieving " + textfield.getText() + showErrorMessage("Error retrieving " + textArea.getText() + " from " + database.getSelectedItem()); } @@ -447,7 +473,7 @@ extends JPanel implements Runnable entry.getProperty().put("chains", pdbchain.id + "=" + sq.getStart() - + "-" + sq.getEnd()); + + "-" + sq.getEnd()); sq.getDatasetSequence().addPDBId(entry); */ // Add PDB DB Refs @@ -460,14 +486,21 @@ extends JPanel implements Runnable result.addElement(sq.deriveSequence()); } } + + if (result.size() < 1) + { + throw new Exception("WsDBFetch for PDB id resulted in zero result size"); + } } catch (Exception ex) // Problem parsing PDB file { jalview.bin.Cache.log.warn("Exception when retrieving " + - textfield.getText() + " from " + + textArea.getText() + " from " + database.getSelectedItem(), ex); return null; } + + SequenceI[] results = new SequenceI[result.size()]; for (int i = 0, j = result.size(); i < j; i++) { @@ -498,7 +531,7 @@ extends JPanel implements Runnable } else { - showErrorMessage("Error retrieving " + textfield.getText() + showErrorMessage("Error retrieving " + textArea.getText() + " from " + database.getSelectedItem()); }