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;
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; i<dbs.length;i++)
+ {
+ if (DBRefSource.isPrimaryDb(dbs[i]))
+ {
+ database.addItem(dbs[i]);
+ // should have some kind of human readable description of each database displayed when
+ * that combo is selected.
+ }
+ }*/
database.addItem("Uniprot");
database.addItem("EMBL");
database.addItem("EMBLCDS");
frame = new JInternalFrame();
frame.setContentPane(this);
- if (System.getProperty("os.name").startsWith("Mac"))
+ if (new jalview.util.Platform().isAMac())
{
Desktop.addInternalFrame(frame, getFrameTitle(), 400, 140);
}
private void jbInit()
throws Exception
{
- this.setLayout(gridBagLayout1);
+ this.setLayout(borderLayout2);
database.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- database.setMinimumSize(new Dimension(160, 21));
- database.setPreferredSize(new Dimension(160, 21));
jLabel1.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));
+ jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setText(
"Separate multiple accession ids with semi colon \";\"");
ok.setText("OK");
{
public void actionPerformed(ActionEvent e)
{
- ok_actionPerformed(e);
+ ok_actionPerformed();
}
});
close.setText("Close");
close_actionPerformed(e);
}
});
- textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- textfield.addActionListener(new ActionListener()
+ textArea.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+ textArea.setLineWrap(true);
+ textArea.addKeyListener(new KeyAdapter()
{
- public void actionPerformed(ActionEvent e)
+ public void keyPressed(KeyEvent e)
{
- ok_actionPerformed(e);
+ if(e.getKeyCode()==KeyEvent.VK_ENTER)
+ ok_actionPerformed();
}
});
+ jPanel3.setLayout(borderLayout1);
+ borderLayout1.setVgap(5);
jPanel1.add(ok);
jPanel1.add(close);
- this.add(jLabel1, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0
- , GridBagConstraints.WEST,
- GridBagConstraints.NONE,
- new Insets(7, 4, 0, 6), 77, 6));
- this.add(jPanel1, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0
- , GridBagConstraints.WEST,
- GridBagConstraints.BOTH,
- new Insets(7, -2, 7, 12), 241, -2));
- this.add(database, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0
- , GridBagConstraints.WEST,
- GridBagConstraints.NONE,
- new Insets(0, 4, 0, 0), 1, 0));
- this.add(textfield, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0
- , GridBagConstraints.CENTER,
- GridBagConstraints.NONE,
- new Insets(0, 0, 0, 6), 211, 1));
+ jPanel3.add(jPanel2, java.awt.BorderLayout.WEST);
+ jPanel2.add(database);
+ jPanel3.add(jScrollPane1, java.awt.BorderLayout.CENTER);
+ jPanel3.add(jLabel1, java.awt.BorderLayout.NORTH);
+ this.add(jPanel1, java.awt.BorderLayout.SOUTH);
+ this.add(jPanel3, java.awt.BorderLayout.CENTER);
+ jScrollPane1.getViewport().add(textArea);
+
}
JComboBox database = new JComboBox();
JButton ok = new JButton();
JButton close = new JButton();
JPanel jPanel1 = new JPanel();
- JTextField textfield = new JTextField();
- GridBagLayout gridBagLayout1 = new GridBagLayout();
+ JTextArea textArea = new JTextArea();
+ JScrollPane jScrollPane1 = new JScrollPane();
+ JPanel jPanel2 = new JPanel();
+ JPanel jPanel3 = new JPanel();
+ BorderLayout borderLayout1 = new BorderLayout();
+ BorderLayout borderLayout2 = new BorderLayout();
public void close_actionPerformed(ActionEvent e)
{
try
{}
}
- public void ok_actionPerformed(ActionEvent e)
+ public void ok_actionPerformed()
{
database.setEnabled(false);
- textfield.setEnabled(false);
+ textArea.setEnabled(false);
ok.setEnabled(false);
close.setEnabled(false);
private void resetDialog()
{
database.setEnabled(true);
- textfield.setEnabled(true);
+ textArea.setEnabled(true);
ok.setEnabled(true);
close.setEnabled(true);
}
error += "Please select the source database\n";
}
com.stevesoft.pat.Regex empty = new com.stevesoft.pat.Regex("\\s+", "");
- textfield.setText(empty.replaceAll(textfield.getText()));
- if (textfield.getText().length() == 0)
+ textArea.setText(empty.replaceAll(textArea.getText()));
+ if (textArea.getText().length() == 0)
{
error += "Please enter a (semi-colon separated list of) database id(s)";
}
result = new StringBuffer();
if (database.getSelectedItem().equals("Uniprot"))
{
- getUniprotFile(textfield.getText());
+ getUniprotFile(textArea.getText());
}
else if (database.getSelectedItem().equals("EMBL")
|| database.getSelectedItem().equals("EMBLCDS"))
{
- String DBRefSource = database.getSelectedItem().equals("EMBLCDS")
+ String DBRefSource = database.getSelectedItem().equals("EMBLCDS")
? jalview.datamodel.DBRefSource.EMBLCDS
: jalview.datamodel.DBRefSource.EMBL;
- StringTokenizer st = new StringTokenizer(textfield.getText(), ";");
+ StringTokenizer st = new StringTokenizer(textArea.getText(), ";");
SequenceI[] seqs = null;
while(st.hasMoreTokens())
{
EBIFetchClient dbFetch = new EBIFetchClient();
-
+ String qry = database.getSelectedItem().toString().toLowerCase(
+ ) + ":" + st.nextToken();
File reply = dbFetch.fetchDataAsFile(
- database.getSelectedItem().toString().toLowerCase(
- ) + ":" + st.nextToken(),
+ qry,
"emblxml",null);
jalview.datamodel.xdb.embl.EmblFile efile=null;
if (reply != null && reply.exists())
{
- efile = jalview.datamodel.xdb.embl.EmblFile.getEmblFile(reply);
+ efile = jalview.datamodel.xdb.embl.EmblFile.getEmblFile(reply);
}
if (efile!=null) {
for (Iterator i=efile.getEntries().iterator(); i.hasNext(); ) {
}
}
} else {
- result=null;
+ result.append("# no response for "+qry);
}
}
if (seqs!=null && seqs.length>0) {
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))
{
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() );
}
}
if (result == null || result.length() == 0)
{
- showErrorMessage("Error retrieving " + textfield.getText()
+ showErrorMessage("Error retrieving " + textArea.getText()
+ " from " + database.getSelectedItem());
}
entry.getProperty().put("chains",
pdbchain.id
+ "=" + sq.getStart()
- + "-" + sq.getEnd());
+ + "-" + sq.getEnd());
sq.getDatasetSequence().addPDBId(entry);
*/
// Add PDB DB Refs
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++)
{
}
else
{
- showErrorMessage("Error retrieving " + textfield.getText()
+ showErrorMessage("Error retrieving " + textArea.getText()
+ " from " + database.getSelectedItem());
}