Sequence colour in viewport
[jalview.git] / src / jalview / gui / TreeCanvas.java
index a9c3ae0..57e652c 100755 (executable)
@@ -83,6 +83,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
         addMouseListener(this);\r
         addMouseMotionListener(this);\r
         PaintRefresher.Register(this, ap.av.getSequenceSetId());\r
+        ToolTipManager.sharedInstance().registerComponent(this);\r
     }\r
 \r
 \r
@@ -172,14 +173,15 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
 \r
             if (node.element() instanceof SequenceI)\r
             {\r
-                if (((SequenceI) ((SequenceNode) node).element()).getColor() == 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
             else\r
@@ -418,7 +420,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
 \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
@@ -663,6 +665,14 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
     {\r
       if(highlightNode!=null)\r
       {\r
+        if (SwingUtilities.isRightMouseButton(evt))\r
+        {\r
+          Color col = JColorChooser.showDialog(this, "Select Background Colour",\r
+                                               highlightNode.color);\r
+\r
+          setColor(highlightNode, col);\r
+        }\r
+        else\r
         if(evt.getClickCount()>1)\r
         {\r
           tree.swapNodes(highlightNode);\r
@@ -698,13 +708,19 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
       if (ob instanceof SequenceNode)\r
       {\r
         highlightNode = (SequenceNode) ob;\r
+        this.setToolTipText(\r
+            "<html>Left click to select leaves"\r
+            + "<br>Double-click to invert leaves"\r
+            + "<br>Right click to change colour");\r
         repaint();\r
+\r
       }\r
       else\r
       {\r
         if (highlightNode != null)\r
         {\r
           highlightNode = null;\r
+          setToolTipText(null);\r
           repaint();\r
         }\r
       }\r
@@ -748,6 +764,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
 \r
                 av.setSelectionGroup(null);\r
                 av.alignment.deleteAllGroups();\r
+                av.sequenceColours.clear();\r
 \r
                 colourGroups();\r
               }\r