--- /dev/null
+package jalview.gui;
+
+import javax.swing.JOptionPane;
+
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+
+/**
+ * GUI related routines for associating PDB files with sequences
+ * @author JimP
+ *
+ */
+public class AssociatePdbFileWithSeq
+{
+
+/**
+ * assocate the given PDB file with
+ * @param choice
+ * @param sequence
+ */
+ public PDBEntry associatePdbWithSeq(String choice, String protocol, SequenceI sequence, boolean prompt)
+ {
+ PDBEntry entry = new PDBEntry();
+ try
+ {
+ MCview.PDBfile pdbfile = new MCview.PDBfile(choice,
+ protocol);
+
+ if (pdbfile.id == null)
+ {
+ String reply = null;
+
+ if (prompt) { reply = JOptionPane
+ .showInternalInputDialog(
+ Desktop.desktop,
+ "Couldn't find a PDB id in the file supplied."
+ + "Please enter an Id to identify this structure.",
+ "No PDB Id in File", JOptionPane.QUESTION_MESSAGE);}
+ if (reply == null)
+ {
+ return null;
+ }
+
+ entry.setId(reply);
+ }
+ else
+ {
+ entry.setId(pdbfile.id);
+ }
+ } catch (java.io.IOException ex)
+ {
+ ex.printStackTrace();
+ }
+
+ entry.setFile(choice);
+ sequence.getDatasetSequence().addPDBId(entry);
+ return entry;
+ }
+
+}
jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new jalview.io.JalviewFileView());
- chooser.setDialogTitle("Select a PDB file");
- chooser.setToolTipText("Load a PDB file");
+ chooser.setDialogTitle("Select a PDB file for "+sequence.getDisplayId(false));
+ chooser.setToolTipText("Load a PDB file and associate it with sequence '"+sequence.getDisplayId(false)+"'");
int value = chooser.showOpenDialog(null);
if (value == jalview.io.JalviewFileChooser.APPROVE_OPTION)
{
- PDBEntry entry = new PDBEntry();
String choice = chooser.getSelectedFile().getPath();
jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
- try
- {
- MCview.PDBfile pdbfile = new MCview.PDBfile(choice,
- jalview.io.AppletFormatAdapter.FILE);
-
- if (pdbfile.id == null)
- {
- String reply = JOptionPane
- .showInternalInputDialog(
- Desktop.desktop,
- "Couldn't find a PDB id in the file supplied."
- + "Please enter an Id to identify this structure.",
- "No PDB Id in File", JOptionPane.QUESTION_MESSAGE);
- if (reply == null)
- {
- return;
- }
-
- entry.setId(reply);
- }
- else
- {
- entry.setId(pdbfile.id);
- }
- } catch (java.io.IOException ex)
- {
- ex.printStackTrace();
- }
-
- entry.setFile(choice);
- sequence.getDatasetSequence().addPDBId(entry);
+ new AssociatePdbFileWithSeq().associatePdbWithSeq(choice, jalview.io.AppletFormatAdapter.FILE, sequence, true);
}
}