Merge branch 'develop' into features/JAL-250_hideredundantseqs
[jalview.git] / src / jalview / gui / RedundancyPanel.java
index 7ca0efb..37458a7 100755 (executable)
@@ -29,6 +29,7 @@ import jalview.datamodel.SequenceI;
 import jalview.jbgui.GSliderPanel;
 import jalview.util.MessageManager;
 
+import java.awt.Color;
 import java.awt.event.ActionEvent;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -104,9 +105,10 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
 
     frame = new JInternalFrame();
     frame.setContentPane(this);
-    Desktop.addInternalFrame(frame, MessageManager
-            .getString("label.redundancy_threshold_selection"), 400, 100,
-            false);
+    Desktop.addInternalFrame(frame,
+            MessageManager
+                    .getString("label.redundancy_threshold_selection"),
+            400, 100, false);
     frame.addInternalFrameListener(new InternalFrameAdapter()
     {
       @Override
@@ -181,8 +183,8 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
     progress.setVisible(false);
     progress = null;
 
-    label.setText(MessageManager
-            .getString("label.enter_redundancy_thereshold"));
+    label.setText(
+            MessageManager.getString("label.enter_redundancy_threshold"));
     slider.setVisible(true);
     applyButton.setEnabled(true);
     valueField.setVisible(true);
@@ -282,11 +284,26 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
         }
       }
     }
+    int s = 0, e = ap.av.getAlignment().getWidth();
+    if (sg != null)
+    {
+      s = sg.getStartRes();
+      e = sg.getEndRes();
+    }
+    List<SequenceGroup> sgs = new ArrayList<SequenceGroup>();
     for (SequenceI repseq: reps.keySet())
     {
       sg = reps.get(repseq);
       sg.addSequence(repseq, false);
       sg.setSeqrep(repseq);
+      sg.setStartRes(s);
+      sg.setEndRes(e);
+      sgs.add(sg);
+    }
+    ap.alignFrame.avc.showRandomColoursForGroups(sgs);
+    for (SequenceI repseq : reps.keySet())
+    {
+      sg = reps.get(repseq);
       ap.av.hideRepSequences(repseq, sg);
     }
   }
@@ -337,8 +354,8 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
       ap.alignFrame.addHistoryItem(cut);
 
       PaintRefresher.Refresh(this, ap.av.getSequenceSetId(), true, true);
-      ap.av.firePropertyChange("alignment", null, ap.av.getAlignment()
-              .getSequences());
+      ap.av.firePropertyChange("alignment", null,
+              ap.av.getAlignment().getSequences());
     }
 
   }
@@ -363,8 +380,8 @@ public class RedundancyPanel extends GSliderPanel implements Runnable
     {
       command.undoCommand(af.getViewAlignments());
       ap.av.getHistoryList().remove(command);
-      ap.av.firePropertyChange("alignment", null, ap.av.getAlignment()
-              .getSequences());
+      ap.av.firePropertyChange("alignment", null,
+              ap.av.getAlignment().getSequences());
       af.updateEditMenuBar();
     }