Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / gui / RedundancyPanel.java
index 2d26245..4ca114d 100755 (executable)
@@ -125,7 +125,7 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
 \r
         int start, end;\r
 \r
-        if ( (sg != null) && (sg.getSize(false) >= 1))\r
+        if ( (sg != null) && (sg.getSize() >= 1))\r
         {\r
            originalSequences = sg.getSequencesInOrder(ap.av.alignment);\r
            start = sg.getStartRes();\r
@@ -166,8 +166,8 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
 \r
               if(omitHidden==null)\r
               {\r
-                seqi = originalSequences[i].getSequence(start, end);\r
-                seqj = originalSequences[j].getSequence(start, end);\r
+                seqi = originalSequences[i].getSequenceAsString(start, end);\r
+                seqj = originalSequences[j].getSequenceAsString(start, end);\r
               }\r
               else\r
               {\r
@@ -235,18 +235,10 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
         {\r
           if (value <= redundancy[i])\r
           {\r
-            SequenceI seq = originalSequences[i];\r
-            ap.av.alignment.deleteSequence(seq);\r
-            PaintRefresher.Refresh(this,ap.av.getSequenceSetId(),seq,null);\r
-            del.addElement(seq);\r
-            if (sg != null)\r
-            {\r
-              sg.deleteSequence(seq, false);\r
-            }\r
+            del.addElement(originalSequences[i]);\r
           }\r
         }\r
 \r
-\r
         // This has to be done before the restoreHistoryItem method of alignFrame will\r
         // actually restore these sequences.\r
         if (del.size() > 0)\r
@@ -254,8 +246,7 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
           SequenceI [] deleted = new SequenceI[del.size()];\r
 \r
           int width = 0;\r
-\r
-          for (int i = 0, j = del.size(); i < j; i++)\r
+          for (int i = 0; i < del.size(); i++)\r
           {\r
             deleted[i] = (SequenceI)del.elementAt(i);\r
             if(deleted[i].getLength()>width)\r
@@ -265,8 +256,23 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
           EditCommand cut = new EditCommand("Remove Redundancy",\r
               EditCommand.CUT, deleted,0,width,ap.av.alignment);\r
 \r
+          for (int i = 0; i < del.size(); i++)\r
+          {\r
+            ap.av.alignment.deleteSequence( deleted[i] );\r
+            PaintRefresher.Refresh(this,\r
+                                   ap.av.getSequenceSetId(),\r
+                                   true,\r
+                                   true);\r
+            if (sg != null)\r
+            {\r
+              sg.deleteSequence(deleted[i], false);\r
+            }\r
+          }\r
+\r
           historyList.push(cut);\r
 \r
+          ap.alignFrame.addHistoryItem(cut);\r
+\r
           ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());\r
         }\r
 \r
@@ -284,6 +290,14 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
       CommandI command = (CommandI) historyList.pop();\r
       command.undoCommand();\r
 \r
+      if (ap.av.historyList.contains(command))\r
+      {\r
+        ap.av.historyList.remove(command);\r
+        af.updateEditMenuBar();\r
+      }\r
+\r
+      ap.repaint();\r
+\r
       if (historyList.size() == 0)\r
       {\r
         undoButton.setEnabled(false);\r