Check selection scroll beyond aligmnment height
[jalview.git] / src / jalview / appletgui / RedundancyPanel.java
index 7608cb9..5037a50 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -35,13 +35,14 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
   Stack historyList = new Stack(); // simpler than synching with alignFrame.\r
   float [] redundancy;\r
   SequenceI [] originalSequences;\r
-  Hashtable originalColours;\r
   Frame frame;\r
+  Vector redundantSeqs;\r
 \r
   public RedundancyPanel(AlignmentPanel ap)\r
   {\r
     super(ap, 0, false, null);\r
 \r
+    redundantSeqs = new Vector();\r
     this.ap = ap;\r
     undoButton.setVisible(true);\r
     applyButton.setVisible(true);\r
@@ -51,7 +52,7 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
     valueField.setText("100");\r
 \r
     slider.setVisibleAmount(1);\r
-    slider.setMinimum(40);\r
+    slider.setMinimum(0);\r
     slider.setMaximum(100+slider.getVisibleAmount());\r
     slider.setValue(100);\r
 \r
@@ -99,7 +100,6 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
       SequenceGroup sg = ap.av.getSelectionGroup();\r
       int height;\r
 \r
-      originalColours = new Hashtable();\r
       int start, end;\r
 \r
       if ( (sg != null) && (sg.getSize(false) >= 1))\r
@@ -135,9 +135,6 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
       String seqi, seqj;\r
       for (int i = 0; i < height; i++)\r
       {\r
-          originalColours.put(originalSequences[i],\r
-                             originalSequences[i].getColor());\r
-\r
           for (int j = 0; j < i; j++)\r
           {\r
             if(i==j)\r
@@ -184,11 +181,13 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
     for(int i=0; i<redundancy.length; i++)\r
     {\r
       if (value > redundancy[i])\r
-         originalSequences[i].setColor(java.awt.Color.white);\r
-      else\r
-         originalSequences[i].setColor(java.awt.Color.red);\r
+         redundantSeqs.removeElement(originalSequences[i]);\r
+      else if(!redundantSeqs.contains(originalSequences[i]))\r
+         redundantSeqs.addElement(originalSequences[i]);\r
     }\r
 \r
+    ap.idPanel.idCanvas.setHighlighted(redundantSeqs);\r
+\r
     PaintRefresher.Refresh(null,ap.av.alignment);\r
 \r
     }\r
@@ -273,13 +272,7 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList
 \r
   public void windowClosing(WindowEvent evt)\r
   {\r
-    for(int i=0; i<originalSequences.length; i++)\r
-    {\r
-      SequenceI seq = originalSequences[i];\r
-      seq.setColor( (java.awt.Color)originalColours.get(seq));\r
-    }\r
-\r
-    PaintRefresher.Refresh(ap.av.alignment);\r
+    ap.idPanel.idCanvas.setHighlighted(null);\r
   }\r
 \r
   public void windowClosed(WindowEvent evt)\r