X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationColourChooser.java;h=49f356d736d1e7334e74ad82ec434fbff78f53de;hb=9e3e20c98eae9498a68bb0a770359564797a12ef;hp=46891f8c45f385094ca1808da3f0efc56a3ee756;hpb=d423f22792e47dbc800ae220a58677f988971d06;p=jalview.git diff --git a/src/jalview/gui/AnnotationColourChooser.java b/src/jalview/gui/AnnotationColourChooser.java index 46891f8..49f356d 100755 --- a/src/jalview/gui/AnnotationColourChooser.java +++ b/src/jalview/gui/AnnotationColourChooser.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. @@ -24,6 +24,7 @@ import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; +import jalview.bin.Cache; import jalview.datamodel.*; import jalview.schemes.*; import java.awt.Dimension; @@ -92,16 +93,19 @@ public class AnnotationColourChooser extends JPanel return; } + // Always get default shading from preferences. + minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN", Color.orange)); + maxColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX", Color.red)); + if (oldcs instanceof AnnotationColourGradient) { AnnotationColourGradient acg = (AnnotationColourGradient) oldcs; - minColour.setBackground(acg.getMinColour()); - maxColour.setBackground(acg.getMaxColour()); - } - else - { - minColour.setBackground(Color.orange); - maxColour.setBackground(Color.red); + currentColours.setSelected(acg.predefinedColours); + if (!acg.predefinedColours) + { + minColour.setBackground(acg.getMinColour()); + maxColour.setBackground(acg.getMaxColour()); + } } adjusting = true; @@ -122,6 +126,27 @@ public class AnnotationColourChooser extends JPanel threshold.addItem("Above Threshold"); threshold.addItem("Below Threshold"); + if (oldcs instanceof AnnotationColourGradient) + { + AnnotationColourGradient acg = (AnnotationColourGradient) oldcs; + annotations.setSelectedItem(acg.getAnnotation()); + switch (acg.getAboveThreshold()) { + case AnnotationColourGradient.NO_THRESHOLD: + threshold.setSelectedItem("No Threshold"); + break; + case AnnotationColourGradient.ABOVE_THRESHOLD: + threshold.setSelectedItem("Above Threshold"); + break; + case AnnotationColourGradient.BELOW_THRESHOLD: + threshold.setSelectedItem("Below Threshold"); + break; + default: + throw new Error("Implementation error: don't know about threshold setting for current AnnotationColourGradient."); + } + thresholdIsMin.setSelected(acg.thresholdIsMinMax); + thresholdValue.setText(""+acg.getAnnotationThreshold()); + } + try { jbInit(); @@ -132,6 +157,7 @@ public class AnnotationColourChooser extends JPanel adjusting = false; changeColour(); + validate(); } @@ -377,13 +403,14 @@ public class AnnotationColourChooser extends JPanel AnnotationColourGradient acg = null; if (currentColours.isSelected()) { - acg = new AnnotationColourGradient(currentAnnotation, av - .getGlobalColourScheme(), aboveThreshold); + acg = new AnnotationColourGradient(currentAnnotation, + av.getGlobalColourScheme(), aboveThreshold); } else { - acg = new AnnotationColourGradient(currentAnnotation, minColour - .getBackground(), maxColour.getBackground(), aboveThreshold); + acg = new AnnotationColourGradient(currentAnnotation, + minColour.getBackground(), maxColour.getBackground(), + aboveThreshold); } if (currentAnnotation.graphMin == 0f @@ -416,15 +443,15 @@ public class AnnotationColourChooser extends JPanel } else { - sg.cs = new AnnotationColourGradient(currentAnnotation, minColour - .getBackground(), maxColour.getBackground(), + sg.cs = new AnnotationColourGradient(currentAnnotation, + minColour.getBackground(), maxColour.getBackground(), aboveThreshold); } } } - - ap.paintAlignment(false); + // ensure all associated views (overviews, structures, etc) are notified of updated colours. + ap.paintAlignment(true); } public void ok_actionPerformed(ActionEvent e)