Merge branch 'develop' into feature/JAL-3390hideUnmappedStructure
[jalview.git] / src / jalview / jbgui / GStructureViewer.java
index 4e13032..485d755 100644 (file)
@@ -24,7 +24,10 @@ import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
 
+import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JInternalFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
@@ -56,6 +59,10 @@ public abstract class GStructureViewer extends JInternalFrame
 
   protected JMenuItem alignStructs;
 
+  protected JCheckBoxMenuItem showAlignmentOnly;
+
+  protected JCheckBoxMenuItem hideHiddenRegions;
+
   protected JMenuItem fitToWindow;
 
   protected JRadioButtonMenuItem seqColour;
@@ -159,7 +166,7 @@ public abstract class GStructureViewer extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        fitToWindow_actionPerformed();
+        getBinding().focusView();
       }
     });
 
@@ -266,4 +273,27 @@ public abstract class GStructureViewer extends JInternalFrame
   {
 
   }
+
+  /**
+   * Saves the unselected entries in the 'View Chain' menu into a list. Entries
+   * are formatted as "pdbid:chainid". Unselected chains should be hidden in the
+   * structure display.
+   */
+  protected void setChainsToHide()
+  {
+    List<String> chains = new ArrayList<>();
+    for (int i = 0; i < chainMenu.getItemCount(); i++)
+    {
+      JMenuItem menuItem = chainMenu.getItem(i);
+      if (menuItem instanceof JCheckBoxMenuItem)
+      {
+        JCheckBoxMenuItem item = (JCheckBoxMenuItem) menuItem;
+        if (!item.isSelected())
+        {
+          chains.add(item.getText().split(" ")[0]);
+        }
+      }
+    }
+    getBinding().setChainsToHide(chains);
+  }
 }