import jalview.api.AlignViewportI;
import jalview.commands.CommandI;
import jalview.commands.OrderCommand;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.ext.treeviewer.LoadedTreeSequenceAssociation;
import jalview.ext.treeviewer.TreeFrameI;
import jalview.ext.treeviewer.TreeI;
import jalview.ext.treeviewer.TreeNodeI;
import jalview.ext.treeviewer.TreePanelI;
import jalview.ext.treeviewer.TreeViewerBindingI;
import jalview.ext.treeviewer.TreeViewerUtils;
-import jalview.ext.treeviewer.LoadedTreeSequenceAssociation;
import jalview.gui.AlignViewport;
import jalview.gui.AlignmentPanel;
import jalview.gui.Desktop;
private final StructureSelectionManager ssm;
- private AlignmentPanel[] associatedPanels;
-
private Map<SequenceI, TreeNodeI> sequencesBoundToNodes;
private Map<TreeNodeI, SequenceI> nodesBoundToSequences;
treeView = archaeopteryx.getTreePanel();
ssm = parentAvport.getStructureSelectionManager();
+ aptxFrame.setViewBinding(this);
ssm.addSelectionListener(this);
treeView.addMouseListener(this);
treeView.registerWithPaintRefresher(
parentAvport.getSequenceSetId());
- associatedPanels = PaintRefresher
- .getAssociatedPanels(parentAvport.getSequenceSetId());
aptxFrame.addFrameListener(new InternalFrameAdapter()
{
if (treeView.showingSubTree())
{
- LoadedTreeSequenceAssociation bindAptxNodes = new LoadedTreeSequenceAssociation(
- parentAvport.getAlignment().getSequencesArray(),
+ LoadedTreeSequenceAssociation bindAptxNodes = new LoadedTreeSequenceAssociation(
+ parentAvport.getAlignment().getSequencesArray(),
treeView.getTree());
- bindAptxNodes.associateLeavesToSequences();
- sequencesBoundToNodes = bindAptxNodes.getAlignmentWithNodes();
- nodesBoundToSequences = bindAptxNodes.getNodesWithAlignment();
- TreeViewerUtils.associateNodesWithJalviewSequences(aptxFrame, parentAvport,
- sequencesBoundToNodes, nodesBoundToSequences);
-
+ bindAptxNodes.associateNodesToSequences();
+ sequencesBoundToNodes = bindAptxNodes.getAlignmentWithNodes();
+ nodesBoundToSequences = bindAptxNodes.getNodesWithAlignment();
+ TreeViewerUtils.associateNodesWithJalviewSequences(aptxFrame,
+ parentAvport, sequencesBoundToNodes, nodesBoundToSequences);
- for (SequenceI seq : parentAvport.getAlignment().getSequencesArray())
- {
- if (!sequencesBoundToNodes.containsKey(seq))
+ for (SequenceI seq : parentAvport.getAlignment().getSequencesArray())
{
- parentAvport.hideSequence(new SequenceI[] { seq });
- }
+ if (!sequencesBoundToNodes.containsKey(seq))
+ {
+ parentAvport.hideSequence(new SequenceI[] { seq });
+ }
}
}
rootX = tree.getRoot().getXcoord();
// don't bother if 0 distance tree or clicked x lies outside of tree
- if (furthestNodeX != rootX && !(x > furthestNodeX))
- {
+ // if (furthestNodeX != rootX && !(x > furthestNodeX))
+
float threshold = (x - rootX) / (furthestNodeX - rootX);
List<TreeNodeI> foundNodes = getNodesAboveThreshold(
threshold,
tree.getRoot());
- }
+
}
}
- public List<TreeNodeI> getNodesAboveThreshold(double threshold,
+ public List<TreeNodeI> getNodesAboveThreshold(float threshold,
TreeNodeI node)
{
* @return
*/
private List<TreeNodeI> colourNodesAboveThreshold(
- List<TreeNodeI> nodeList, double threshold,
+ List<TreeNodeI> nodeList, float threshold,
TreeNodeI node)
{
}
}
-
- for (AlignmentPanel associatedPanel : associatedPanels) {
+ for (AlignmentPanel associatedPanel : getAssociatedPanels())
+ {
associatedPanel.updateAnnotation();
treeGroup.setName("Tree Group " + nrTreeGroups);
treeGroup.setIdColour(groupColour);
- for (AlignmentPanel associatedPanel : associatedPanels)
+ for (AlignmentPanel associatedPanel : getAssociatedPanels())
{
AlignViewportI altViewport = associatedPanel
.getAlignViewport();
}
- /**
- * may or may not need an extra repaint on the alignment view (check what kira
- * does)
- */
+
@Override
public void showNodeSelectionOnAlign(final TreeNodeI node)
{
for (TreeNodeI childNode : childNodes)
{
- // childNode.getBranchData().setBranchColor(new BranchColor(Color.BLUE));
-
SequenceI matchingSequence = nodesBoundToSequences.get(childNode);
if (matchingSequence != null)
{
}
- /**
- * Refactored from TreeCanvas.
- *
- * @param sequence
- * of the node selected in the tree viewer.
- */
+
@Override
public void treeSelectionChanged(final SequenceI sequence)
{
}
@Override
- public void sortByTree_actionPerformed()// modify for Aptx
+ public void sortByTree_actionPerformed()
{
- // if (treeCanvas.applyToAllViews)
- // {
- // final ArrayList<CommandI> commands = new ArrayList<>();
- // for (AlignmentPanel ap : PaintRefresher
- // .getAssociatedPanels(parentAvport.getSequenceSetId()))
- // {
- // commands.add(sortAlignmentIn(ap.av.getAlignPanel()));
- // }
- // parentAvport.getAlignPanel().alignFrame.addHistoryItem(new CommandI()
- // {
- //
- // @Override
- // public void undoCommand(AlignmentI[] views)
- // {
- // for (CommandI tsort : commands)
- // {
- // tsort.undoCommand(views);
- // }
- // }
- //
- // @Override
- // public int getSize()
- // {
- // return commands.size();
- // }
- //
- // @Override
- // public String getDescription()
- // {
- // return "Tree Sort (many views)";
- // }
- //
- // @Override
- // public void doCommand(AlignmentI[] views)
- // {
- //
- // for (CommandI tsort : commands)
- // {
- // tsort.doCommand(views);
- // }
- // }
- // });
- // for (AlignmentPanel ap : PaintRefresher
- // .getAssociatedPanels(av.getSequenceSetId()))
- // {
- // // ensure all the alignFrames refresh their GI after adding an undo item
- // ap.alignFrame.updateEditMenuBar();
- // }
- // }
- // else
- // {
- // treeCanvas.ap.alignFrame
- // .addHistoryItem(sortAlignmentIn(treeCanvas.ap));
- // }
+ // if (applyToAllViews)
+
+ final ArrayList<CommandI> commands = new ArrayList<>();
+ for (AlignmentPanel ap : PaintRefresher
+ .getAssociatedPanels(parentAvport.getSequenceSetId()))
+ {
+ commands.add(sortAlignmentIn(ap.av.getAlignPanel()));
+ ap.alignFrame.addHistoryItem(new CommandI()
+ {
+
+ @Override
+ public void undoCommand(AlignmentI[] views)
+ {
+ for (CommandI tsort : commands)
+ {
+ tsort.undoCommand(views);
+ }
+ }
+
+ @Override
+ public int getSize()
+ {
+ return commands.size();
+ }
+
+ @Override
+ public String getDescription()
+ {
+ return "Tree Sort (many views)";
+ }
+
+ @Override
+ public void doCommand(AlignmentI[] views)
+ {
+
+ for (CommandI tsort : commands)
+ {
+ tsort.doCommand(views);
+ }
+ }
+ });
+
+ ap.alignFrame.updateEditMenuBar();
+ }
+ }
+ // else
+ // {
+ // alignPanel.alignFrame.addHistoryItem(sortAlignmentIn(alignPanel));
+ // }
+
- }
@Override
public CommandI sortAlignmentIn(AlignmentPanel ap)
{
- // TODO: move to alignment view controller
-
AlignmentViewport viewport = ap.av;
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
try
public AlignmentPanel[] getAssociatedPanels()
{
- return associatedPanels;
+ return PaintRefresher
+ .getAssociatedPanels(parentAvport.getSequenceSetId());
+ }
+
+ @Override
+ public Map<SequenceI, TreeNodeI> getAlignmentWithNodes()
+ {
+ return sequencesBoundToNodes;
}
- public void setAssociatedPanels(AlignmentPanel[] associatedPanels)
+ @Override
+ public Map<TreeNodeI, SequenceI> getNodesWithAlignment()
{
- this.associatedPanels = associatedPanels;
+ return nodesBoundToSequences;
}
+
}