CompEvol / BeastFX

GUIs for BEAST using Java FX to make things more pretty.
GNU Lesser General Public License v2.1
4 stars 2 forks source link

Modularise TreeAnnotator #71

Closed rbouckaert closed 9 months ago

rbouckaert commented 1 year ago

TreeAnnotator has a number of options for setting the topology and for setting internal node heights. Adding another method for either of these requires adding code to BeastFX, so cannot be done in packages. Introducing interfaces for both of these and providing them as services in packages solves this problem.

In particular, it would be good to have an interface, say TopologySettingService that has two methods setTopology() for determining a topology given a set of trees and getName() for returning the name of the method so it can be used in the user interface.

Further, have another interface, say NodeHeightSettingService similarly with two methods setNodeHeights() to set node heights of a tree and getName() for the user interface.

rbouckaert commented 1 year ago

Perhaps something for annotating branches could be useful too.