/*
* TreeDisplayPanel.java
*
* Copyright (c) 2002-2015 Alexei Drummond, Andrew Rambaut and Marc Suchard
*
* This file is part of BEAST.
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership and licensing.
*
* BEAST is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* BEAST is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with BEAST; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
*/
package dr.app.beauti.treespanel;
import dr.app.beauti.BeautiFrame;
import dr.app.pathogen.TemporalRooting;
import dr.evolution.tree.Tree;
import dr.app.gui.tree.JTreeDisplay;
import dr.app.gui.tree.SquareTreePainter;
import javax.swing.*;
import java.awt.*;
/**
* @author Andrew Rambaut
* @author Alexei Drummond
* @version $Id: PriorsPanel.java,v 1.9 2006/09/05 13:29:34 rambaut Exp $
*/
public class TreeDisplayPanel extends JPanel {
private Tree tree = null;
BeautiFrame frame = null;
JTabbedPane tabbedPane = new JTabbedPane();
JTreeDisplay treePanel;
JTreeDisplay scaledTreePanel;
// JChartPanel rootToTipPanel;
// JChart rootToTipChart;
public TreeDisplayPanel(BeautiFrame parent) {
super(new BorderLayout());
this.frame = parent;
treePanel = new JTreeDisplay(new SquareTreePainter());
tabbedPane.add("Starting Tree", treePanel);
// AR - have removed root-to-tip chart for now.
// rootToTipChart = new JChart(new LinearAxis(), new LinearAxis(Axis.AT_ZERO, Axis.AT_MINOR_TICK));
// rootToTipPanel = new JChartPanel(rootToTipChart, "", "time", "divergence");
// rootToTipPanel.setOpaque(false);
//
// tabbedPane.add("Root-to-tip", rootToTipPanel);
scaledTreePanel = new JTreeDisplay(new SquareTreePainter());
tabbedPane.add("Re-scaled tree", scaledTreePanel);
setOpaque(false);
add(tabbedPane, BorderLayout.CENTER);
}
public void setTree(Tree tree) {
this.tree = tree;
setupPanel();
}
private void setupPanel() {
if (tree != null) {
treePanel.setTree(tree);
TemporalRooting temporalRooting = new TemporalRooting(tree);
// Regression r = temporalRooting.getRootToTipRegression(tree);
//
// rootToTipChart.removeAllPlots();
// rootToTipChart.addPlot(new ScatterPlot(r.getXData(), r.getYData()));
// rootToTipChart.addPlot(new RegressionPlot(r));
// rootToTipChart.getXAxis().addRange(r.getXIntercept(), r.getXData().getMax());
scaledTreePanel.setTree(temporalRooting.adjustTreeToConstraints(tree, null));
} else {
treePanel.setTree(null);
// rootToTipChart.removeAllPlots();
scaledTreePanel.setTree(null);
}
repaint();
}
}