package jalview.ext.forester.io;
-import jalview.ext.archaeopteryx.ArchaeopteryxInit;
+import jalview.ext.archaeopteryx.AptxInit;
+import jalview.gui.AlignViewport;
+//import jalview.ext.treeviewer.ExternalTreeParserI;
import jalview.gui.Desktop;
import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.NewickFile;
import jalview.util.MessageManager;
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
+public class TreeParser // implements ExternalTreeParserI<MainFrame>
{
private final String filePath;
private final File file;
- public TreeParser(String treeFilePath)
+ 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(File treeFile) throws IOException
+ 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();
}
-
- public void loadTree()
+ public void loadTree(AlignViewport viewport)
{
- String[] AptxArgs = new String[] { "-c",
- "_aptx_jalview_configuration_file", filePath };
- MainFrame aptx = Archaeopteryx.main(AptxArgs);
- ArchaeopteryxInit.bindFrameToJalview(aptx);
-
+ NewickFile fin = null; // old tree
+ try
+ {
+ AptxInit.createInstancesFromFile(filePath, viewport);
+
+ fin = new NewickFile(filePath, DataSourceType.FILE);
+ viewport.setCurrentTree(viewport.getAlignPanel().alignFrame
+ .showNewickTree(fin, filePath).getTree());
+
+ } catch (Exception ex)
+ {
+ JvOptionPane.showMessageDialog(Desktop.desktop, ex.getMessage(),
+ MessageManager.getString("label.problem_reading_tree_file"),
+ JvOptionPane.WARNING_MESSAGE);
+ ex.printStackTrace();
+ }
+ if (fin != null && fin.hasWarningMessage())
+ {
+ JvOptionPane.showMessageDialog(Desktop.desktop,
+ fin.getWarningMessage(),
+ MessageManager
+ .getString("label.possible_problem_with_tree_file"),
+ JvOptionPane.WARNING_MESSAGE);
+ }
+ }
}
-}
-/**
- * Mostly refactored from Archaeopteryx.main() and
- * MainFrameApplication.readPhylogeniesFromFile()
- */
-// boolean nhx_or_nexus = false;
-// Configuration config = new Configuration(
-// "_aptx_jalview_configuration_file", false, false, false);
-// try
-// {
-// final PhylogenyParser p = ParserUtils.createParserDependingOnFileType(
-// file, config.isValidatePhyloXmlAgainstSchema());
+
//
-// if (p instanceof NHXParser)
+// @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;
-// final NHXParser nhx = (NHXParser) p;
-// nhx.setReplaceUnderscores(false);
-// nhx.setIgnoreQuotes(false);
-// nhx.setTaxonomyExtraction(config.getTaxonomyExtraction());
// }
-// else if (p instanceof NexusPhylogeniesParser)
-// {
+// else if ( parser instanceof NHXParser ) {
// nhx_or_nexus = true;
-// final NexusPhylogeniesParser nex = (NexusPhylogeniesParser) p;
-// nex.setReplaceUnderscores(config.isReplaceUnderscoresInNhParsing());
-// nex.setIgnoreQuotes(false);
// }
-// else if (p instanceof PhyloXmlParser)
-// {
-//
+// if ( _mainpanel.getCurrentTreePanel() != null ) {
+// _mainpanel.getCurrentTreePanel().setWaitCursor();
// }
-// Phylogeny[] phylogenies = PhylogenyMethods.readPhylogenies(p, file);
-// if (nhx_or_nexus
-// && config.isInternalNumberAreConfidenceForNhParsing())
-// {
-// for (final Phylogeny phy : phylogenies)
-// {
-// PhylogenyMethods.transferInternalNodeNamesToConfidence(phy, "");
-//
+// 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 (IOException e)
-// {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
+// 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();
+// }
+//
+// }
+//
+//
+//
+//
+//
+//