dont add sequence twice to new group
[jalview.git] / src / jalview / gui / TreeCanvas.java
index 12416ae..1fddc5b 100755 (executable)
@@ -65,7 +65,7 @@ public class TreeCanvas
     tree.findHeight(tree.getTopNode());\r
     longestName = label;\r
 \r
-    PaintRefresher.Register(this);\r
+    PaintRefresher.Register(this, av.alignment);\r
   }\r
 \r
   public void TreeSelectionChanged(Sequence sequence)\r
@@ -79,9 +79,9 @@ public class TreeCanvas
     }\r
 \r
     selected.setEndRes(av.alignment.getWidth());\r
-    selected.addOrRemove(sequence);\r
+    selected.addOrRemove(sequence, true);\r
 \r
-    PaintRefresher.Refresh(this);\r
+    PaintRefresher.Refresh(this, av.alignment);\r
     repaint();\r
   }\r
 \r
@@ -299,7 +299,7 @@ public class TreeCanvas
 \r
           if (sg != null)\r
           {\r
-            sg.addOrRemove(seq);\r
+            sg.addOrRemove(seq, true);\r
           }\r
         }\r
       }\r
@@ -414,6 +414,7 @@ public class TreeCanvas
 \r
   public void paintComponent(Graphics g)\r
   {\r
+    super.paintComponent(g);\r
     font = new Font("Verdana", Font.PLAIN, fontSize);\r
     g.setFont(font);\r
 \r
@@ -561,22 +562,27 @@ public class TreeCanvas
           Vector l = tree.findLeaves( (SequenceNode) tree.getGroups()\r
                                      .elementAt(i),\r
                                      new Vector());\r
-          SequenceGroup sg = null;\r
 \r
-          for (int j = 0; j < l.size(); j++)\r
-          {\r
-            SequenceNode sn = (SequenceNode) l.elementAt(j);\r
-\r
-            if (sg == null)\r
-            {\r
-              sg = new SequenceGroup("TreeGroup",\r
-                                     av.getGlobalColourScheme(), true, true,\r
-                                     false, 0, av.alignment.getWidth());\r
-            }\r
+         Vector sequences = new Vector();\r
+         for (int j = 0; j < l.size(); j++)\r
+         {\r
+           SequenceI s1 = (SequenceI) ( (SequenceNode) l.elementAt(j)).element();\r
+           if (!sequences.contains(s1))\r
+             sequences.addElement(s1);\r
 \r
-            sg.addSequence( (Sequence) sn.element());\r
           }\r
 \r
+          ColourSchemeI cs = ColourSchemeProperty.getColour(sequences, av.alignment.getWidth(),\r
+              ColourSchemeProperty.getColourName(av.getGlobalColourScheme()));\r
+\r
+          SequenceGroup sg = new SequenceGroup(sequences, "TreeGroup",\r
+                           cs, true, true,\r
+                           false, 0, av.alignment.getWidth());\r
+\r
+          if(sg.cs !=null)\r
+           ( (ResidueColourScheme) sg.cs).setThreshold(25);\r
+\r
+\r
           if (av.getGlobalColourScheme() instanceof ConservationColourScheme)\r
           {\r
             ConservationColourScheme ccs = (ConservationColourScheme) av.\r
@@ -598,7 +604,7 @@ public class TreeCanvas
       }\r
     }\r
 \r
-    PaintRefresher.Refresh(this);\r
+    PaintRefresher.Refresh(this, av.alignment);\r
     repaint();\r
   }\r
 \r