JAL-1270 JUnit to TestNG refactoring
[jalview.git] / src / jalview / gui / AppJmol.java
index df7f43c..c2a7299 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  */
 package jalview.gui;
 
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structures.models.AAStructureBindingModel;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -73,6 +51,29 @@ import javax.swing.event.InternalFrameEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structures.models.AAStructureBindingModel;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
 public class AppJmol extends StructureViewerBase
 {
   AppJmolBinding jmb;
@@ -147,7 +148,9 @@ public class AppJmol extends StructureViewerBase
     PDBEntry[] pdbentrys = new PDBEntry[files.length];
     for (int i = 0; i < pdbentrys.length; i++)
     {
-      PDBEntry pdbentry = new PDBEntry(files[i], ids[i]);
+      // PDBEntry pdbentry = new PDBEntry(files[i], ids[i]);
+      PDBEntry pdbentry = new PDBEntry(ids[i], null, PDBEntry.Type.PDB,
+              files[i]);
       pdbentrys[i] = pdbentry;
     }
     // / TODO: check if protocol is needed to be set, and if chains are
@@ -184,7 +187,7 @@ public class AppJmol extends StructureViewerBase
     {
       public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
       {
-        closeViewer();
+        closeViewer(false);
       }
     });
     initJmol(loadStatus); // pdbentry, seq, JBPCHECK!
@@ -406,7 +409,7 @@ public class AppJmol extends StructureViewerBase
     {
       public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
       {
-        closeViewer();
+        closeViewer(false);
       }
     });
 
@@ -602,8 +605,9 @@ public class AppJmol extends StructureViewerBase
     jmb.centerViewer(toshow);
   }
 
-  public void closeViewer()
+  public void closeViewer(boolean closeExternalViewer)
   {
+    // JMol does not use an external viewer
     jmb.closeViewer();
     setAlignmentPanel(null);
     _aps.clear();
@@ -646,9 +650,7 @@ public class AppJmol extends StructureViewerBase
           }
           try
           {
-            pdbseq = pdbclient.getSequenceRecords(pdbid = jmb.getPdbEntry(
-                    pi)
-                    .getId());
+            pdbseq = pdbclient.getSequenceRecords(pdbid);
           } catch (OutOfMemoryError oomerror)
           {
             new OOMWarning("Retrieving PDB id " + pdbid, oomerror);
@@ -665,8 +667,8 @@ public class AppJmol extends StructureViewerBase
           {
             // just transfer the file name from the first sequence's first
             // PDBEntry
-            file = new File(((PDBEntry) pdbseq.getSequenceAt(0).getPDBId()
-                    .elementAt(0)).getFile()).getAbsolutePath();
+            file = new File(pdbseq.getSequenceAt(0).getPDBId()
+                    .elementAt(0).getFile()).getAbsolutePath();
             jmb.getPdbEntry(pi).setFile(file);
 
             files.append(" \"" + Platform.escapeString(file) + "\"");
@@ -841,11 +843,7 @@ public class AppJmol extends StructureViewerBase
     jalview.gui.CutAndPasteTransfer cap = new jalview.gui.CutAndPasteTransfer();
     try
     {
-      for (int pdbe = 0; pdbe < jmb.getPdbCount(); pdbe++)
-      {
-        cap.appendText(jmb.printMapping(jmb.getPdbEntry(pdbe).getFile()));
-        cap.appendText("\n");
-      }
+      cap.appendText(jmb.printMappings());
     } catch (OutOfMemoryError e)
     {
       new OOMWarning(
@@ -1086,7 +1084,7 @@ public class AppJmol extends StructureViewerBase
       getSize(currentSize);
       g.getClipBounds(rectClip);
 
-      if (jmb.fileLoadingError != null)
+      if (jmb != null && jmb.fileLoadingError != null)
       {
         g.setColor(Color.black);
         g.fillRect(0, 0, currentSize.width, currentSize.height);
@@ -1237,4 +1235,10 @@ public class AppJmol extends StructureViewerBase
     return jmb == null ? null : jmb.viewer.getStateInfo();
   }
 
+  @Override
+  public ViewerType getViewerType()
+  {
+    return ViewerType.JMOL;
+  }
+
 }