Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / gui / StructureChooser.java
index 8135019..0e834d4 100644 (file)
@@ -139,8 +139,10 @@ public class StructureChooser extends GStructureChooser
   List<SequenceI> seqsWithoutSourceDBRef = null;
 
   private boolean showChooserGUI = true;
+
   /**
-   * when true, queries to external services are supressed (no SIFTs, no PDBe, no 3D-Beacons, etc)
+   * when true, queries to external services are supressed (no SIFTs, no PDBe,
+   * no 3D-Beacons, etc)
    */
   private boolean dontQueryServices = false;
 
@@ -157,7 +159,7 @@ public class StructureChooser extends GStructureChooser
   {
     this(selectedSeqs, selectedSeq, ap, showGUI, false);
   }
-  
+
   public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
           AlignmentPanel ap, boolean showGUI, boolean dontQueryServices)
   {
@@ -255,8 +257,11 @@ public class StructureChooser extends GStructureChooser
         }
 
       }).start();
-    } else {
-      Console.debug("Structure chooser not querying services to discover metadata.");
+    }
+    else
+    {
+      Console.debug(
+              "Structure chooser not querying services to discover metadata.");
     }
   }
 
@@ -1008,10 +1013,11 @@ public class StructureChooser extends GStructureChooser
               .getFTSDataFor(getResultTable(), selectedRow,
                       discoveredStructuresSet);
       String pageUrl = row.getModelViewUrl();
-      
+
       JPopupMenu popup = new JPopupMenu("3D Beacons");
       JMenuItem viewUrl = new JMenuItem("View model web page");
-      if (pageUrl == null || "".equals(pageUrl.trim())) {
+      if (pageUrl == null || "".equals(pageUrl.trim()))
+      {
         viewUrl.setEnabled(false);
         viewUrl.setText("No model page available.");
       }
@@ -1338,10 +1344,10 @@ public class StructureChooser extends GStructureChooser
             selectedSequence = userSelectedSeq;
           }
           String pdbFilename = selectedPdbFileName;
-
+          // TODO - tidy up this ugly hack so we call launchStructureViewer too
           StructureChooser.openStructureFileForSequence(ssm, sc, ap,
-                  selectedSequence, true, pdbFilename, tft, paeFilename,
-                  true);
+                  selectedSequence, true, pdbFilename, tft, paeFilename,false,
+                  true,false,getTargetedStructureViewer(ssm).getViewerType());
         }
         SwingUtilities.invokeLater(new Runnable()
         {
@@ -1800,6 +1806,22 @@ public class StructureChooser extends GStructureChooser
             paeFilename, false, true, doXferSettings, null);
   }
 
+  /**
+   * 
+   * @param ssm
+   * @param sc
+   * @param ap
+   * @param seq
+   * @param prompt
+   * @param sFilename
+   * @param tft
+   * @param paeFilename
+   * @param forceHeadless
+   * @param showRefAnnotations
+   * @param doXferSettings
+   * @param viewerType - when not null means the viewer will be opened, providing forceHeadless/headless is not true
+   * @return
+   */
   public static StructureViewer openStructureFileForSequence(
           StructureSelectionManager ssm, StructureChooser sc,
           AlignmentPanel ap, SequenceI seq, boolean prompt,
@@ -1814,13 +1836,15 @@ public class StructureChooser extends GStructureChooser
       // headless = true;
       prompt = false;
       // suppress structure viewer's external service queries
-      sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false,true);
+      sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false,
+              true);
     }
     if (ssm == null)
     {
       ssm = ap.getStructureSelectionManager();
+      StructureSelectionManager.doConfigureStructurePrefs(ssm);
     }
-
+    
     PDBEntry fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq(
             sFilename, DataSourceType.FILE, seq, prompt, Desktop.instance,
             tft, paeFilename, doXferSettings);
@@ -1832,10 +1856,13 @@ public class StructureChooser extends GStructureChooser
       sv = sc.launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap,
               new SequenceI[]
               { seq }, viewerType);
+      // foo
+      sv.getJalviewStructureDisplay().raiseViewer();
     }
 
     sc.mainFrame.dispose();
 
+    // TODO should honor preferences - only show reference annotation that is requested - JAL-4415 JAL-3124
     if (showRefAnnotations)
     {
       showReferenceAnnotationsForSequence(ap.alignFrame, seq);