/*...............................................................................................................*/
  public void setTableAndTaxa(MesquiteTable table, Taxa taxa) {
    // if (this.data !=null)
    //	this.data.removeListener(this);
    if (taxa != this.taxa) observedStates = null;
    this.taxa = taxa;
    matrixSourceTask.initialize(taxa);

    this.table = table;

    doCalcs();
  }
 /**
  * Called to provoke any necessary initialization. This helps prevent the module's intialization
  * queries to the user from happening at inopportune times (e.g., while a long chart calculation
  * is in mid-progress)
  */
 public void initialize(Taxa taxa) {
   currentTaxa = taxa;
   matrixSourceTask.initialize(currentTaxa);
 }