package org.phylowidget;
import java.util.List;
import org.andrewberman.ui.unsorted.Json;
import org.phylowidget.tree.PhyloNode;
import org.phylowidget.ui.JavascriptAccessibleMethods;
import processing.core.ExtendedPApplet;
import processing.core.PApplet;
public abstract class PWPublicMethods extends ExtendedPApplet implements JavascriptAccessibleMethods
{
private PhyloTree getTree_obj()
{
return (PhyloTree) PWPlatform.getInstance().getThisAppContext().trees().getTree();
}
private PhyloNode getCurNode()
{
return getTree_obj().getHoveredNode();
}
public double getHoveredBranchLength()
{
return getTree_obj().getBranchLength(getCurNode());
}
public double getHoveredDepthToRoot()
{
return getTree_obj().getDepthToRoot(getCurNode());
}
public double getHoveredDistanceToRoot()
{
return getTree_obj().getHeightToRoot(getCurNode());
}
public int getHoveredLeafCount()
{
return getTree_obj().getNumEnclosedLeaves(getCurNode());
}
public double getHoveredMaxTreeLength()
{
return getTree_obj().getMaxHeightToLeaf(getCurNode());
}
public String getHoveredNode()
{
PhyloNode n = getTree_obj().getHoveredNode();
if (n != null)
{
return n.getTree().getLabel(n);
} else
{
return "";
}
}
public int getHoveredNodeCount()
{
return getTree_obj().getAllNodes(getCurNode()).size();
}
public int getLeafCount()
{
return getTree_obj().getNumEnclosedLeaves(getTree_obj().getRoot());
}
public String[] getLeafNames()
{
List<PhyloNode> leaves = getTree_obj().getAllLeaves();
String[] leafNames = new String[leaves.size()];
for (int i=0; i < leaves.size(); i++)
{
leafNames[i] = getTree_obj().getLabel(leaves.get(i));
}
return leafNames;
}
public double getMaxTreeLength()
{
return getTree_obj().getMaxTreeLength();
}
public int getNodeCount()
{
return getTree_obj().getNodeCount();
}
public double getTotalTreeLength()
{
return getTree_obj().getTotalTreeLength();
}
public String getTree()
{
return getTreeNHX();
}
public String getTreeNewick()
{
return getTree_obj().getNewick();
}
public String getTreeNHX()
{
return getTree_obj().getNHX();
}
public String getTreeString()
{
return getTreeNHX();
}
public String getTreeNeXML()
{
return getTree_obj().getNeXML();
}
public String getNodeInfoJSON()
{
return Json.hashToJson(getCurNode().getNodeInfo());
}
public abstract String getUrlParameters();
public abstract String getClipboardString(); // This is implemented in PhyloWidget.java
public abstract void setClipboard(String clip); // This is implemented in PhyloWidget.java
public abstract void setMessage(String message); // This is implemented in PhyloWidget.java
public abstract void setTree(String tree); // This is implemented in PhyloWidget.java
public abstract void setAnnotation(String nodeLabel, String key, String value); // This is implemented in PhyloWidget.java
public abstract void setAnnotations(String nodeLabel, String annotationJson); // This is implemented in PhyloWidget.java
public abstract void transformTree(String url); // Defined in PhyloWidget.java. Requires the "full" version of PhyloWidget.
}