JAL-2805 reorganized code, tree building goes through AptxInit for now
authorkjvdheide <kjvanderheide@dundee.ac.uk>
Fri, 17 Nov 2017 14:44:46 +0000 (14:44 +0000)
committerkjvdheide <kjvanderheide@dundee.ac.uk>
Fri, 17 Nov 2017 14:44:46 +0000 (14:44 +0000)
src/jalview/ext/archaeopteryx/AptxInit.java
src/jalview/ext/forester/io/TreeParser.java
src/jalview/ext/treeviewer/ExternalTreeParserI.java
src/jalview/gui/AlignFrame.java

index ce34573..2363e4c 100644 (file)
@@ -68,10 +68,30 @@ public final class AptxInit
     bindNodesToJalviewSequences(aptxApp, calculatedTree.getAvport(),
             aptxTreeBuilder.getAlignmentBoundNodes(),
             aptxTreeBuilder.getNodesBoundAlignment());
+
     return bindFrameToJalview(aptxApp);
 
   }
 
+  public static MainFrame createInstanceFromFile(String filePath,
+          AlignmentViewport viewport)
+  {
+    String[] AptxArgs = new String[] { "-c",
+        "_aptx_jalview_configuration_file", filePath };
+    MainFrame aptxApp = Archaeopteryx.main(AptxArgs);
+
+    LoadedTreeAssociation bindAptxNodes = new LoadedTreeAssociation(
+            viewport.getAlignment().getSequencesArray(),
+            aptxApp.getMainPanel().getCurrentTreePanel().getPhylogeny());
+
+    bindAptxNodes.associateLeavesToSequences();
+
+    bindNodesToJalviewSequences(aptxApp, viewport,
+            bindAptxNodes.getAlignmentWithNodes(),
+            bindAptxNodes.getNodesWithAlignment());
+
+    return bindFrameToJalview(aptxApp);
+  }
 
 
 
@@ -83,6 +103,7 @@ public final class AptxInit
     return aptxApp;
   }
 
+
   public static ExternalTreeViewerBindingI<?> bindNodesToJalviewSequences(
           final MainFrame aptxApp,
           final AlignmentViewport jalviewAlignViewport,
index 54f79bc..b2f36b8 100644 (file)
-package jalview.ext.forester.io;
-
-import jalview.ext.archaeopteryx.AptxInit;
-import jalview.ext.archaeopteryx.JalviewBinding;
-import jalview.ext.archaeopteryx.LoadedTreeAssociation;
-import jalview.ext.treeviewer.ExternalTreeParserI;
-import jalview.gui.Desktop;
-import jalview.gui.JvOptionPane;
-import jalview.util.MessageManager;
-import jalview.viewmodel.AlignmentViewport;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.forester.archaeopteryx.Archaeopteryx;
-import org.forester.archaeopteryx.MainFrame;
-import org.forester.util.ForesterUtil;
-
-public class TreeParser implements ExternalTreeParserI<MainFrame>
-{
-  private final String filePath;
-
-  private final File file;
-
-  public TreeParser(final String treeFilePath)
-  {
-    final String possibleError = ForesterUtil.isReadableFile(treeFilePath);
-    if (possibleError != null)
-    {
-      JvOptionPane.showMessageDialog(Desktop.desktop, possibleError,
-              MessageManager.getString("label.problem_reading_tree_file"),
-              JvOptionPane.WARNING_MESSAGE);
-
-    }
-    filePath = treeFilePath;
-    file = new File(filePath);
-
-
-  }
-
-  public TreeParser(final File treeFile) throws IOException
-  {
-    final String possibleError = ForesterUtil.isReadableFile(treeFile);
-    if (possibleError != null)
-    {
-      JvOptionPane.showMessageDialog(Desktop.desktop, possibleError,
-              MessageManager.getString("label.problem_reading_tree_file"),
-              JvOptionPane.WARNING_MESSAGE);
-
-    }
-    file = treeFile;
-    filePath = file.getCanonicalPath();
-  }
-
-  @Override
-  public MainFrame loadTreeFile(AlignmentViewport viewport)
-  {
-    String[] AptxArgs = new String[] { "-c",
-        "_aptx_jalview_configuration_file", filePath };
-    MainFrame aptx = Archaeopteryx.main(AptxArgs);
-
-    LoadedTreeAssociation bindAptxNodes = new LoadedTreeAssociation(
-            viewport.getAlignment().getSequencesArray(),
-            aptx.getMainPanel().getCurrentTreePanel().getPhylogeny());
-
-    bindAptxNodes.associateLeavesToSequences();
-
-    new JalviewBinding(aptx, viewport, bindAptxNodes.getAlignmentWithNodes(),
-            bindAptxNodes.getNodesWithAlignment());
-
-    AptxInit.bindFrameToJalview(aptx);
-
-    return aptx;
-
-
-  }
-  //
-  // void readPhylogeniesFromURL() {
-  // URL url = null;
-  // Phylogeny[] phys = null;
-  // final String message = "Please enter a complete URL, for example
-  // \"http://purl.org/phylo/treebase/phylows/study/TB2:S15480?format=nexus\"";
-  // final String url_string = JOptionPane
-  // .showInputDialog( this,
-  // message,
-  // "Use URL/webservice to obtain a phylogeny",
-  // JOptionPane.QUESTION_MESSAGE );
-  // boolean nhx_or_nexus = false;
-  // if ( ( url_string != null ) && ( url_string.length() > 0 ) ) {
-  // try {
-  // url = new URL( url_string );
-  // PhylogenyParser parser = null;
-  // if ( url.getHost().toLowerCase().indexOf( "tolweb" ) >= 0 ) {
-  // parser = new TolParser();
-  // }
-  // else {
-  // parser = ParserUtils
-  // .createParserDependingOnUrlContents( url,
-  // getConfiguration().isValidatePhyloXmlAgainstSchema() );
-  // }
-  // if ( parser instanceof NexusPhylogeniesParser ) {
-  // nhx_or_nexus = true;
-  // }
-  // else if ( parser instanceof NHXParser ) {
-  // nhx_or_nexus = true;
-  // }
-  // if ( _mainpanel.getCurrentTreePanel() != null ) {
-  // _mainpanel.getCurrentTreePanel().setWaitCursor();
-  // }
-  // else {
-  // _mainpanel.setWaitCursor();
-  // }
-  // final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
-  // phys = factory.create( url.openStream(), parser );
-  // }
-  // catch ( final MalformedURLException e ) {
-  // JOptionPane.showMessageDialog( this,
-  // "Malformed URL: " + url + "\n" + e.getLocalizedMessage(),
-  // "Malformed URL",
-  // JOptionPane.ERROR_MESSAGE );
-  // }
-  // catch ( final IOException e ) {
-  // JOptionPane.showMessageDialog( this,
-  // "Could not read from " + url + "\n"
-  // + ForesterUtil.wordWrap( e.getLocalizedMessage(), 80 ),
-  // "Failed to read URL",
-  // JOptionPane.ERROR_MESSAGE );
-  // }
-  // catch ( final Exception e ) {
-  // JOptionPane.showMessageDialog( this,
-  // ForesterUtil.wordWrap( e.getLocalizedMessage(), 80 ),
-  // "Unexpected Exception",
-  // JOptionPane.ERROR_MESSAGE );
-  // }
-  // finally {
-  // if ( _mainpanel.getCurrentTreePanel() != null ) {
-  // _mainpanel.getCurrentTreePanel().setArrowCursor();
-  // }
-  // else {
-  // _mainpanel.setArrowCursor();
-  // }
-  // }
-  // if ( ( phys != null ) && ( phys.length > 0 ) ) {
-  // if ( nhx_or_nexus &&
-  // getOptions().isInternalNumberAreConfidenceForNhParsing() ) {
-  // for( final Phylogeny phy : phys ) {
-  // PhylogenyMethods.transferInternalNodeNamesToConfidence( phy, "" );
-  // }
-  // }
-  // AptxUtil.addPhylogeniesToTabs( phys,
-  // new File( url.getFile() ).getName(),
-  // new File( url.getFile() ).toString(),
-  // getConfiguration(),
-  // getMainPanel() );
-  // _mainpanel.getControlPanel().showWhole();
-  // }
-  // }
-  // activateSaveAllIfNeeded();
-  // System.gc();
-  // }
-
-}
-
-
-
-
-
-
+// package jalview.ext.forester.io;
+//
+// import jalview.ext.archaeopteryx.AptxInit;
+// import jalview.ext.archaeopteryx.JalviewBinding;
+// import jalview.ext.archaeopteryx.LoadedTreeAssociation;
+// import jalview.ext.treeviewer.ExternalTreeParserI;
+// import jalview.gui.Desktop;
+// import jalview.gui.JvOptionPane;
+// import jalview.util.MessageManager;
+// import jalview.viewmodel.AlignmentViewport;
+//
+// import java.io.File;
+// import java.io.IOException;
+//
+// import org.forester.archaeopteryx.Archaeopteryx;
+// import org.forester.archaeopteryx.MainFrame;
+// import org.forester.util.ForesterUtil;
+//
+// public class TreeParser implements ExternalTreeParserI<MainFrame>
+// {
+// private final String filePath;
+//
+// private final File file;
+//
+// public TreeParser(final String treeFilePath)
+// {
+// final String possibleError = ForesterUtil.isReadableFile(treeFilePath);
+// if (possibleError != null)
+// {
+// JvOptionPane.showMessageDialog(Desktop.desktop, possibleError,
+// MessageManager.getString("label.problem_reading_tree_file"),
+// JvOptionPane.WARNING_MESSAGE);
+//
+// }
+// filePath = treeFilePath;
+// file = new File(filePath);
+//
+//
+// }
+//
+// public TreeParser(final File treeFile) throws IOException
+// {
+// final String possibleError = ForesterUtil.isReadableFile(treeFile);
+// if (possibleError != null)
+// {
+// JvOptionPane.showMessageDialog(Desktop.desktop, possibleError,
+// MessageManager.getString("label.problem_reading_tree_file"),
+// JvOptionPane.WARNING_MESSAGE);
+//
+// }
+// file = treeFile;
+// filePath = file.getCanonicalPath();
+// }
+//
+// @Override
+// public MainFrame loadTreeFile(AlignmentViewport viewport)
+// {
+// String[] AptxArgs = new String[] { "-c",
+// "_aptx_jalview_configuration_file", filePath };
+// MainFrame aptx = Archaeopteryx.main(AptxArgs);
+//
+// LoadedTreeAssociation bindAptxNodes = new LoadedTreeAssociation(
+// viewport.getAlignment().getSequencesArray(),
+// aptx.getMainPanel().getCurrentTreePanel().getPhylogeny());
+//
+// bindAptxNodes.associateLeavesToSequences();
+//
+// new JalviewBinding(aptx, viewport, bindAptxNodes.getAlignmentWithNodes(),
+// bindAptxNodes.getNodesWithAlignment());
+//
+// AptxInit.bindFrameToJalview(aptx);
+//
+// return aptx;
+//
+//
+// }
+// //
+// // void readPhylogeniesFromURL() {
+// // URL url = null;
+// // Phylogeny[] phys = null;
+// // final String message = "Please enter a complete URL, for example
+// // \"http://purl.org/phylo/treebase/phylows/study/TB2:S15480?format=nexus\"";
+// // final String url_string = JOptionPane
+// // .showInputDialog( this,
+// // message,
+// // "Use URL/webservice to obtain a phylogeny",
+// // JOptionPane.QUESTION_MESSAGE );
+// // boolean nhx_or_nexus = false;
+// // if ( ( url_string != null ) && ( url_string.length() > 0 ) ) {
+// // try {
+// // url = new URL( url_string );
+// // PhylogenyParser parser = null;
+// // if ( url.getHost().toLowerCase().indexOf( "tolweb" ) >= 0 ) {
+// // parser = new TolParser();
+// // }
+// // else {
+// // parser = ParserUtils
+// // .createParserDependingOnUrlContents( url,
+// // getConfiguration().isValidatePhyloXmlAgainstSchema() );
+// // }
+// // if ( parser instanceof NexusPhylogeniesParser ) {
+// // nhx_or_nexus = true;
+// // }
+// // else if ( parser instanceof NHXParser ) {
+// // nhx_or_nexus = true;
+// // }
+// // if ( _mainpanel.getCurrentTreePanel() != null ) {
+// // _mainpanel.getCurrentTreePanel().setWaitCursor();
+// // }
+// // else {
+// // _mainpanel.setWaitCursor();
+// // }
+// // final PhylogenyFactory factory =
+// ParserBasedPhylogenyFactory.getInstance();
+// // phys = factory.create( url.openStream(), parser );
+// // }
+// // catch ( final MalformedURLException e ) {
+// // JOptionPane.showMessageDialog( this,
+// // "Malformed URL: " + url + "\n" + e.getLocalizedMessage(),
+// // "Malformed URL",
+// // JOptionPane.ERROR_MESSAGE );
+// // }
+// // catch ( final IOException e ) {
+// // JOptionPane.showMessageDialog( this,
+// // "Could not read from " + url + "\n"
+// // + ForesterUtil.wordWrap( e.getLocalizedMessage(), 80 ),
+// // "Failed to read URL",
+// // JOptionPane.ERROR_MESSAGE );
+// // }
+// // catch ( final Exception e ) {
+// // JOptionPane.showMessageDialog( this,
+// // ForesterUtil.wordWrap( e.getLocalizedMessage(), 80 ),
+// // "Unexpected Exception",
+// // JOptionPane.ERROR_MESSAGE );
+// // }
+// // finally {
+// // if ( _mainpanel.getCurrentTreePanel() != null ) {
+// // _mainpanel.getCurrentTreePanel().setArrowCursor();
+// // }
+// // else {
+// // _mainpanel.setArrowCursor();
+// // }
+// // }
+// // if ( ( phys != null ) && ( phys.length > 0 ) ) {
+// // if ( nhx_or_nexus &&
+// // getOptions().isInternalNumberAreConfidenceForNhParsing() ) {
+// // for( final Phylogeny phy : phys ) {
+// // PhylogenyMethods.transferInternalNodeNamesToConfidence( phy, "" );
+// // }
+// // }
+// // AptxUtil.addPhylogeniesToTabs( phys,
+// // new File( url.getFile() ).getName(),
+// // new File( url.getFile() ).toString(),
+// // getConfiguration(),
+// // getMainPanel() );
+// // _mainpanel.getControlPanel().showWhole();
+// // }
+// // }
+// // activateSaveAllIfNeeded();
+// // System.gc();
+// // }
+//
+// }
+//
+//
+//
+//
+//
+//
index defd744..fb7227f 100644 (file)
@@ -1,18 +1,21 @@
-package jalview.ext.treeviewer;
-
-import jalview.viewmodel.AlignmentViewport;
-
-import javax.swing.JInternalFrame;
-
-/**
- * Interface for loading in existing trees to an external tree viewer.
- * 
- * @author kjvanderheide
- *
- * @param <F>
- *          Frame of the tree viewer.
- */
-public interface ExternalTreeParserI<F extends JInternalFrame>
-{
-  public F loadTreeFile(AlignmentViewport viewport);
-}
+// package jalview.ext.treeviewer;
+//
+// import jalview.viewmodel.AlignmentViewport;
+//
+// import javax.swing.JInternalFrame;
+//
+/// **
+// * Interface for loading in existing trees to an external tree viewer.
+// *
+// * @author kjvanderheide
+// *
+// * @param <F>
+// * Frame of the tree viewer.
+// */
+// public interface ExternalTreeParserI<F extends JInternalFrame>
+// {
+// public void loadTreeFile(AlignmentViewport viewport);
+//
+// public void loadTreeUrl(AlignmentViewport viewport);
+//
+// }
index 71f240b..b9bf23e 100644 (file)
@@ -60,9 +60,8 @@ import jalview.datamodel.SeqCigar;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.ext.archaeopteryx.AptxInit;
 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,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       NewickFile fin = null;
       try
       {
-        ExternalTreeParserI<?> treeParser = new TreeParser(
-                filePath);
-        treeParser.loadTreeFile(viewport);
+        AptxInit.createInstanceFromFile(filePath, getViewport());