Clover icon

Coverage Report

  1. Project Clover database Wed Dec 3 2025 16:47:11 GMT
  2. Package jalview.gui

File AssociatePdbFileWithSeq.java

 

Coverage histogram

../../img/srcFileCovDistChart7.png
30% of files have more coverage

Code metrics

14
24
2
1
111
70
9
0.38
12
2
4.5

Classes

Class Line # Actions
AssociatePdbFileWithSeq 38 24 9
0.6565%
 

Contributing tests

This file is covered by 43 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
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.
11    *
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.
16    *
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.
20    */
21    package jalview.gui;
22   
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;
31   
32    /**
33    * GUI related routines for associating PDB files with sequences
34    *
35    * @author JimP
36    *
37    */
 
38    public class AssociatePdbFileWithSeq
39    {
40   
41    /**
42    * assocate the given PDB file with
43    *
44    * @param choice
45    * @param sequence
46    */
 
47  3 toggle public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
48    SequenceI sequence, boolean prompt,
49    StructureSelectionManagerProvider ssmp)
50    {
51  3 return associatePdbWithSeq(choice, file, sequence, prompt, ssmp,
52    TFType.DEFAULT, null, false);
53    }
54   
 
55  87 toggle public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
56    SequenceI sequence, boolean prompt,
57    StructureSelectionManagerProvider ssmp, TFType tft,
58    String paeFilename, boolean doXferSettings)
59    {
60  87 PDBEntry entry = new PDBEntry();
61   
62  87 StructureFile pdbfile = StructureSelectionManager
63    .getStructureSelectionManager(ssmp)
64    .setMapping(false, new SequenceI[]
65    { sequence }, null, choice, file, tft, paeFilename,
66    doXferSettings);
67  87 if (pdbfile == null)
68    {
69    // stacktrace already thrown so just return
70  0 return null;
71    }
72  87 if (pdbfile.getId() == null)
73    {
74  0 String reply = null;
75   
76  0 if (prompt)
77    {
78  0 reply = JvOptionPane.showInternalInputDialog(Desktop.desktop,
79    MessageManager
80    .getString("label.couldnt_find_pdb_id_in_file"),
81    MessageManager.getString("label.no_pdb_id_in_file"),
82    JvOptionPane.QUESTION_MESSAGE);
83    }
84  0 if (reply == null)
85    {
86  0 return null;
87    }
88   
89  0 entry.setId(reply);
90    }
91    else
92    {
93  87 entry.setId(pdbfile.getId());
94    }
95  87 entry.setType(PDBEntry.Type.FILE);
96   
97  87 if (pdbfile != null)
98    {
99  87 entry.setFile(choice);
100  87 sequence.getDatasetSequence().addPDBId(entry);
101  87 entry.setStructureFile(pdbfile);
102  87 StructureSelectionManager.getStructureSelectionManager(ssmp)
103    .registerPDBEntry(entry);
104    }
105  87 if (tft != null)
106  54 entry.setTempFacType(tft);
107  87 if (paeFilename != null)
108  39 entry.setPAEFile(paeFilename);
109  87 return entry;
110    }
111    }