JAL-2794 disabled branch colors on selection for now
[jalview.git] / src / jalview / ext / archaeopteryx / JalviewBinding.java
index b4bcd61..41d18f5 100644 (file)
@@ -1,8 +1,10 @@
 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;
@@ -56,6 +58,8 @@ import org.forester.phylogeny.data.BranchColor;
 public final class JalviewBinding
         implements ExternalTreeViewerBindingI<PhylogenyNode>
 {
+  private final MainFrame aptxFrame;
+
   private org.forester.archaeopteryx.TreePanel treeView;
 
   private AlignmentViewport parentAvport;
@@ -105,10 +109,11 @@ public final class JalviewBinding
               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;
@@ -119,17 +124,19 @@ public final class JalviewBinding
     
     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);
       }
 
     });
@@ -170,6 +177,8 @@ public final class JalviewBinding
   @Override
   public void actionPerformed(ActionEvent e)
   {
+    // aptxFrame.actionPerformed(e);
+
   }
 
   @Override
@@ -243,6 +252,7 @@ public final class JalviewBinding
       treeView.setFoundNodes0(
               new HashSet<Long>(seqsel.getSequences().size()));
 
+
       for (SequenceI selectedSequence : seqsel.getSequences())
       {
         PhylogenyNode matchingNode = sequencesBoundToNodes.get(selectedSequence);
@@ -253,10 +263,10 @@ public final class JalviewBinding
 
           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));
 
           }
 
@@ -525,6 +535,8 @@ public final class JalviewBinding
   @Override
   public void showMatchingChildSequences(final PhylogenyNode parentNode)
   {
+    // redundancy here, Forester already iterates through tree to get all
+    // descendants
     List<PhylogenyNode> childNodes = PhylogenyMethods
             .getAllDescendants(parentNode);
 
@@ -577,16 +589,16 @@ public final class JalviewBinding
   @Override
   public void sortByTree_actionPerformed()// modify for Aptx
   {
-    //
+
     // if (treeCanvas.applyToAllViews)
     // {
     // final ArrayList<CommandI> commands = new ArrayList<>();
     // for (AlignmentPanel ap : PaintRefresher
-    // .getAssociatedPanels(av.getSequenceSetId()))
+    // .getAssociatedPanels(parentAvport.getSequenceSetId()))
     // {
     // commands.add(sortAlignmentIn(ap.av.getAlignPanel()));
     // }
-    // av.getAlignPanel().alignFrame.addHistoryItem(new CommandI()
+    // parentAvport.getAlignPanel().alignFrame.addHistoryItem(new CommandI()
     // {
     //
     // @Override
@@ -637,16 +649,28 @@ public final class JalviewBinding
 
   public CommandI sortAlignmentIn(AlignmentPanel ap)
   {
-    // // TODO: move to alignment view controller
-    // AlignmentViewport viewport = ap.av;
-    // SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
-    // AlignmentSorter.sortByTree(viewport.getAlignment(), tree);
-    // CommandI undo;
-    // undo = new OrderCommand("Tree Sort", oldOrder, viewport.getAlignment());
-    //
-    // ap.paintAlignment(true, false);
-    // return undo;
+    // 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;
+
   }