NJTree tree;\r
JScrollPane scrollPane;\r
AlignViewport av;\r
+ AlignmentPanel ap;\r
Font font;\r
FontMetrics fm;\r
boolean fitToWindow = true;\r
* @param scroller DOCUMENT ME!\r
* @param label DOCUMENT ME!\r
*/\r
- public TreeCanvas(AlignViewport av, JScrollPane scroller)\r
+ public TreeCanvas(AlignmentPanel ap, JScrollPane scroller)\r
{\r
- this.av = av;\r
+ this.av = ap.av;\r
+ this.ap = ap;\r
font = av.getFont();\r
scrollPane = scroller;\r
addMouseListener(this);\r
addMouseMotionListener(this);\r
- PaintRefresher.Register(this, av.alignment);\r
+ PaintRefresher.Register(this, ap.av.getSequenceSetId());\r
+ ToolTipManager.sharedInstance().registerComponent(this);\r
}\r
\r
\r
\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
\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
{\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
}\r
}\r
\r
- PaintRefresher.Refresh(this, av.alignment);\r
+ PaintRefresher.Refresh(this, av.getSequenceSetId());\r
repaint();\r
}\r
}\r
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
if (ob instanceof SequenceI)\r
{\r
treeSelectionChanged( (Sequence) ob);\r
- PaintRefresher.Refresh(this, av.alignment);\r
+ PaintRefresher.Refresh(this, ap.av.getSequenceSetId());\r
repaint();\r
return;\r
}\r
\r
av.setSelectionGroup(null);\r
av.alignment.deleteAllGroups();\r
+ av.sequenceColours.clear();\r
\r
colourGroups();\r
}\r
\r
- PaintRefresher.Refresh(this, av.alignment);\r
+ PaintRefresher.Refresh(this, ap.av.getSequenceSetId());\r
repaint();\r
}\r
\r