Unique name for new group and treegroup
[jalview.git] / src / jalview / appletgui / TreeCanvas.java
index 928d21f..5f707d5 100755 (executable)
@@ -65,7 +65,7 @@ public class TreeCanvas
     addMouseMotionListener(this);\r
     setLayout(null);\r
 \r
-    PaintRefresher.Register(this, av.alignment);\r
+    PaintRefresher.Register(this, av.getSequenceSetId());\r
   }\r
 \r
   public void treeSelectionChanged(SequenceI sequence)\r
@@ -133,15 +133,15 @@ public class TreeCanvas
 \r
       if (node.element() instanceof SequenceI)\r
       {\r
-        if ( ( (SequenceI) ( (SequenceNode) node).element()).getColor() ==\r
-            Color.white)\r
+        SequenceI seq = (SequenceI) ( (SequenceNode) node).element();\r
+\r
+        if (av.getSequenceColour(seq) == Color.white)\r
         {\r
           g.setColor(Color.black);\r
         }\r
         else\r
         {\r
-          g.setColor( ( (SequenceI) ( (SequenceNode) node).element()).getColor().\r
-                     darker());\r
+          g.setColor(av.getSequenceColour(seq).darker());\r
         }\r
 \r
       }\r
@@ -185,7 +185,7 @@ public class TreeCanvas
       // Colour selected leaves differently\r
       SequenceGroup selected = av.getSelectionGroup();\r
       if (selected != null &&\r
-          selected.getSequences(false).contains( (SequenceI) node.element()))\r
+          selected.getSequences(null).contains( (SequenceI) node.element()))\r
       {\r
         g.setColor(Color.gray);\r
 \r
@@ -337,7 +337,7 @@ public class TreeCanvas
 \r
       if (node.element() instanceof SequenceI)\r
       {\r
-        ( (SequenceI) node.element()).setColor(c);\r
+        av.setSequenceColour((SequenceI) node.element(), c);\r
       }\r
     }\r
     else\r
@@ -353,10 +353,8 @@ public class TreeCanvas
     paint(g);\r
   }\r
 \r
-  Image offscreen;\r
-  public void paint(Graphics g1)\r
+  public void paint(Graphics g)\r
   {\r
-\r
     if(tree==null)\r
       return;\r
 \r
@@ -365,37 +363,27 @@ public class TreeCanvas
       repaint();\r
     }\r
 \r
-    FontMetrics fm = g1.getFontMetrics(font);\r
-\r
     int width = scrollPane.getSize().width;\r
     int height = scrollPane.getSize().height;\r
     if(!fitToWindow)\r
-      height = fm.getHeight() * nameHash.size();\r
+    {\r
+      height = g.getFontMetrics(font).getHeight() * nameHash.size();\r
+    }\r
 \r
+    if(getSize().width>width)\r
+    {\r
+      setSize(new Dimension(width,height));\r
+      scrollPane.validate();\r
+      return;\r
+    }\r
 \r
-    if(offscreen==null || offscreen.getWidth(this)!=width\r
-    || offscreen.getHeight(this)!=height)\r
-      offscreen = createImage(width, height);\r
+    setSize(new Dimension(width,height));\r
 \r
-    Graphics g = offscreen.getGraphics();\r
 \r
     g.setFont(font);\r
 \r
-    if (fitToWindow ||\r
-        (!fitToWindow &&\r
-         scrollPane.getSize().height > fm.getHeight() * nameHash.size() + offy))\r
-    {\r
-      draw(g, scrollPane.getSize().width, scrollPane.getSize().height);\r
-    }\r
-    else\r
-    {\r
-      setSize(new Dimension(scrollPane.getSize().width,\r
-                            fm.getHeight() * nameHash.size()));\r
-      draw(g, scrollPane.getSize().width, fm.getHeight() * nameHash.size());\r
-    }\r
+    draw(g, width, height);\r
 \r
-    g1.drawImage(offscreen, 0, 0, this);\r
-    scrollPane.validate();\r
   }\r
 \r
 \r
@@ -472,7 +460,7 @@ public class TreeCanvas
         }\r
       }\r
 \r
-      PaintRefresher.Refresh(this, av.alignment);\r
+      PaintRefresher.Refresh(this, av.getSequenceSetId());\r
       repaint();\r
     }\r
   }\r
@@ -514,7 +502,7 @@ public class TreeCanvas
     if (ob instanceof SequenceI)\r
     {\r
       treeSelectionChanged( (Sequence) ob);\r
-      PaintRefresher.Refresh(this, av.alignment);\r
+      PaintRefresher.Refresh(this, av.getSequenceSetId());\r
       repaint();\r
       return;\r
     }\r
@@ -533,13 +521,14 @@ public class TreeCanvas
 \r
         av.setSelectionGroup(null);\r
         av.alignment.deleteAllGroups();\r
+        av.sequenceColours=null;\r
 \r
         colourGroups();\r
 \r
       }\r
     }\r
 \r
-    PaintRefresher.Refresh(this, av.alignment);\r
+    PaintRefresher.Refresh(this, av.getSequenceSetId());\r
     repaint();\r
 \r
   }\r
@@ -585,17 +574,19 @@ public class TreeCanvas
                                                    av.getIgnoreGapsConsensus());\r
           }\r
 \r
-          SequenceGroup sg = new SequenceGroup(sequences, "TreeGroup",\r
+          SequenceGroup sg = new SequenceGroup(sequences, "",\r
                                                cs, true, true,\r
                                                false, 0, av.alignment.getWidth()-1);\r
 \r
+          sg.setName("JTreeGroup:"+sg.hashCode());\r
+\r
 \r
           if (  av.getGlobalColourScheme()!=null\r
              && av.getGlobalColourScheme().conservationApplied())\r
             {\r
             Conservation c = new Conservation("Group",\r
                                               ResidueProperties.propHash, 3,\r
-                                              sg.getSequences(false),\r
+                                              sg.getSequences(null),\r
                                               sg.getStartRes(),\r
                                               sg.getEndRes());\r
 \r