Merge branch 'kjvdh/features/PhylogenyViewer' of
authorkjvdheide <kjvanderheide@dundee.ac.uk>
Fri, 17 Nov 2017 13:34:22 +0000 (13:34 +0000)
committerkjvdheide <kjvanderheide@dundee.ac.uk>
Fri, 17 Nov 2017 13:34:22 +0000 (13:34 +0000)
https://source.jalview.org/git/jalview.git into
kjvdh/features/PhylogenyViewer

Conflicts:
src/jalview/ext/archaeopteryx/AptxBinding.java
src/jalview/ext/forester/io/ExternalTreeParserI.java
src/jalview/ext/forester/io/ForesterTreeParser.java

15 files changed:
1  2 
_aptx_jalview_configuration_file.txt
forester
src/jalview/ext/archaeopteryx/Aptx.java
src/jalview/ext/archaeopteryx/AptxInit.java
src/jalview/ext/archaeopteryx/AptxTreeBuilder.java
src/jalview/ext/archaeopteryx/AptxTreePanel.java
src/jalview/ext/archaeopteryx/JalviewBinding.java
src/jalview/ext/archaeopteryx/LoadedTreeAssociation.java
src/jalview/ext/forester/io/TreeParser.java
src/jalview/ext/treeviewer/ExternalTreeParserI.java
src/jalview/ext/treeviewer/ExternalTreeViewerI.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/CalculationChooser.java
test/jalview/ext/archaeopteryx/AptxJalviewSequenceTreeTest.java
test/jalview/ext/archaeopteryx/AptxPhylogenyTreeTest.java

@@@ -266,7 -266,7 +266,7 @@@ click_to: select_nodes             disp
  click_to: get_ext_descendents_data display
  
  #   Default click-to option (any of the above if set to "display")
--default_click_to: display_node_data
++default_click_to: select_nodes
  
  
  
@@@ -283,8 -283,8 +283,8 @@@ display_color: branc
  display_color: node_box                   0x000000
  display_color: collapsed                  0x000000
  display_color: matching_a                 0xCC6600
--display_color: matching_b                 0x0000CC
--display_color: matching_a_and_b           0xCC70CC
++display_color: matching_b                 0xCC70CC
++display_color: matching_a_and_b           0x0000CC
  display_color: duplication                0xFF00FF
  display_color: speciation                 0xFFFF00
  display_color: duplication_or_specation   0xFFAA20
diff --cc forester
+++ b/forester
@@@ -1,1 -1,1 +1,1 @@@
--Subproject commit b977efb66f2d0b539bd433e80762737925035edc
++Subproject commit eb22dac14771c467104f57362e3a624d0140f897
index 0000000,0000000..640dd31
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++package jalview.ext.archaeopteryx;
++
++import jalview.ext.treeviewer.ExternalTreeViewerI;
++
++import org.forester.archaeopteryx.MainFrame;
++
++public class Aptx implements ExternalTreeViewerI
++{
++  private final MainFrame aptxApp;
++
++  public Aptx(MainFrame aptx)
++  {
++    aptxApp = aptx;
++
++
++  }
++}
@@@ -22,7 -20,7 +22,7 @@@ import org.forester.phylogeny.Phylogeny
   * @author kjvanderheide
   *
   */
--public final class ArchaeopteryxInit
++public final class AptxInit
  {
    /**
     * Test method, should generally not be used as it does not bind the tree to
@@@ -56,7 -54,7 +56,7 @@@
    public static MainFrame createInstance(
            final TreeBuilder calculatedTree) // very dense method, to be split up
    {
--    ExternalTreeBuilderI<Phylogeny, PhylogenyNode> aptxTreeBuilder = new ArchaeopteryxTreeBuilder(
++    ExternalTreeBuilderI<Phylogeny, PhylogenyNode> aptxTreeBuilder = new AptxTreeBuilder(
              calculatedTree);
  
      Phylogeny aptxTree = aptxTreeBuilder.buildTree();
@@@ -99,6 -97,6 +99,8 @@@
      int width = 400;
      int height = 550;
      aptxApp.setMinimumSize(new Dimension(width, height));
++    // aptxApp.setFont(Desktop.instance.getFont());
++    // aptxApp.getMainPanel().setFont(Desktop.instance.getFont());
  
      Desktop.addInternalFrame(aptxApp, "Archaeopteryx Tree View", true,
              width, height, true, true);
@@@ -26,7 -25,7 +26,7 @@@ import org.forester.phylogeny.data.Sequ
   * @author kjvanderheide
   *
   */
--public class ArchaeopteryxTreeBuilder
++public class AptxTreeBuilder
          implements ExternalTreeBuilderI<Phylogeny, PhylogenyNode>
  {
    protected final SequenceI[] sequences;
@@@ -45,7 -44,7 +45,7 @@@
  
    private final Map<PhylogenyNode, SequenceI> nodesWithAlignment;
  
--  public ArchaeopteryxTreeBuilder(final TreeBuilder calculatedTree)
++  public AptxTreeBuilder(final TreeBuilder calculatedTree)
    {
      jalviewTree = calculatedTree;
      sequences = jalviewTree.getSequences();
index 0000000,0000000..631ff15
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++package jalview.ext.archaeopteryx;
++
++import jalview.ext.treeviewer.ExternalTreePanelI;
++
++public class AptxTreePanel implements ExternalTreePanelI
++{
++  private final org.forester.archaeopteryx.TreePanel treeView;
++
++  public AptxTreePanel(org.forester.archaeopteryx.TreePanel aptxTreePanel)
++  {
++    treeView = aptxTreePanel;
++
++  }
++}
@@@ -178,12 -177,11 +178,12 @@@ public final class JalviewBindin
    @Override
    public void showMatchingChildSequences(final PhylogenyNode parentNode)
    {
--    final List<PhylogenyNode> childNodes = PhylogenyMethods
++    List<PhylogenyNode> childNodes = PhylogenyMethods
              .getAllDescendants(parentNode);
  
      for (PhylogenyNode childNode : childNodes)
      {
++
        SequenceI matchingSequence = nodesBoundToSequences.get(childNode);
        if (matchingSequence != null)
        {
    {
      this.parentAvport = parentAvport;
    }
--
+   // av.setCurrentTree(tree);
+   //
+   // /*
+   // * isPopupTrigger is set for mousePressed (Mac)
+   // * or mouseReleased (Windows)
+   // */
+   // if (e.isPopupTrigger())
+   // {
+   // if (highlightNode != null)
+   // {
+   // chooseSubtreeColour();
+   // }
+   // return;
+   // }
+   //
+   // /*
+   // * defer right-click handling on Windows to
+   // * mouseClicked; note isRightMouseButton
+   // * also matches Cmd-click on Mac which should do
+   // * nothing here
+   // */
+   // if (SwingUtilities.isRightMouseButton(e))
+   // {
+   // return;
+   // }
+   //
+   // int x = e.getX();
+   // int y = e.getY();
+   //
+   // Object ob = findElement(x, y);
+   //
+   // if (ob instanceof SequenceI)
+   // {
+   // treeSelectionChanged((Sequence) ob);
+   // PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
+   // repaint();
+   // av.sendSelection();
+   // return;
+   // }
+   // else if (!(ob instanceof SequenceNode))
+   // {
+   // // Find threshold
+   // if (tree.getMaxHeight() != 0)
+   // {
+   // threshold = (float) (x - offx)
+   // / (float) (getWidth() - labelLength - (2 * offx));
+   //
+   // List<SequenceNode> groups = tree.groupNodes(threshold);
+   // setColor(tree.getTopNode(), Color.black);
+   //
+   // 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 (aps[a].av.getCodingComplement() != null)
+   // {
+   // aps[a].av.getCodingComplement().setSelectionGroup(null);
+   // aps[a].av.getCodingComplement().getAlignment()
+   // .deleteAllGroups();
+   // aps[a].av.getCodingComplement().clearSequenceColours();
+   // }
+   // }
+   // colourGroups(groups);
+   // }
+   //
+   // PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
+   // repaint();
+   // }
 -
  }
  
  
@@@ -79,6 -77,6 +79,8 @@@ public class LoadedTreeAssociatio
  
    }
  
++
++
    public Map<SequenceI, PhylogenyNode> getAlignmentWithNodes()
    {
      return alignmentWithNodes;
@@@ -1,9 -1,8 +1,9 @@@
  package jalview.ext.forester.io;
  
 -import jalview.ext.archaeopteryx.AptxBinding;
 -import jalview.ext.archaeopteryx.AptxNodeAssociation;
 -import jalview.ext.archaeopteryx.ArchaeopteryxInit;
++import jalview.ext.archaeopteryx.AptxInit;
 +import jalview.ext.archaeopteryx.JalviewBinding;
 +import jalview.ext.archaeopteryx.LoadedTreeAssociation;
- import jalview.ext.archaeopteryx.ArchaeopteryxInit;
 +import jalview.ext.treeviewer.ExternalTreeParserI;
  import jalview.gui.Desktop;
  import jalview.gui.JvOptionPane;
  import jalview.util.MessageManager;
@@@ -64,10 -63,10 +64,11 @@@ public class TreeParser implements Exte
              aptx.getMainPanel().getCurrentTreePanel().getPhylogeny());
  
      bindAptxNodes.associateLeavesToSequences();
 -    new AptxBinding(aptx, viewport, bindAptxNodes.getAlignmentWithNodes(),
++
 +    new JalviewBinding(aptx, viewport, bindAptxNodes.getAlignmentWithNodes(),
              bindAptxNodes.getNodesWithAlignment());
  
--    ArchaeopteryxInit.bindFrameToJalview(aptx);
++    AptxInit.bindFrameToJalview(aptx);
  
      return aptx;
  
index 0000000,0000000..20c47f6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++package jalview.ext.treeviewer;
++
++public interface ExternalTreeViewerI
++{
++
++}
@@@ -60,9 -60,9 +60,9 @@@ import jalview.datamodel.SeqCigar
  import jalview.datamodel.Sequence;
  import jalview.datamodel.SequenceGroup;
  import jalview.datamodel.SequenceI;
- import jalview.ext.forester.io.TreeParser;
 -import jalview.ext.forester.io.ExternalTreeParserI;
 -import jalview.ext.forester.io.ForesterTreeParser;
  import jalview.ext.forester.io.SupportedTreeFileFilter;
++import jalview.ext.forester.io.TreeParser;
 +import jalview.ext.treeviewer.ExternalTreeParserI;
  import jalview.gui.ColourMenuHelper.ColourChangeListener;
  import jalview.gui.ViewSelectionMenu.ViewSetProvider;
  import jalview.io.AlignmentProperties;
@@@ -3904,9 -3903,9 +3904,9 @@@ public class AlignFrame extends GAlignF
        NewickFile fin = null;
        try
        {
 -        ExternalTreeParserI<?> treeParser = new ForesterTreeParser(
 +        ExternalTreeParserI<?> treeParser = new TreeParser(
                  filePath);
-         treeParser.loadTree(viewport);
+         treeParser.loadTreeFile(viewport);
  
  
  
@@@ -28,7 -28,7 +28,7 @@@ import jalview.analysis.scoremodels.Sim
  import jalview.api.analysis.ScoreModelI;
  import jalview.api.analysis.SimilarityParamsI;
  import jalview.datamodel.SequenceGroup;
--import jalview.ext.archaeopteryx.ArchaeopteryxInit;
++import jalview.ext.archaeopteryx.AptxInit;
  import jalview.util.MessageManager;
  
  import java.awt.BorderLayout;
@@@ -497,7 -497,7 +497,7 @@@ public class CalculationChooser extend
              substitutionMatrix, params);
      TreeBuilder calculatedTree = treeCalculator.makeTree(af.getViewport());
  
--    ArchaeopteryxInit.createInstance(calculatedTree);
++    AptxInit.createInstance(calculatedTree);
  
      TreeModel tree = new TreeModel(calculatedTree);
      openTreePanel(tree, treeAlgo, substitutionMatrix);
@@@ -60,7 -60,7 +60,7 @@@ public class AptxJalviewSequenceTreeTes
    @BeforeClass(dependsOnMethods = { "setUpTree" })
    public void createTreeView()
    {
--    treeView = ArchaeopteryxInit.createInstance(jalviewTree);
++    treeView = AptxInit.createInstance(jalviewTree);
      aptx = (MainFrame) treeView; // still pretty ugly
  
      treePanel = aptx.getMainPanel().getCurrentTreePanel();
@@@ -61,7 -61,7 +61,7 @@@ public class AptxPhylogenyTreeTest exte
    @BeforeClass(dependsOnMethods = { "setUpJalview", "setUpTree" })
    public void createTreeView()
    {
--    treeView = ArchaeopteryxInit.createUnboundInstance(inputTree);
++    treeView = AptxInit.createUnboundInstance(inputTree);
      aptx = (MainFrame) treeView; // pretty ugly
      treePanel = aptx.getMainPanel().getCurrentTreePanel();
      tree = treePanel.getPhylogeny();