X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreeCanvas.java;h=c39e407909461306d244e8595a46bf399087dd44;hb=a8bb0960ee2534ea27fd24586fdc0fb9a9a9715e;hp=1a11630dce8ffbd7f98297ae24db26df8d641621;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 1a11630..c39e407 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -4,11 +4,11 @@ package jalview.gui; import jalview.analysis.*; import jalview.datamodel.*; import jalview.util.*; +import jalview.schemes.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; -import java.io.*; public class TreeCanvas extends JPanel implements MouseListener { @@ -91,11 +91,20 @@ public class TreeCanvas extends JPanel implements MouseListener int ypos = (int)(node.ycount * chunk) + offy; - if (node.element() instanceof SequenceI) { - g.setColor(((SequenceI)((SequenceNode)node).element()).getColor().darker()); - } else { - g.setColor(Color.black); + if (node.element() instanceof SequenceI) + { + if ( ( (SequenceI) ( (SequenceNode) node).element()).getColor() == Color.white) + { + g.setColor(Color.black); + } + else + g.setColor( ( (SequenceI) ( (SequenceNode) node).element()).getColor(). + darker()); + } + else + g.setColor(Color.black); + // Draw horizontal line g.drawLine(xstart,ypos,xend,ypos); @@ -238,18 +247,19 @@ public class TreeCanvas extends JPanel implements MouseListener } } - public void setColor(SequenceNode node, Color c) { - if (node == null) { + public void setColor(SequenceNode node, Color c) + { + if (node == null) return; - } - if (node.left() == null && node.right() == null) { + if (node.left() == null && node.right() == null) + { node.color = c; - if (node.element() instanceof SequenceI) { + if (node.element() instanceof SequenceI) ((SequenceI)node.element()).setColor(c); - } - } else { + } else + { node.color = c; setColor((SequenceNode)node.left(),c); setColor((SequenceNode)node.right(),c); @@ -348,22 +358,53 @@ public class TreeCanvas extends JPanel implements MouseListener tree.groupNodes(tree.getTopNode(),fthreshold); setColor(tree.getTopNode(),Color.black); - for (int i=0; i < tree.getGroups().size(); i++) { + av.sel.clear(); + av.alignment.deleteAllGroups(); + + for (int i=0; i < tree.getGroups().size(); i++) + { - int tmp = i%(7); Color col = new Color((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255)); - setColor((SequenceNode)tree.getGroups().elementAt(i),col.brighter()); - // l is vector of Objects Vector l = tree.findLeaves((SequenceNode)tree.getGroups().elementAt(i),new Vector()); + SequenceGroup sg = null; + for (int j = 0; j < l.size(); j++) + { + SequenceNode sn = (SequenceNode) l.elementAt(j); + if(sg==null) + sg = new SequenceGroup("TreeGroup", av.getGlobalColourScheme(), true, true,false,0,av.alignment.getWidth()); + + sg.addSequence( (Sequence) sn.element()); + } + + if (av.getGlobalColourScheme() instanceof ConservationColourScheme) + { + ConservationColourScheme ccs = (ConservationColourScheme) av.getGlobalColourScheme(); + Conservation c = new Conservation("Group", + ResidueProperties.propHash, 3, + sg.sequences, sg.getStartRes(), + sg.getEndRes()); + + c.calculate(); + c.verdict(false, 100); + ccs = new ConservationColourScheme(c, ccs.cs); + + sg.cs = ccs; + + } + + + + av.alignment.addGroup(sg); } } } + PaintRefresher.Refresh(this); repaint(); }