JAL-3390 Chimera showStructures() respects visible/chain selections
[jalview.git] / src / jalview / gui / ChimeraViewFrame.java
index d07a7c2..1a5ed5e 100644 (file)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.api.AlignmentViewPanel;
 import jalview.api.FeatureRenderer;
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
@@ -49,7 +50,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Random;
 
-import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JInternalFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
@@ -362,19 +362,12 @@ public class ChimeraViewFrame extends StructureViewerBase
   @Override
   void showSelectedChains()
   {
-    List<String> toshow = new ArrayList<>();
-    for (int i = 0; i < chainMenu.getItemCount(); i++)
-    {
-      if (chainMenu.getItem(i) instanceof JCheckBoxMenuItem)
-      {
-        JCheckBoxMenuItem item = (JCheckBoxMenuItem) chainMenu.getItem(i);
-        if (item.isSelected())
-        {
-          toshow.add(item.getText());
-        }
-      }
-    }
-    jmb.showChains(toshow);
+    setSelectedChains();
+
+    /*
+     * refresh display without resizing - easier to see what changed
+     */
+    jmb.showStructures(getAlignmentPanel().getAlignViewport(), false);
   }
 
   /**
@@ -480,7 +473,7 @@ public class ChimeraViewFrame extends StructureViewerBase
         {
           filePDB.add(thePdbEntry);
           filePDBpos.add(Integer.valueOf(pi));
-          files.append(" \"" + Platform.escapeString(file) + "\"");
+          files.append(" \"" + Platform.escapeBackslashes(file) + "\"");
         }
       }
     } catch (OutOfMemoryError oomerror)
@@ -584,9 +577,9 @@ public class ChimeraViewFrame extends StructureViewerBase
       }
 
       // refresh the sequence colours for the new structure(s)
-      for (AlignmentPanel ap : _colourwith)
+      for (AlignmentViewPanel avp : _colourwith)
       {
-        jmb.updateColours(ap);
+        jmb.updateColours(avp);
       }
       // do superposition if asked to
       if (alignAddedStructures)
@@ -834,10 +827,8 @@ public class ChimeraViewFrame extends StructureViewerBase
   protected String alignStructs_withAllAlignPanels()
   {
     String reply = super.alignStructs_withAllAlignPanels();
-    if (reply != null)
-    {
-      statusBar.setText("Superposition failed: " + reply);
-    }
+    statusBar.setText(
+            reply == null ? " " : "Superposition failed: " + reply);
     return reply;
   }