JAL-3390 showSelectedChains pulled up to base class for Jmol/Chimera
[jalview.git] / src / jalview / gui / StructureViewerBase.java
index 47bc823..d04d1d6 100644 (file)
@@ -556,8 +556,6 @@ public abstract class StructureViewerBase extends GStructureViewer
     }
   }
 
-  abstract void showSelectedChains();
-
   /**
    * Action on selecting one of Jalview's registered colour schemes
    */
@@ -711,18 +709,36 @@ public abstract class StructureViewerBase extends GStructureViewer
             });
     viewMenu.add(seqColourBy);
 
-    showAlignmentOnly = new JCheckBoxMenuItem("Visible alignment only");
+    showAlignmentOnly = new JCheckBoxMenuItem(
+            MessageManager.getString("label.show_alignment_only"));
     showAlignmentOnly.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent e)
       {
+        hideHiddenRegions.setEnabled(showAlignmentOnly.isSelected());
         getBinding().setShowAlignmentOnly(showAlignmentOnly.isSelected());
-        getBinding().showStructures(getAlignmentPanel().getAlignViewport());
+        getBinding().showStructures(getAlignmentPanel().getAlignViewport(),
+                true);
       }
     });
     viewMenu.add(showAlignmentOnly);
 
+    hideHiddenRegions = new JCheckBoxMenuItem(
+            MessageManager.getString("label.hide_hidden_regions"));
+    hideHiddenRegions.setEnabled(false);
+    hideHiddenRegions.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        getBinding().setHideHiddenRegions(hideHiddenRegions.isSelected());
+        getBinding().showStructures(getAlignmentPanel().getAlignViewport(),
+                false);
+      }
+    });
+    viewMenu.add(hideHiddenRegions);
+
     final ItemListener handler = new ItemListener()
     {
       @Override
@@ -761,12 +777,6 @@ public abstract class StructureViewerBase extends GStructureViewer
     buildColourMenu();
   }
 
-  @Override
-  public void setJalviewColourScheme(ColourSchemeI cs)
-  {
-    getBinding().setJalviewColourScheme(cs);
-  }
-
   /**
    * Sends commands to the structure viewer to superimpose structures based on
    * currently associated alignments. May optionally return an error message for
@@ -884,7 +894,7 @@ public abstract class StructureViewerBase extends GStructureViewer
       // Set the colour using the current view for the associated alignframe
       for (AlignmentViewPanel avp : _colourwith)
       {
-        binding.colourBySequence(avp);
+        binding.updateStructureColours(avp);
       }
       seqColoursApplied = true;
     }
@@ -1057,4 +1067,21 @@ public abstract class StructureViewerBase extends GStructureViewer
     toFront();
   }
 
+  @Override
+  public abstract AAStructureBindingModel getBinding();
+
+  /**
+   * Show only the selected chain(s) in the viewer
+   */
+  protected void showSelectedChains()
+  {
+    setSelectedChains();
+  
+    /*
+     * refresh display without resizing - easier to see what changed
+     */
+    getBinding().showStructures(getAlignmentPanel().getAlignViewport(),
+            false);
+  }
+
 }