X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreeCanvas.java;h=fc0a7583fb0e66a4638048a4523b2e575a1c7a18;hb=373a0f23b37fdd3c40d3ebb4a3c9120f5773bb45;hp=61d7d7e76c2949a263ad6026348bc5ba61ad327a;hpb=bb0c38e3467efca1a61e296a110ff9bee62ceaa9;p=jalview.git diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 61d7d7e..fc0a758 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -22,6 +22,7 @@ package jalview.gui; import jalview.analysis.Conservation; import jalview.analysis.NJTree; +import jalview.api.AlignViewportI; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; @@ -30,7 +31,9 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; +import jalview.structure.SelectionSource; import jalview.util.Format; +import jalview.util.MappingUtils; import jalview.util.MessageManager; import java.awt.Color; @@ -66,7 +69,7 @@ import javax.swing.ToolTipManager; * @version $Revision$ */ public class TreeCanvas extends JPanel implements MouseListener, Runnable, - Printable, MouseMotionListener + Printable, MouseMotionListener, SelectionSource { /** DOCUMENT ME!! */ public static final String PLACEHOLDER = " * "; @@ -520,7 +523,8 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { for (int a = 0; a < aps.length; a++) { - aps[a].av.setSequenceColour((SequenceI) node.element(), c); + final SequenceI seq = (SequenceI) node.element(); + aps[a].av.setSequenceColour(seq, c); } } } @@ -881,12 +885,20 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, AlignmentPanel[] aps = getAssociatedPanels(); + // TODO push calls below into a single AlignViewportI method? + // see also AlignViewController.deleteGroups for (int a = 0; a < aps.length; a++) { aps[a].av.setSelectionGroup(null); aps[a].av.getAlignment().deleteAllGroups(); aps[a].av.clearSequenceColours(); } + if (av.getCodingComplement() != null) + { + av.getCodingComplement().setSelectionGroup(null); + av.getCodingComplement().getAlignment().deleteAllGroups(); + av.getCodingComplement().clearSequenceColours(); + } colourGroups(); } @@ -950,6 +962,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, // sg.recalcConservation(); sg.setName("JTreeGroup:" + sg.hashCode()); sg.setIdColour(col); + for (int a = 0; a < aps.length; a++) { if (aps[a].av.getGlobalColourScheme() != null @@ -966,7 +979,25 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, aps[a].av.getAlignment().addGroup(new SequenceGroup(sg)); } + + // TODO can we push all of the below into AlignViewportI? + av.getAlignment().addGroup(sg); + final AlignViewportI codingComplement = av.getCodingComplement(); + if (codingComplement != null) + { + SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg, av, + codingComplement); + if (mappedGroup.getSequences().size() > 0) + { + codingComplement.getAlignment().addGroup(mappedGroup); + for (SequenceI seq : mappedGroup.getSequences()) + { + codingComplement.setSequenceColour(seq, col.brighter()); + } + } + } } + // notify the panel to redo any group specific stuff. for (int a = 0; a < aps.length; a++) { @@ -975,6 +1006,13 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, // to any Jmols listening in } + if (av.getCodingComplement() != null) + { + ((AlignViewport) av.getCodingComplement()).getAlignPanel().updateAnnotation(); + /* + * idPanel. repaint () + */ + } } /**