2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
23 import jalview.api.StructureSelectionManagerProvider;
24 import jalview.datamodel.PDBEntry;
25 import jalview.datamodel.SequenceI;
26 import jalview.io.DataSourceType;
27 import jalview.io.StructureFile;
28 import jalview.structure.StructureImportSettings.TFType;
29 import jalview.structure.StructureSelectionManager;
30 import jalview.util.MessageManager;
33 * GUI related routines for associating PDB files with sequences
38 public class AssociatePdbFileWithSeq
42 * assocate the given PDB file with
47 public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
48 SequenceI sequence, boolean prompt,
49 StructureSelectionManagerProvider ssmp)
51 return associatePdbWithSeq(choice, file, sequence, prompt, ssmp,
52 TFType.DEFAULT, null, true);
55 public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
56 SequenceI sequence, boolean prompt,
57 StructureSelectionManagerProvider ssmp, TFType tft,
58 String paeFilename, boolean doXferSettings)
60 PDBEntry entry = new PDBEntry();
61 StructureFile pdbfile = StructureSelectionManager
62 .getStructureSelectionManager(ssmp)
63 .setMapping(false, new SequenceI[]
64 { sequence }, null, choice, file, tft, paeFilename,
68 // stacktrace already thrown so just return
71 if (pdbfile.getId() == null)
77 reply = JvOptionPane.showInternalInputDialog(Desktop.desktop,
79 .getString("label.couldnt_find_pdb_id_in_file"),
80 MessageManager.getString("label.no_pdb_id_in_file"),
81 JvOptionPane.QUESTION_MESSAGE);
92 entry.setId(pdbfile.getId());
94 entry.setType(PDBEntry.Type.FILE);
98 entry.setFile(choice);
99 sequence.getDatasetSequence().addPDBId(entry);
100 StructureSelectionManager.getStructureSelectionManager(ssmp)
101 .registerPDBEntry(entry);
102 entry.setStructureFile(pdbfile);
105 entry.setProperty("TFType", tft.name());
106 if (paeFilename != null)
107 entry.setProperty("PAEFile", paeFilename);