X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FAlignmentViewport.java;h=e25818e4cd8022791d5e2b816f3afbeb3f16c106;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=d49572d8f3dbfee689d64fdb9fe53bd3cf868dc1;hpb=c346dab4e1569fab50bf4107868ed043d9e4a0a3;p=jalview.git diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index d49572d..e25818e 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -1,5 +1,5 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. @@ -212,6 +212,24 @@ public abstract class AlignmentViewport implements AlignViewportI // calculation till later or to do all calculations in thread. // via changecolour globalColourScheme = cs; + boolean recalc=false; + if (cs!=null) + { + cs.setConservationApplied(recalc = getConservationSelected()); + if (getAbovePIDThreshold() || cs instanceof PIDColourScheme || cs instanceof Blosum62ColourScheme) + { + recalc = true; + cs.setThreshold(threshold, ignoreGapsInConsensusCalculation); + } else { + cs.setThreshold(0, ignoreGapsInConsensusCalculation); + } + if (recalc) + { + cs.setConsensus(hconsensus); + cs.setConservation(hconservation); + } + cs.alignmentChanged(alignment, hiddenRepSequences); + } if (getColourAppliesToAllGroups()) { for (SequenceGroup sg : getAlignment().getGroups()) @@ -221,29 +239,13 @@ public abstract class AlignmentViewport implements AlignViewportI sg.cs = null; continue; } - if (cs instanceof ClustalxColourScheme) - { - sg.cs = new ClustalxColourScheme(sg, getHiddenRepSequences()); - } - else - { - try - { - sg.cs = cs.getClass().newInstance(); - } catch (Exception ex) - { - ex.printStackTrace(); - sg.cs = cs; - } - } - + sg.cs = cs.applyTo(sg, getHiddenRepSequences()); + sg.setConsPercGaps(ConsPercGaps); if (getAbovePIDThreshold() || cs instanceof PIDColourScheme || cs instanceof Blosum62ColourScheme) { sg.cs.setThreshold(threshold, getIgnoreGapsConsensus()); - sg.cs.setConsensus(AAFrequency.calculate( - sg.getSequences(getHiddenRepSequences()), 0, - sg.getWidth())); + recalc=true; } else { @@ -252,20 +254,19 @@ public abstract class AlignmentViewport implements AlignViewportI if (getConservationSelected()) { - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, - sg.getSequences(getHiddenRepSequences()), 0, - getAlignment().getWidth() - 1); - c.calculate(); - c.verdict(false, getConsPercGaps()); - sg.cs.setConservation(c); + sg.cs.setConservationApplied(true); + recalc=true; } else { sg.cs.setConservation(null); - sg.cs.setThreshold(0, getIgnoreGapsConsensus()); + // sg.cs.setThreshold(0, getIgnoreGapsConsensus()); + } + if (recalc) { + sg.recalcConservation(); + } else { + sg.cs.alignmentChanged(sg, hiddenRepSequences); } - } } @@ -299,7 +300,13 @@ public abstract class AlignmentViewport implements AlignViewportI * view */ protected Hashtable[] hStrucConsensus = null; - + + protected Conservation hconservation = null; + @Override + public void setConservation(Conservation cons) + { + hconservation = cons; + } /** * percentage gaps allowed in a column before all amino acid properties should * be considered unconserved @@ -1300,7 +1307,7 @@ public abstract class AlignmentViewport implements AlignViewportI ColourSchemeI cs = globalColourScheme; if (cs != null) { - cs.alignmentChanged(alignment, null); + cs.alignmentChanged(alignment, hiddenRepSequences); cs.setConsensus(hconsensus); if (cs.conservationApplied())