Hashtable nameHash = new Hashtable();\r
Hashtable nodeHash = new Hashtable();\r
\r
- public TreeCanvas(AlignViewport av, NJTree tree, ScrollPane scroller,\r
- String label)\r
+ public TreeCanvas(AlignViewport av, ScrollPane scroller)\r
{\r
this.av = av;\r
- this.tree = tree;\r
scrollPane = scroller;\r
addMouseListener(this);\r
- tree.findHeight(tree.getTopNode());\r
- longestName = label;\r
setLayout(null);\r
\r
PaintRefresher.Register(this, av.alignment);\r
av.setSelectionGroup(selected);\r
}\r
\r
- selected.setEndRes(av.alignment.getWidth());\r
+ selected.setEndRes(av.alignment.getWidth()-1);\r
selected.addOrRemove(sequence, true);\r
\r
-System.out.println("called here");\r
PaintRefresher.Refresh(this, av.alignment);\r
repaint();\r
}\r
{\r
this.tree = tree;\r
tree.findHeight(tree.getTopNode());\r
+\r
+ // Now have to calculate longest name based on the leaves\r
+ Vector leaves = tree.findLeaves(tree.getTopNode(), new Vector());\r
+ boolean has_placeholders = false;\r
+ longestName = "";\r
+\r
+ for (int i = 0; i < leaves.size(); i++)\r
+ {\r
+ SequenceNode lf = (SequenceNode) leaves.elementAt(i);\r
+\r
+ if (lf.isPlaceholder())\r
+ {\r
+ has_placeholders = true;\r
+ }\r
+\r
+ if (longestName.length() < ( (Sequence) lf.element()).getName()\r
+ .length())\r
+ {\r
+ longestName = TreeCanvas.PLACEHOLDER +\r
+ ( (Sequence) lf.element()).getName();\r
+ }\r
+ }\r
+\r
+ setMarkPlaceholders(has_placeholders);\r
}\r
\r
public void drawNode(Graphics g, SequenceNode node, float chunk, float scale,\r
sequences.addElement(s1);\r
}\r
\r
- ColourSchemeI cs = ColourSchemeProperty.getColour(sequences, av.alignment.getWidth(),\r
- ColourSchemeProperty.getColourName(av.getGlobalColourScheme()));\r
+ ColourSchemeI cs = null;\r
\r
+ if (av.getGlobalColourScheme() != null)\r
+ {\r
+ if (av.getGlobalColourScheme() instanceof UserColourScheme)\r
+ {\r
+ cs = new UserColourScheme(\r
+ ( (UserColourScheme) av.getGlobalColourScheme()).getColours());\r
+\r
+ }\r
+ else\r
+ cs = ColourSchemeProperty.getColour(sequences,\r
+ av.alignment.getWidth(),\r
+ ColourSchemeProperty.getColourName(\r
+ av.getGlobalColourScheme()));\r
+\r
+ cs.setThreshold(av.getGlobalColourScheme().getThreshold(),\r
+ av.getIgnoreGapsConsensus());\r
+ }\r
\r
SequenceGroup sg = new SequenceGroup(sequences, "TreeGroup",\r
cs, true, true,\r
- false, 0, av.alignment.getWidth());\r
+ false, 0, av.alignment.getWidth()-1);\r
\r
\r
if ( av.getGlobalColourScheme()!=null\r