sequences are private in SequenceGroup
[jalview.git] / src / jalview / gui / PopupMenu.java
index 480b195..34ffd4c 100755 (executable)
@@ -143,7 +143,7 @@ public class PopupMenu extends JPopupMenu
             }\r
           }\r
 \r
-       /*   menuItem = new JMenuItem("Hide Sequences");\r
+          menuItem = new JMenuItem("Hide Sequences");\r
           menuItem.addActionListener(new java.awt.event.ActionListener()\r
               {\r
                 public void actionPerformed(ActionEvent e)\r
@@ -153,7 +153,8 @@ public class PopupMenu extends JPopupMenu
               });\r
           sequenceMenu.add(menuItem);\r
 \r
-          if(ap.av.getSelectionGroup() !=null && ap.av.getSelectionGroup().getSize()>1)\r
+          if(ap.av.getSelectionGroup() !=null\r
+             && ap.av.getSelectionGroup().getSize(false)>1)\r
           {\r
             menuItem = new JMenuItem("Represent Group with " + seq.getName());\r
             menuItem.addActionListener(new java.awt.event.ActionListener()\r
@@ -164,7 +165,46 @@ public class PopupMenu extends JPopupMenu
               }\r
             });\r
             sequenceMenu.add(menuItem);\r
-          }*/\r
+          }\r
+\r
+          if (ap.av.hasHiddenRows)\r
+          {\r
+            final int index = ap.av.alignment.findIndex(seq);\r
+\r
+            if (ap.av.adjustForHiddenSeqs(index) -\r
+                ap.av.adjustForHiddenSeqs(index - 1) > 1)\r
+            {\r
+              menuItem = new JMenuItem("Reveal");\r
+              menuItem.addActionListener(new ActionListener()\r
+              {\r
+                public void actionPerformed(ActionEvent e)\r
+                {\r
+                  ap.av.showSequence(index);\r
+                  ap.repaint();\r
+                  if (ap.overviewPanel != null)\r
+                    ap.overviewPanel.updateOverviewImage();\r
+                }\r
+              });\r
+              sequenceMenu.add(menuItem);\r
+            }\r
+\r
+            menuItem = new JMenuItem("Reveal All");\r
+            menuItem.addActionListener(new ActionListener()\r
+                {\r
+                  public void actionPerformed(ActionEvent e)\r
+                  {\r
+                    ap.av.showAllHiddenSeqs();\r
+                    ap.repaint();\r
+                    if (ap.overviewPanel != null)\r
+                      ap.overviewPanel.updateOverviewImage();\r
+                      }\r
+                });\r
+\r
+            sequenceMenu.add(menuItem);\r
+\r
+\r
+\r
+          }\r
 \r
 \r
         }\r
@@ -607,7 +647,7 @@ public class PopupMenu extends JPopupMenu
     protected void clustalColour_actionPerformed(ActionEvent e)\r
     {\r
         SequenceGroup sg = getGroup();\r
-        sg.cs = new ClustalxColourScheme(sg.sequences,\r
+        sg.cs = new ClustalxColourScheme(sg.getSequences(true),\r
                 ap.av.alignment.getWidth());\r
         refresh();\r
     }\r
@@ -713,7 +753,8 @@ public class PopupMenu extends JPopupMenu
 \r
         if (abovePIDColour.isSelected())\r
         {\r
-            sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0,\r
+            sg.cs.setConsensus(AAFrequency.calculate(\r
+                    sg.getSequences(true), 0,\r
                     ap.av.alignment.getWidth()));\r
 \r
             int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs,\r
@@ -759,7 +800,7 @@ public class PopupMenu extends JPopupMenu
     {\r
         SequenceGroup sg = getGroup();\r
         sg.cs = new PIDColourScheme();\r
-        sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0,\r
+        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0,\r
                 ap.av.alignment.getWidth()));\r
         refresh();\r
     }\r
@@ -775,7 +816,7 @@ public class PopupMenu extends JPopupMenu
 \r
         sg.cs = new Blosum62ColourScheme();\r
 \r
-        sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0,\r
+        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0,\r
                 ap.av.alignment.getWidth()));\r
 \r
         refresh();\r
@@ -806,7 +847,8 @@ public class PopupMenu extends JPopupMenu
         if (conservationMenuItem.isSelected())\r
         {\r
             Conservation c = new Conservation("Group",\r
-                    ResidueProperties.propHash, 3, sg.sequences, 0,\r
+                    ResidueProperties.propHash, 3,\r
+                    sg.getSequences(true), 0,\r
                     ap.av.alignment.getWidth());\r
 \r
             c.calculate();\r
@@ -861,9 +903,9 @@ public class PopupMenu extends JPopupMenu
         SequenceGroup sg = getGroup();\r
         StringBuffer sb = new StringBuffer();\r
 \r
-        for (int i = 0; i < sg.sequences.size(); i++)\r
+        for (int i = 0; i < sg.getSize(false); i++)\r
         {\r
-            Sequence tmp = (Sequence) sg.sequences.get(i);\r
+            Sequence tmp = (Sequence) sg.getSequences(false).elementAt(i);\r
             sb.append(tmp.getSequence(sg.getStartRes(), sg.getEndRes() + 1));\r
             sb.append("\n");\r
         }\r
@@ -1030,14 +1072,14 @@ public class PopupMenu extends JPopupMenu
     void hideSequences(boolean representGroup)\r
     {\r
       SequenceGroup sg = ap.av.getSelectionGroup();\r
-      if(sg==null || sg.getSize()<1)\r
+      if(sg==null || sg.getSize(false)<1)\r
       {\r
         ap.av.hideSequence(sequence);\r
         return;\r
       }\r
 \r
         int index = 0;\r
-        while(index < sg.sequences.size())\r
+        while(index < sg.getSize(false))\r
         {\r
           if(representGroup && sg.getSequenceAt(index)!=sequence)\r
           {\r
@@ -1071,9 +1113,10 @@ public class PopupMenu extends JPopupMenu
     if(sg==null)\r
       return;\r
 \r
-    for(int g=0; g<sg.getSize(); g++)\r
+    for(int g=0; g<sg.getSize(true); g++)\r
     {\r
-      sg.getSequenceAt(g).changeCase(true, sg.getStartRes(), sg.getEndRes()+1);\r
+    ( (SequenceI)sg.getSequences(true).elementAt(g))\r
+        .changeCase(true, sg.getStartRes(), sg.getEndRes()+1);\r
     }\r
     ap.repaint();\r
   }\r
@@ -1084,9 +1127,10 @@ public class PopupMenu extends JPopupMenu
     if(sg==null)\r
       return;\r
 \r
-    for(int g=0; g<sg.getSize(); g++)\r
+    for(int g=0; g<sg.getSize(true); g++)\r
     {\r
-      sg.getSequenceAt(g).changeCase(false, sg.getStartRes(), sg.getEndRes()+1);\r
+       ( (SequenceI)sg.getSequences(true).elementAt(g))\r
+           .changeCase(false, sg.getStartRes(), sg.getEndRes()+1);\r
     }\r
     ap.repaint();\r
   }\r
@@ -1097,9 +1141,10 @@ public class PopupMenu extends JPopupMenu
     if (sg == null)\r
       return;\r
 \r
-    for (int g = 0; g < sg.getSize(); g++)\r
+    for (int g = 0; g < sg.getSize(true); g++)\r
     {\r
-      sg.getSequenceAt(g).toggleCase(sg.getStartRes(), sg.getEndRes() + 1);\r
+      ( (SequenceI)sg.getSequences(true).elementAt(g))\r
+          .toggleCase(sg.getStartRes(), sg.getEndRes() + 1);\r
     }\r
 \r
     ap.repaint();\r