paintFlag removed
[jalview.git] / src / jalview / gui / TreeCanvas.java
index de84902..9435716 100755 (executable)
@@ -34,7 +34,6 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
 \r
   //RubberbandRectangle rubberband;\r
 \r
-  Selection selected;\r
   Vector    listeners;\r
 \r
   Hashtable nameHash = new Hashtable();\r
@@ -44,7 +43,6 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
   {\r
     this.av = av;\r
     this.tree     = tree;\r
-    selected = av.getSelection();\r
     scrollPane = scroller;\r
     addMouseListener(this);\r
     tree.findHeight(tree.getTopNode());\r
@@ -54,23 +52,22 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
   }\r
   public void TreeSelectionChanged(Sequence sequence)\r
  {\r
-    selected = av.getSelection();\r
+    SequenceGroup selected = av.getSelectionGroup();\r
+    if(selected == null)\r
+    {\r
+      selected = new SequenceGroup();\r
+      av.setSelectionGroup(selected);\r
+    }\r
+\r
+    selected.setEndRes(av.alignment.getWidth());\r
+    selected.addOrRemove(sequence);\r
 \r
-    if (selected.contains(sequence))\r
-        selected.removeElement(sequence);\r
-    else\r
-        selected.addElement(sequence);\r
 \r
-    setSelected(selected);\r
     PaintRefresher.Refresh(this);\r
     repaint();\r
  }\r
 \r
 \r
-  public void setSelected(Selection selected)\r
-  {\r
-        this.selected = selected;\r
-  }\r
 \r
   public void setTree(NJTree tree) {\r
     this.tree = tree;\r
@@ -136,7 +133,8 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
 \r
       nameHash.put((SequenceI)node.element(),rect);\r
 \r
-      if (selected.contains((SequenceI)node.element())) {\r
+      SequenceGroup selected = av.getSelectionGroup();\r
+      if (selected!=null && selected.sequences.contains((SequenceI)node.element())) {\r
         g.setColor(Color.gray);\r
 \r
         g.fillRect(xend + 10, ypos - charHeight + 3,charWidth,charHeight);\r
@@ -203,7 +201,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
 \r
   }\r
 \r
-  public void pickNodes(Rectangle pickBox, Selection sel) {\r
+  public void pickNodes(Rectangle pickBox) {\r
     int width  = getWidth();\r
     int height = getHeight();\r
 \r
@@ -216,10 +214,10 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
     }\r
     float chunk = (float)(height-offy*2)/top.count;\r
 \r
-    pickNode(pickBox,sel,top,chunk,wscale,width,offx,offy);\r
+    pickNode(pickBox,top,chunk,wscale,width,offx,offy);\r
   }\r
 \r
-  public void pickNode(Rectangle pickBox, Selection sel, SequenceNode node, float chunk, float scale, int width,int offx, int offy) {\r
+  public void pickNode(Rectangle pickBox, SequenceNode node, float chunk, float scale, int width,int offx, int offy) {\r
     if (node == null) {\r
       return;\r
     }\r
@@ -236,16 +234,14 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
       if (pickBox.contains(new Point(xend,ypos))) {\r
         if (node.element() instanceof SequenceI) {\r
           SequenceI seq = (SequenceI)node.element();\r
-          if (sel.contains(seq)) {\r
-            sel.removeElement(seq);\r
-          } else {\r
-            sel.addElement(seq);\r
-          }\r
+          SequenceGroup sg = av.getSelectionGroup();\r
+          if(sg!=null)\r
+            sg.addOrRemove(seq);\r
         }\r
       }\r
     } else {\r
-      pickNode(pickBox,sel,(SequenceNode)node.left(), chunk,scale,width,offx,offy);\r
-      pickNode(pickBox,sel,(SequenceNode)node.right(),chunk,scale,width,offx,offy);\r
+      pickNode(pickBox,(SequenceNode)node.left(), chunk,scale,width,offx,offy);\r
+      pickNode(pickBox,(SequenceNode)node.right(),chunk,scale,width,offx,offy);\r
     }\r
   }\r
 \r
@@ -296,7 +292,6 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
 \r
   public int print(Graphics pg, PageFormat pf, int pi) throws PrinterException\r
   {\r
-    font = new Font("Verdana",Font.PLAIN,fontSize);\r
     pg.setFont(font);\r
     FontMetrics fm = pg.getFontMetrics(font);\r
 \r
@@ -323,6 +318,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
 \r
   public void paintComponent(Graphics g)\r
   {\r
+\r
     font = new Font("Verdana",Font.PLAIN,fontSize);\r
     g.setFont(font);\r
 \r
@@ -411,7 +407,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
               tree.groupNodes(tree.getTopNode(),fthreshold);\r
               setColor(tree.getTopNode(),Color.black);\r
 \r
-              av.sel.clear();\r
+              av.setSelectionGroup(null);\r
               av.alignment.deleteAllGroups();\r
 \r
               for (int i=0; i < tree.getGroups().size(); i++)\r
@@ -428,7 +424,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print
                   {\r
                     SequenceNode sn = (SequenceNode) l.elementAt(j);\r
                     if(sg==null)\r
-                       sg  = new SequenceGroup("TreeGroup", av.getGlobalColourScheme(), true, true,false,0,av.alignment.getWidth());\r
+                       sg = new SequenceGroup("TreeGroup", av.getGlobalColourScheme(), true, true,false,0,av.alignment.getWidth());\r
 \r
                     sg.addSequence( (Sequence) sn.element());\r
                   }\r