/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.analysis.Conservation;
import jalview.analysis.NJTree;
+import jalview.api.AlignViewportI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
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;
* @version $Revision$
*/
public class TreeCanvas extends JPanel implements MouseListener, Runnable,
- Printable, MouseMotionListener
+ Printable, MouseMotionListener, SelectionSource
{
/** DOCUMENT ME!! */
public static final String PLACEHOLDER = " * ";
{
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);
}
}
}
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();
}
// sg.recalcConservation();
sg.setName("JTreeGroup:" + sg.hashCode());
sg.setIdColour(col);
+
for (int a = 0; a < aps.length; a++)
{
if (aps[a].av.getGlobalColourScheme() != null
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++)
{
// to any Jmols listening in
}
+ if (av.getCodingComplement() != null)
+ {
+ ((AlignViewport) av.getCodingComplement()).getAlignPanel().updateAnnotation();
+ /*
+ * idPanel. repaint ()
+ */
+ }
}
/**