JAL-3407 redact Java 8 incompatible '<>' with anonymous inner classes
[jalview.git] / src / jalview / gui / StructureViewer.java
index 19e0a22..360ddf2 100644 (file)
@@ -56,7 +56,7 @@ public class StructureViewer
 
   public enum ViewerType
   {
-    JMOL, CHIMERA
+    JMOL, CHIMERA, CHIMERAX, PYMOL
   };
 
   /**
@@ -165,6 +165,15 @@ public class StructureViewer
       sview = new ChimeraViewFrame(pdbsForFile, superposeAdded, theSeqs,
               ap);
     }
+    else if (viewerType.equals(ViewerType.CHIMERAX))
+    {
+      sview = new ChimeraXViewFrame(pdbsForFile, superposeAdded, theSeqs,
+              ap);
+    }
+    else if (viewerType.equals(ViewerType.PYMOL))
+    {
+      sview = new PymolViewer(pdbsForFile, superposeAdded, theSeqs, ap);
+    }
     else
     {
       Cache.log.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());
@@ -287,11 +296,13 @@ public class StructureViewer
     if (sview != null)
     {
       sview.setAlignAddedStructures(superposeAdded);
-      if (!sview.addAlreadyLoadedFile(seqsForPdb, null, ap, pdb.getId()))
+      String pdbId = pdb.getId();
+      if (!sview.addAlreadyLoadedFile(seqsForPdb, null, ap, pdbId))
       {
-        sview.addToExistingViewer(pdb, seqsForPdb, null, ap, pdb.getId());
+        sview.addToExistingViewer(pdb, seqsForPdb, null, ap, pdbId);
       }
       sview.updateTitleAndMenus();
+      sview.raiseViewer();
       return sview;
     }
     ViewerType viewerType = getViewerType();
@@ -303,6 +314,14 @@ public class StructureViewer
     {
       sview = new ChimeraViewFrame(pdb, seqsForPdb, null, ap);
     }
+    else if (viewerType.equals(ViewerType.CHIMERAX))
+    {
+      sview = new ChimeraXViewFrame(pdb, seqsForPdb, null, ap);
+    }
+    else if (viewerType.equals(ViewerType.PYMOL))
+    {
+      sview = new PymolViewer(pdb, seqsForPdb, null, ap);
+    }
     else
     {
       Cache.log.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());