Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 13:01:17 GMT
  2. Package jalview.gui

File AssociatePdbFileWithSeq.java

 

Coverage histogram

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

Code metrics

14
24
2
1
110
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 33 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  55 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  55 PDBEntry entry = new PDBEntry();
61  55 StructureFile pdbfile = StructureSelectionManager
62    .getStructureSelectionManager(ssmp)
63    .setMapping(false, new SequenceI[]
64    { sequence }, null, choice, file, tft, paeFilename,
65    doXferSettings);
66  55 if (pdbfile == null)
67    {
68    // stacktrace already thrown so just return
69  0 return null;
70    }
71  55 if (pdbfile.getId() == null)
72    {
73  0 String reply = null;
74   
75  0 if (prompt)
76    {
77  0 reply = JvOptionPane.showInternalInputDialog(Desktop.desktop,
78    MessageManager
79    .getString("label.couldnt_find_pdb_id_in_file"),
80    MessageManager.getString("label.no_pdb_id_in_file"),
81    JvOptionPane.QUESTION_MESSAGE);
82    }
83  0 if (reply == null)
84    {
85  0 return null;
86    }
87   
88  0 entry.setId(reply);
89    }
90    else
91    {
92  55 entry.setId(pdbfile.getId());
93    }
94  55 entry.setType(PDBEntry.Type.FILE);
95   
96  55 if (pdbfile != null)
97    {
98  55 entry.setFile(choice);
99  55 sequence.getDatasetSequence().addPDBId(entry);
100  55 entry.setStructureFile(pdbfile);
101  55 StructureSelectionManager.getStructureSelectionManager(ssmp)
102    .registerPDBEntry(entry);
103    }
104  55 if (tft != null)
105  37 entry.setProperty("TFType", tft.name());
106  55 if (paeFilename != null)
107  36 entry.setProperty("PAEFile", paeFilename);
108  55 return entry;
109    }
110    }