X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignViewport.java;h=9208e5e4308cdc979b721448a9bf8c9b480f3be8;hb=153dd62dc91da13ae732600e6ea55ddbe15eab39;hp=2791ffc17e40b492ed2aa55e6ffd37b23d73094e;hpb=6288934c2b3c469369bfb8ee09fea627dafd7776;p=jalview.git diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index 2791ffc..9208e5e 100755 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -1,5 +1,5 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * * This file is part of Jalview. @@ -433,7 +433,8 @@ public class AlignViewport implements SelectionSource 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); + followSelection = jalview.bin.Cache.getDefault("FOLLOW_SELECTIONS", + true); } /** @@ -477,11 +478,6 @@ public class AlignViewport implements SelectionSource 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) @@ -557,10 +553,8 @@ public class AlignViewport implements SelectionSource 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) { @@ -583,6 +577,27 @@ public class AlignViewport implements SelectionSource 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); + } + } } /** @@ -2206,6 +2221,16 @@ public class AlignViewport implements SelectionSource */ 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; } @@ -2253,24 +2278,6 @@ public class AlignViewport implements SelectionSource } /** - * @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