X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=3fce931f3c0dd412cb7505e8f102224304a1d280;hb=692669611f7244598bd34df92e8a3e5cbaf9bd2e;hp=e2eaabdffb6a9d0f388a24bca7cc169679b972d4;hpb=7e3a6674abdd31bf48e7e249a74eff50fd2ce589;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index e2eaabd..3fce931 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -1266,9 +1266,9 @@ public class StructureChooser extends GStructureChooser } else if (currentView == VIEWS_FROM_FILE) { - TFType tft = (TFType) StructureChooser.this.combo_tempFacAs - .getSelectedItem(); - String paeFilename = StructureChooser.this.localPdbPaeMatrixFileName; + StructureChooser sc = StructureChooser.this; + TFType tft = (TFType) sc.combo_tempFacAs.getSelectedItem(); + String paeFilename = sc.localPdbPaeMatrixFileName; AssociateSeqOptions assSeqOpt = (AssociateSeqOptions) fileChooserAssSeqPanel .getCmb_assSeq().getSelectedItem(); SequenceI userSelectedSeq = assSeqOpt.getSequence(); @@ -1276,37 +1276,8 @@ public class StructureChooser extends GStructureChooser selectedSequence = userSelectedSeq; String pdbFilename = selectedPdbFileName; - PDBEntry fileEntry = new AssociatePdbFileWithSeq() - .associatePdbWithSeq(pdbFilename, DataSourceType.FILE, - selectedSequence, true, Desktop.instance, tft, - paeFilename); - - /* - SequenceI[] seqArray = new SequenceI[] { selectedSequence }; - - StructureFile sf = ssm.computeMapping(true, seqArray, null, - selectedPdbFileName, DataSourceType.FILE, null, tft, - paeFilename); - StructureMapping[] sm = ssm.getMapping(fileEntry.getFile()); - // DO SOMETHING WITH - File paeFile = paeFilename == null ? null : new File(paeFilename); - if (paeFilename != null && paeFile.exists()) - { - AlignmentI al = StructureChooser.this.ap.getAlignment(); - try - { - EBIAlfaFold.importPaeJSONAsContactMatrixToSequence(al, - paeFile, selectedSequence); - } catch (IOException | ParseException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - */ - sViewer = launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, - ap, new SequenceI[] - { selectedSequence }); + StructureChooser.openStructureFileForSequence(ssm, sc, ap, + selectedSequence, true, pdbFilename, tft, paeFilename); } SwingUtilities.invokeLater(new Runnable() { @@ -1389,10 +1360,6 @@ public class StructureChooser extends GStructureChooser for (SequenceI seq : sequences) { PDBEntry pdbe = pdbEntriesToView[p++]; - Console.debug( - "##### pdbe=" + pdbe == null ? null : pdbe.toString()); - Console.debug("##### pdbe.getFile()=" + pdbe == null ? null - : pdbe.getFile()); if (pdbe != null && pdbe.getFile() != null) { StructureMapping[] smm = ssm.getMapping(pdbe.getFile()); @@ -1739,30 +1706,29 @@ public class StructureChooser extends GStructureChooser /** * Open a single structure file for a given sequence */ - public static void openStructureFileForSequence(AlignmentPanel ap, - SequenceI seq, File sFile) + public static void openStructureFileForSequence( + StructureSelectionManager ssm, StructureChooser sc, + AlignmentPanel ap, SequenceI seq, boolean prompt, + String sFilename, TFType tft, String paeFilename) { - // Open the chooser headlessly. Not sure this is actually needed ? - StructureChooser sc = new StructureChooser(new SequenceI[] { seq }, seq, - ap, false); - StructureSelectionManager ssm = ap.getStructureSelectionManager(); - PDBEntry fileEntry = null; - try - { - fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq( - sFile.getAbsolutePath(), DataSourceType.FILE, seq, true, - Desktop.instance); - } catch (Exception e) - { - Console.error("Could not open structure file '" - + sFile.getAbsolutePath() + "'"); - return; + boolean headless = false; + if (sc == null) + { + headless = true; + sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false); } + if (ssm == null) + ssm = ap.getStructureSelectionManager(); + + PDBEntry fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq( + sFilename, DataSourceType.FILE, seq, prompt, Desktop.instance, + tft, paeFilename); StructureViewer sViewer = sc.launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap, new SequenceI[] { seq }); - sc.mainFrame.dispose(); + if (headless) + sc.mainFrame.dispose(); } }