*/
package jalview.gui;
+import jalview.analysis.Conservation;
import jalview.datamodel.SequenceGroup;
import jalview.jbgui.GSliderPanel;
import jalview.renderer.ResidueShaderI;
import jalview.util.MessageManager;
+import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.beans.PropertyVetoException;
+import java.util.List;
import javax.swing.JInternalFrame;
import javax.swing.JLayeredPane;
if (forConservation)
{
- label.setText(MessageManager
- .getString("label.enter_value_increase_conservation_visibility"));
+ label.setText(MessageManager.getString(
+ "label.enter_value_increase_conservation_visibility"));
slider.setMinimum(0);
slider.setMaximum(100);
}
else
{
- label.setText(MessageManager
- .getString("label.enter_percentage_identity_above_which_colour_residues"));
+ label.setText(MessageManager.getString(
+ "label.enter_percentage_identity_above_which_colour_residues"));
slider.setMinimum(0);
slider.setMaximum(100);
}
@Override
public void mouseReleased(MouseEvent evt)
{
- ap.paintAlignment(true);
+ ap.paintAlignment(true, true);
}
});
else
{
sliderPanel = (SliderPanel) conservationSlider.getContentPane();
- sliderPanel.valueField.setText(String.valueOf(rs.getConservationInc()));
+ sliderPanel.valueField
+ .setText(String.valueOf(rs.getConservationInc()));
sliderPanel.cs = rs;
sliderPanel.ap = ap;
sliderPanel.slider.setValue(rs.getConservationInc());
}
conservationSlider.setTitle(MessageManager.formatMessage(
- "label.conservation_colour_increment",
- new String[] { source == null ? BACKGROUND : source }));
+ "label.conservation_colour_increment", new String[]
+ { source == null ? BACKGROUND : source }));
- if (ap.av.getAlignment().getGroups() != null)
+ List<SequenceGroup> groups = ap.av.getAlignment().getGroups();
+ if (groups != null && !groups.isEmpty())
{
sliderPanel.setAllGroupsCheckEnabled(true);
}
{
Desktop.addInternalFrame(conservationSlider,
conservationSlider.getTitle(), 420, 90, false);
- conservationSlider
- .addInternalFrameListener(new InternalFrameAdapter()
- {
- @Override
- public void internalFrameClosed(InternalFrameEvent e)
- {
- conservationSlider = null;
- }
- });
+ conservationSlider.addInternalFrameListener(new InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(InternalFrameEvent e)
+ {
+ conservationSlider = null;
+ }
+ });
conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
}
}
*
* @return
*/
- public static int setPIDSliderSource(AlignmentPanel ap,
- ResidueShaderI rs, String source)
+ public static int setPIDSliderSource(AlignmentPanel ap, ResidueShaderI rs,
+ String source)
{
int threshold = rs.getThreshold();
}
PIDSlider.setTitle(MessageManager.formatMessage(
- "label.percentage_identity_threshold",
- new String[] { source == null ? BACKGROUND : source }));
+ "label.percentage_identity_threshold", new String[]
+ { source == null ? BACKGROUND : source }));
if (ap.av.getAlignment().getGroups() != null)
{
{
ap.av.setThreshold(percent);
}
- updateColourScheme(percent, cs);
+ updateColourScheme(percent, cs, null);
if (allGroupsCheck.isSelected())
{
- for (SequenceGroup sg : ap.av.getAlignment().getGroups())
+ List<SequenceGroup> groups = ap.av.getAlignment().getGroups();
+ for (SequenceGroup sg : groups)
{
- updateColourScheme(percent, sg.getGroupColourScheme());
+ updateColourScheme(percent, sg.getGroupColourScheme(), sg);
}
}
*
* @param percent
* @param scheme
+ * @param sg
*/
- protected void updateColourScheme(int percent, ResidueShaderI scheme)
+ protected void updateColourScheme(int percent, ResidueShaderI scheme,
+ SequenceGroup sg)
{
if (scheme == null)
{
}
if (forConservation)
{
+ if (!scheme.conservationApplied() && sg != null)
+ {
+ /*
+ * first time the colour scheme has had Conservation shading applied
+ * - compute conservation
+ */
+ Conservation c = new Conservation("Group", sg.getSequences(null),
+ sg.getStartRes(), sg.getEndRes());
+ c.calculate();
+ c.verdict(false, ap.av.getConsPercGaps());
+ sg.cs.setConservation(c);
+
+ }
+ scheme.setConservationApplied(true);
scheme.setConservationInc(percent);
}
else
static int getValue(JInternalFrame slider)
{
- return slider == null ? 0 : ((SliderPanel) slider.getContentPane())
- .getValue();
+ return slider == null ? 0
+ : ((SliderPanel) slider.getContentPane()).getValue();
}
public static int getPIDValue()
}
return title;
}
+
+ @Override
+ protected void allGroupsCheck_actionPerformed(ActionEvent e)
+ {
+ if (allGroupsCheck.isSelected())
+ {
+ valueChanged(slider.getValue());
+ }
+ }
}