Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / appletgui / SeqPanel.java
index feda697..89e2086 100755 (executable)
@@ -215,7 +215,7 @@ public class SeqPanel
        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
@@ -251,7 +251,7 @@ public class SeqPanel
        else\r
        {\r
          // Now add any sequences between min and max\r
-         sg.getSequences(false).removeAllElements();\r
+         sg.getSequences(null).removeAllElements();\r
          for (int i = min; i < max; i++)\r
          {\r
            sg.addSequence(av.alignment.getSequenceAt(i), false);\r
@@ -730,24 +730,18 @@ public class SeqPanel
     boolean fixedColumns = false;\r
     SequenceGroup sg = av.getSelectionGroup();\r
 \r
+    SequenceI seq = av.alignment.getSequenceAt(startseq);\r
 \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
 \r
-      SequenceI seq = av.alignment.getSequenceAt(startseq);\r
       StringBuffer message = new StringBuffer();\r
       if (groupEditing)\r
       {\r
@@ -776,7 +770,7 @@ public class SeqPanel
 \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
@@ -784,9 +778,7 @@ public class SeqPanel
         //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
@@ -845,7 +837,7 @@ public class SeqPanel
 \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
@@ -893,7 +885,7 @@ public class SeqPanel
 \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
@@ -1145,7 +1137,7 @@ public class SeqPanel
       }\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
@@ -1245,7 +1237,7 @@ public class SeqPanel
       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
@@ -1355,7 +1347,7 @@ public class SeqPanel
 \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