JAL-1953 first pass of adding javadoc, some methods renamed
[jalview.git] / src / jalview / ext / archaeopteryx / JalviewBinding.java
index 54b9225..f0c2866 100644 (file)
@@ -5,17 +5,18 @@ import jalview.analysis.Conservation;
 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;
@@ -64,8 +65,6 @@ public final class JalviewBinding
 
   private final StructureSelectionManager ssm;
 
-  private AlignmentPanel[] associatedPanels;
-
   private Map<SequenceI, TreeNodeI> sequencesBoundToNodes;
 
   private Map<TreeNodeI, SequenceI> nodesBoundToSequences;
@@ -117,12 +116,11 @@ public final class JalviewBinding
     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()
     {
@@ -177,22 +175,21 @@ public final class JalviewBinding
 
     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 });
+        }
       }
     }
 
@@ -339,20 +336,20 @@ public final class JalviewBinding
       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)
   {
 
@@ -385,7 +382,7 @@ public final class JalviewBinding
    * @return
    */
   private List<TreeNodeI> colourNodesAboveThreshold(
-          List<TreeNodeI> nodeList, double threshold,
+          List<TreeNodeI> nodeList, float threshold,
           TreeNodeI node)
   {
 
@@ -438,8 +435,8 @@ public final class JalviewBinding
       }
     }
 
-
-        for (AlignmentPanel associatedPanel : associatedPanels) {
+    for (AlignmentPanel associatedPanel : getAssociatedPanels())
+    {
 
         associatedPanel.updateAnnotation();
 
@@ -489,7 +486,7 @@ public final class JalviewBinding
     treeGroup.setName("Tree Group " + nrTreeGroups);
     treeGroup.setIdColour(groupColour);
 
-    for (AlignmentPanel associatedPanel : associatedPanels)
+    for (AlignmentPanel associatedPanel : getAssociatedPanels())
     {
       AlignViewportI altViewport = associatedPanel
               .getAlignViewport();
@@ -528,10 +525,7 @@ public final class JalviewBinding
 
   }
 
-  /**
-   * may or may not need an extra repaint on the alignment view (check what kira
-   * does)
-   */
+
   @Override
   public void showNodeSelectionOnAlign(final TreeNodeI node)
   {
@@ -577,8 +571,6 @@ public final class JalviewBinding
 
     for (TreeNodeI childNode : childNodes)
     {
-      // childNode.getBranchData().setBranchColor(new BranchColor(Color.BLUE));
-
       SequenceI matchingSequence = nodesBoundToSequences.get(childNode);
       if (matchingSequence != null)
       {
@@ -595,12 +587,7 @@ public final class JalviewBinding
 
   }
 
-  /**
-   * Refactored from TreeCanvas.
-   * 
-   * @param sequence
-   *          of the node selected in the tree viewer.
-   */
+
   @Override
   public void treeSelectionChanged(final SequenceI sequence)
   {
@@ -621,71 +608,64 @@ public final class JalviewBinding
   }
 
   @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
@@ -741,14 +721,23 @@ public final class JalviewBinding
 
   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;
   }
 
+
 }