dont add sequence twice to new group
[jalview.git] / src / jalview / gui / TreeCanvas.java
index 0f74faf..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
@@ -81,7 +81,7 @@ public class TreeCanvas
     selected.setEndRes(av.alignment.getWidth());\r
     selected.addOrRemove(sequence, true);\r
 \r
-    PaintRefresher.Refresh(this);\r
+    PaintRefresher.Refresh(this, av.alignment);\r
     repaint();\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
@@ -563,15 +564,24 @@ public class TreeCanvas
                                      new Vector());\r
 \r
          Vector sequences = new Vector();\r
-          for (int j = 0; j < l.size(); j++)\r
-          {\r
-            sequences.add( (Sequence)((SequenceNode) l.elementAt(j)).element());\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
           }\r
 \r
+          ColourSchemeI cs = ColourSchemeProperty.getColour(sequences, av.alignment.getWidth(),\r
+              ColourSchemeProperty.getColourName(av.getGlobalColourScheme()));\r
+\r
           SequenceGroup sg = new SequenceGroup(sequences, "TreeGroup",\r
-                           av.getGlobalColourScheme(), true, true,\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
@@ -594,7 +604,7 @@ public class TreeCanvas
       }\r
     }\r
 \r
-    PaintRefresher.Refresh(this);\r
+    PaintRefresher.Refresh(this, av.alignment);\r
     repaint();\r
   }\r
 \r