package jalview.ext.archaeopteryx;
+import jalview.analysis.AlignmentSorter;
import jalview.analysis.Conservation;
import jalview.api.AlignViewportI;
+import jalview.commands.CommandI;
+import jalview.commands.OrderCommand;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
public final class JalviewBinding
implements ExternalTreeViewerBindingI<PhylogenyNode>
{
+ private final MainFrame aptxFrame;
+
private org.forester.archaeopteryx.TreePanel treeView;
private AlignmentViewport parentAvport;
MessageManager.getString("label.tabs_detected_archaeopteryx"),
MessageManager.getString("label.problem_reading_tree_file"),
JvOptionPane.WARNING_MESSAGE);
- ;
+
}
// deal with/prohibit null values here as that will cause problems
+ aptxFrame = archaeopteryx;
parentAvport = jalviewAlignmentViewport;
sequencesBoundToNodes = alignMappedToNodes;
nodesBoundToSequences = nodesMappedToAlign;
ssm.addSelectionListener(this);
treeView.addMouseListener(this);
+
PaintRefresher.Register(treeView, parentAvport.getSequenceSetId());
associatedPanels = PaintRefresher
.getAssociatedPanels(parentAvport.getSequenceSetId());
- archaeopteryx.addInternalFrameListener(new InternalFrameAdapter()
+ aptxFrame.addInternalFrameListener(new InternalFrameAdapter()
{
@Override
public void internalFrameClosed(InternalFrameEvent e)
{
- AptxInit.getAllAptxFrames().remove(archaeopteryx);
+ AptxInit.getAllAptxFrames().remove(aptxFrame);
+ ssm.removeSelectionListener(JalviewBinding.this);
}
});
@Override
public void actionPerformed(ActionEvent e)
{
+ // aptxFrame.actionPerformed(e);
+
}
@Override
treeView.setFoundNodes0(
new HashSet<Long>(seqsel.getSequences().size()));
+
for (SequenceI selectedSequence : seqsel.getSequences())
{
PhylogenyNode matchingNode = sequencesBoundToNodes.get(selectedSequence);
if (!matchingNode.getBranchData().isHasBranchColor())
{
- Color foundNodesColour = treeView.getTreeColorSet()
- .getFoundColor0();
- matchingNode.getBranchData()
- .setBranchColor(new BranchColor(foundNodesColour));
+ // Color foundNodesColour = treeView.getTreeColorSet()
+ // .getFoundColor0();
+ // matchingNode.getBranchData()
+ // .setBranchColor(new BranchColor(foundNodesColour));
}
@Override
public void showMatchingChildSequences(final PhylogenyNode parentNode)
{
+ // redundancy here, Forester already iterates through tree to get all
+ // descendants
List<PhylogenyNode> childNodes = PhylogenyMethods
.getAllDescendants(parentNode);
}
}
- public void sortByTree_actionPerformed() {
+
+ @Override
+ public void sortByTree_actionPerformed()// modify for Aptx
+ {
+
+ // 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));
+ // }
+
+ }
+
+ public CommandI sortAlignmentIn(AlignmentPanel ap)
+ {
+ // TODO: move to alignment view controller
+
+ AlignmentViewport viewport = ap.av;
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+ try
+ {
+ AlignmentSorter.sortByTree(viewport.getAlignment(),
+ nodesBoundToSequences,
+ treeView.getPhylogeny());
+ CommandI undo;
+ undo = new OrderCommand("Tree Sort", oldOrder,
+ viewport.getAlignment());
+
+ ap.paintAlignment(true, false);
+ return undo;
+
+ } catch (Exception e)
+ {
+ System.err.println(e.getMessage());
+ }
+ return null;
}