Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / gui / SeqPanel.java
index bc9adfe..675325a 100755 (executable)
@@ -366,7 +366,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         SequenceGroup sg = av.selectionGroup;\r
         //Find the top and bottom of this group\r
         int min = av.alignment.getHeight(), max = 0;\r
-        for(int i=0; i<sg.getSize(false); i++)\r
+        for(int i=0; i<sg.getSize(); i++)\r
         {\r
           int index = av.alignment.findIndex( sg.getSequenceAt(i) );\r
           if(index > max)\r
@@ -402,7 +402,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         else\r
         {\r
           // Now add any sequences between min and max\r
-          sg.getSequences(false).clear();\r
+          sg.getSequences(null).clear();\r
           for (int i = min; i < max; i++)\r
           {\r
             sg.addSequence(av.alignment.getSequenceAt(i), false);\r
@@ -809,24 +809,20 @@ public class SeqPanel extends JPanel implements MouseListener,
       boolean fixedColumns = false;\r
       SequenceGroup sg = av.getSelectionGroup();\r
 \r
+      SequenceI seq = av.alignment.getSequenceAt(startseq);\r
 \r
+      //No group, but the sequence may represent a group\r
         if (!groupEditing && av.hasHiddenRows)\r
         {\r
-          if (av.alignment.getSequenceAt(startseq).getHiddenSequences() != null)\r
+          if (av.hiddenRepSequences!=null\r
+              && av.hiddenRepSequences.containsKey(seq))\r
           {\r
+            sg = (SequenceGroup)av.hiddenRepSequences.get(seq);\r
             groupEditing = true;\r
           }\r
         }\r
 \r
-        //No group, but the sequence may represent a group\r
-        if (groupEditing\r
-            && sg == null\r
-            && av.alignment.getSequenceAt(startseq).getHiddenSequences() == null)\r
-        {\r
-          groupEditing = false;\r
-        }\r
 \r
-        SequenceI seq = av.alignment.getSequenceAt(startseq);\r
         StringBuffer message = new StringBuffer();\r
         if (groupEditing)\r
         {\r
@@ -855,7 +851,7 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
         //Are we editing within a selection group?\r
         if (groupEditing\r
-            || (sg != null && sg.getSequences(true).contains(seq)))\r
+            || (sg != null && sg.getSequences(av.hiddenRepSequences).contains(seq)))\r
         {\r
           fixedColumns = true;\r
 \r
@@ -863,9 +859,7 @@ public class SeqPanel extends JPanel implements MouseListener,
           //but the sequence represents a group\r
           if (sg == null)\r
           {\r
-            sg = new SequenceGroup(null, null, false, false, false, 0,\r
-                                   av.alignment.getWidth()-1);\r
-            sg.addSequence(av.alignment.getSequenceAt(startseq), false);\r
+            sg = (SequenceGroup) av.hiddenRepSequences.get(seq);\r
           }\r
 \r
           fixedLeft = sg.getStartRes();\r
@@ -924,7 +918,7 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
         if (groupEditing)\r
         {\r
-          Vector vseqs = sg.getSequences(true);\r
+          Vector vseqs = sg.getSequences(av.hiddenRepSequences);\r
           int g, groupSize = vseqs.size();\r
           SequenceI[] groupSeqs = new SequenceI[groupSize];\r
           for (g = 0; g < groupSeqs.length; g++)\r
@@ -972,7 +966,7 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
             if (!blank)\r
             {\r
-              if(sg.getSize(false) == av.alignment.getHeight()  )\r
+              if(sg.getSize() == av.alignment.getHeight()  )\r
               {\r
                 if((av.hasHiddenColumns\r
                     && startres<av.getColumnSelection().getHiddenBoundaryRight(startres)))\r
@@ -1221,7 +1215,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       SequenceI sequence = av.alignment.getSequenceAt( findSeq(evt) );\r
       if(evt.getClickCount()>1)\r
       {\r
-        if (av.getSelectionGroup().getSize(false) == 1\r
+        if (av.getSelectionGroup().getSize() == 1\r
             && av.getSelectionGroup().getEndRes()\r
             - av.getSelectionGroup().getStartRes() < 2)\r
           av.setSelectionGroup(null);\r
@@ -1327,7 +1321,7 @@ public class SeqPanel extends JPanel implements MouseListener,
                 stretchGroup = null;\r
             }\r
         }\r
-        else if (!stretchGroup.getSequences(false).contains(sequence) ||\r
+        else if (!stretchGroup.getSequences(null).contains(sequence) ||\r
                 (stretchGroup.getStartRes() > res) ||\r
                 (stretchGroup.getEndRes() < res))\r
         {\r
@@ -1442,7 +1436,7 @@ public class SeqPanel extends JPanel implements MouseListener,
           if (stretchGroup.cs instanceof ClustalxColourScheme)\r
           {\r
             ( (ClustalxColourScheme) stretchGroup.cs).resetClustalX(\r
-                stretchGroup.getSequences(true),\r
+                stretchGroup.getSequences(av.hiddenRepSequences),\r
                 stretchGroup.getWidth());\r
           }\r
 \r
@@ -1549,7 +1543,7 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
             Sequence nextSeq = (Sequence) av.getAlignment().getSequenceAt(oldSeq);\r
 \r
-            if (stretchGroup.getSequences(false).contains(nextSeq))\r
+            if (stretchGroup.getSequences(null).contains(nextSeq))\r
             {\r
                 stretchGroup.deleteSequence(seq, false);\r
             }\r