JAL-2944 pull up structure viewer discovery routine to Desktop
[jalview.git] / src / jalview / gui / AppJmol.java
index 5d23f49..af25653 100644 (file)
@@ -89,8 +89,8 @@ public class AppJmol extends StructureViewerBase
    */
   public AppJmol(String[] files, String[] ids, SequenceI[][] seqs,
           AlignmentPanel ap, boolean usetoColour, boolean useToAlign,
-          boolean leaveColouringToJmol, String loadStatus,
-          Rectangle bounds, String viewid)
+          boolean leaveColouringToJmol, String loadStatus, Rectangle bounds,
+          String viewid)
   {
     PDBEntry[] pdbentrys = new PDBEntry[files.length];
     for (int i = 0; i < pdbentrys.length; i++)
@@ -133,7 +133,8 @@ public class AppJmol extends StructureViewerBase
     this.addInternalFrameListener(new InternalFrameAdapter()
     {
       @Override
-      public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
+      public void internalFrameClosing(
+              InternalFrameEvent internalFrameEvent)
       {
         closeViewer(false);
       }
@@ -156,6 +157,11 @@ public class AppJmol extends StructureViewerBase
 
   IProgressIndicator progressBar = null;
 
+  @Override
+  protected IProgressIndicator getIProgressIndicator()
+  {
+    return progressBar;
+  }
   /**
    * add a single PDB structure to a new or existing Jmol view
    * 
@@ -218,7 +224,8 @@ public class AppJmol extends StructureViewerBase
     this.addInternalFrameListener(new InternalFrameAdapter()
     {
       @Override
-      public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
+      public void internalFrameClosing(
+              InternalFrameEvent internalFrameEvent)
       {
         closeViewer(false);
       }
@@ -239,29 +246,6 @@ public class AppJmol extends StructureViewerBase
     openNewJmol(ap, pe, seqs);
   }
 
-  /**
-   * Returns a list of any Jmol viewers. The list is restricted to those linked
-   * to the given alignment panel if it is not null.
-   */
-  @Override
-  protected List<StructureViewerBase> getViewersFor(AlignmentPanel apanel)
-  {
-    List<StructureViewerBase> result = new ArrayList<StructureViewerBase>();
-    JInternalFrame[] frames = Desktop.instance.getAllFrames();
-
-    for (JInternalFrame frame : frames)
-    {
-      if (frame instanceof AppJmol)
-      {
-        if (apanel == null
-                || ((StructureViewerBase) frame).isLinkedWith(apanel))
-        {
-          result.add((StructureViewerBase) frame);
-        }
-      }
-    }
-    return result;
-  }
 
   void initJmol(String command)
   {
@@ -281,8 +265,8 @@ public class AppJmol extends StructureViewerBase
       scriptWindow.setVisible(false);
     }
 
-    jmb.allocateViewer(renderPanel, true, "", null, null, "",
-            scriptWindow, null);
+    jmb.allocateViewer(renderPanel, true, "", null, null, "", scriptWindow,
+            null);
     // jmb.newJmolPopup("Jmol");
     if (command == null)
     {
@@ -293,14 +277,12 @@ public class AppJmol extends StructureViewerBase
     jmb.setFinishedInit(true);
   }
 
-
-
   boolean allChainsSelected = false;
 
   @Override
   void showSelectedChains()
   {
-    Vector<String> toshow = new Vector<String>();
+    Vector<String> toshow = new Vector<>();
     for (int i = 0; i < chainMenu.getItemCount(); i++)
     {
       if (chainMenu.getItem(i) instanceof JCheckBoxMenuItem)
@@ -410,8 +392,8 @@ public class AppJmol extends StructureViewerBase
     int waitFor = 35;
     int waitTotal = 0;
     while (addingStructures ? lastnotify >= jmb.getLoadNotifiesHandled()
-            : !(jmb.isFinishedInit() && jmb.getPdbFile() != null && jmb
-                    .getPdbFile().length == files.size()))
+            : !(jmb.isFinishedInit() && jmb.getStructureFiles() != null
+                    && jmb.getStructureFiles().length == files.size()))
     {
       try
       {
@@ -423,13 +405,12 @@ public class AppJmol extends StructureViewerBase
       }
       if (waitTotal > waitMax)
       {
-        System.err
-                .println("Timed out waiting for Jmol to load files after "
-                        + waitTotal + "ms");
-//        System.err.println("finished: " + jmb.isFinishedInit()
-//                + "; loaded: " + Arrays.toString(jmb.getPdbFile())
-//                + "; files: " + files.toString());
-        jmb.getPdbFile();
+        System.err.println("Timed out waiting for Jmol to load files after "
+                + waitTotal + "ms");
+        // System.err.println("finished: " + jmb.isFinishedInit()
+        // + "; loaded: " + Arrays.toString(jmb.getPdbFile())
+        // + "; files: " + files.toString());
+        jmb.getStructureFiles();
         break;
       }
     }
@@ -490,11 +471,11 @@ public class AppJmol extends StructureViewerBase
     // todo - record which pdbids were successfully imported.
     StringBuilder errormsgs = new StringBuilder();
 
-    List<String> files = new ArrayList<String>();
+    List<String> files = new ArrayList<>();
     String pdbid = "";
     try
     {
-      String[] filesInViewer = jmb.getPdbFile();
+      String[] filesInViewer = jmb.getStructureFiles();
       // TODO: replace with reference fetching/transfer code (validate PDBentry
       // as a DBRef?)
       Pdb pdbclient = new Pdb();
@@ -509,8 +490,9 @@ public class AppJmol extends StructureViewerBase
           long hdl = pdbid.hashCode() - System.currentTimeMillis();
           if (progressBar != null)
           {
-            progressBar.setProgressBar(MessageManager.formatMessage(
-                    "status.fetching_pdb", new String[] { pdbid }), hdl);
+            progressBar.setProgressBar(MessageManager
+                    .formatMessage("status.fetching_pdb", new String[]
+                    { pdbid }), hdl);
           }
           try
           {
@@ -576,9 +558,10 @@ public class AppJmol extends StructureViewerBase
     }
     if (errormsgs.length() > 0)
     {
-      JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
-              .formatMessage("label.pdb_entries_couldnt_be_retrieved",
-                      new String[] { errormsgs.toString() }),
+      JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+              MessageManager.formatMessage(
+                      "label.pdb_entries_couldnt_be_retrieved", new String[]
+                      { errormsgs.toString() }),
               MessageManager.getString("label.couldnt_load_file"),
               JvOptionPane.ERROR_MESSAGE);
     }
@@ -706,8 +689,8 @@ public class AppJmol extends StructureViewerBase
           if (e == jmb.getPdbCount() - 1 || sb.length() > 20)
           {
             lines++;
-            g.drawString(sb.toString(), 20, currentSize.height / 2 - lines
-                    * g.getFontMetrics().getHeight());
+            g.drawString(sb.toString(), 20, currentSize.height / 2
+                    - lines * g.getFontMetrics().getHeight());
           }
         }
       }