package jalview.ext.treeviewer; import jalview.datamodel.SequenceI; import java.awt.Color; import java.util.List; /** * Interface for implementing a tree node, these nodes might -but do not have * to- be part of a {@link TreeI}. * * @author kjvanderheide * */ public interface TreeNodeI { public void addAsChild(TreeNodeI childNode); public List getAllDescendants(); /** * Returns only the immediate descendants of this node, so any nodes whose * parent is this node. * * @return */ public List getDirectChildren(); /** * Gets just the nodes downwards from this node that are external/leafs. * * @return */ public List getExternalDescendants(); public long getId(); public String getNodeName(); public SequenceI getSequence(); public float getXcoord(); public float getYcoord(); /** * * @return True if the node is internal, false if it's external (a leaf). */ public boolean isInternal(); public boolean isCollapsed(); public void setBranchColor(Color branchColor); public void setSequence(SequenceI seq); }