showUnconserved = jalview.bin.Cache.getDefault("SHOW_UNCONSERVED",
false);
sortByTree = jalview.bin.Cache.getDefault("SORT_BY_TREE", false);
+ followSelection = jalview.bin.Cache.getDefault("FOLLOW_SELECTIONS",
+ true);
}
/**
private boolean shownpfeats;
/**
- * consensus annotation includes all percentage for all symbols in column
- */
- private boolean includeAllConsensusSymbols = true;
-
- /**
* trigger update of conservation annotation
*/
public void updateConservation(final AlignmentPanel ap)
hconsensus = new Hashtable[aWidth];
AAFrequency.calculate(alignment.getSequencesArray(), 0, alignment
- .getWidth(), hconsensus, includeAllConsensusSymbols);
- AAFrequency.completeConsensus(consensus, hconsensus, 0, aWidth,
- ignoreGapsInConsensusCalculation,
- includeAllConsensusSymbols);
+ .getWidth(), hconsensus, true);
+ updateAnnotation(true);
if (globalColourScheme != null)
{
ap.paintAlignment(true);
}
}
+
+ /**
+ * update the consensus annotation from the sequence profile data using
+ * current visualization settings.
+ */
+ public void updateAnnotation()
+ {
+ updateAnnotation(false);
+ }
+
+ protected void updateAnnotation(boolean immediate)
+ {
+ // TODO: make calls thread-safe, so if another thread calls this method, it will either return or wait until one calculation is finished.
+ if (immediate
+ || (!updatingConsensus && consensus != null && hconsensus != null))
+ {
+ AAFrequency.completeConsensus(consensus, hconsensus, 0,
+ hconsensus.length, ignoreGapsInConsensusCalculation,
+ showSequenceLogo);
+ }
+ }
}
/**
*/
public void setShowSequenceLogo(boolean showSequenceLogo)
{
+ if (showSequenceLogo != this.showSequenceLogo)
+ {
+ // TODO: decouple settings setting from calculation when refactoring
+ // annotation update method from alignframe to viewport
+ this.showSequenceLogo = showSequenceLogo;
+ if (consensusThread != null)
+ {
+ consensusThread.updateAnnotation();
+ }
+ }
this.showSequenceLogo = showSequenceLogo;
}
}
/**
- * @return the includeAllConsensusSymbols
- */
- public boolean isIncludeAllConsensusSymbols()
- {
- return includeAllConsensusSymbols;
- }
-
- /**
- * @param includeAllConsensusSymbols
- * the includeAllConsensusSymbols to set
- */
- public void setIncludeAllConsensusSymbols(
- boolean includeAllConsensusSymbols)
- {
- this.includeAllConsensusSymbols = includeAllConsensusSymbols;
- }
-
- /**
*
* @return flag to indicate if the consensus histogram should be rendered by
* default