X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fappletgui%2FSliderPanel.java;h=47a066927ffbc884677085b9383b3f075054db28;hb=163ed5b997bbda48e4cdd950e87a8fe01baae7fb;hp=9154aa03bdf685982c7c2cab1fcc804ca11bf018;hpb=c430867beda6dcf8236f59d1346ff4b026b0b62b;p=jalview.git diff --git a/src/jalview/appletgui/SliderPanel.java b/src/jalview/appletgui/SliderPanel.java index 9154aa0..47a0669 100644 --- a/src/jalview/appletgui/SliderPanel.java +++ b/src/jalview/appletgui/SliderPanel.java @@ -20,6 +20,7 @@ */ package jalview.appletgui; +import jalview.analysis.Conservation; import jalview.datamodel.SequenceGroup; import jalview.renderer.ResidueShaderI; import jalview.util.MessageManager; @@ -44,7 +45,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.util.Iterator; +import java.util.List; public class SliderPanel extends Panel implements ActionListener, AdjustmentListener, MouseListener @@ -82,7 +83,8 @@ public class SliderPanel extends Panel implements ActionListener, conservationSlider.setTitle(MessageManager.formatMessage( "label.conservation_colour_increment", new String[] { source == null ? BACKGROUND : source })); - if (ap.av.getAlignment().getGroups() != null) + List groups = ap.av.getAlignment().getGroups(); + if (groups != null && !groups.isEmpty()) { sp.setAllGroupsCheckEnabled(true); } @@ -248,45 +250,53 @@ public class SliderPanel extends Panel implements ActionListener, { return; } - - ResidueShaderI toChange = cs; - Iterator allGroups = null; - - if (allGroupsCheck.getState()) + if (forConservation) { - allGroups = ap.av.getAlignment().getGroups().listIterator(); + cs.setConservationApplied(true); + cs.setConservationInc(i); + } + else + { + cs.setThreshold(i, ap.av.isIgnoreGapsConsensus()); } - while (toChange != null) + if (allGroupsCheck.getState()) { - if (forConservation) + for (SequenceGroup group : ap.av.getAlignment().getGroups()) { - toChange.setConservationInc(i); - } - else - { - toChange.setThreshold(i, ap.av.isIgnoreGapsConsensus()); - } - if (allGroups != null && allGroups.hasNext()) - { - while ((toChange = allGroups.next().cs) == null - && allGroups.hasNext()) + ResidueShaderI groupColourScheme = group.getGroupColourScheme(); + if (forConservation) { - ; + if (!groupColourScheme.conservationApplied()) + { + /* + * first time the colour scheme has had Conservation shading applied + * - compute conservation + */ + Conservation c = new Conservation("Group", + group.getSequences(null), group.getStartRes(), + group.getEndRes()); + c.calculate(); + c.verdict(false, ap.av.getConsPercGaps()); + group.cs.setConservation(c); + + } + groupColourScheme.setConservationApplied(true); + groupColourScheme.setConservationInc(i); + } + else + { + groupColourScheme.setThreshold(i, ap.av.isIgnoreGapsConsensus()); } - } - else - { - toChange = null; } } ap.seqPanel.seqCanvas.repaint(); - } public void setAllGroupsCheckEnabled(boolean b) { + allGroupsCheck.setState(ap.av.getColourAppliesToAllGroups()); allGroupsCheck.setEnabled(b); }