JAL-2773 add new flag to paintAlignment(updateOverview,updateStructures) and first...
[jalview.git] / src / jalview / appletgui / AnnotationColourChooser.java
index d4a21b2..533226e 100644 (file)
  */
 package jalview.appletgui;
 
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.SequenceGroup;
+import jalview.schemes.AnnotationColourGradient;
+import jalview.schemes.ColourSchemeI;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Button;
 import java.awt.Checkbox;
@@ -44,12 +50,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Vector;
 
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.SequenceGroup;
-import jalview.schemes.AnnotationColourGradient;
-import jalview.schemes.ColourSchemeI;
-import jalview.util.MessageManager;
-
 public class AnnotationColourChooser extends Panel implements
         ActionListener, AdjustmentListener, ItemListener, MouseListener
 {
@@ -85,13 +85,10 @@ public class AnnotationColourChooser extends Panel implements
     oldcs = av.getGlobalColourScheme();
     if (av.getAlignment().getGroups() != null)
     {
-      oldgroupColours = new HashMap<SequenceGroup, ColourSchemeI>();
+      oldgroupColours = new HashMap<>();
       for (SequenceGroup sg : ap.av.getAlignment().getGroups())
       {
-        if (sg.cs != null)
-        {
-          oldgroupColours.put(sg, sg.cs);
-        }
+        oldgroupColours.put(sg, sg.getColourScheme());
       }
     }
     this.av = av;
@@ -112,8 +109,8 @@ public class AnnotationColourChooser extends Panel implements
     if (oldcs instanceof AnnotationColourGradient)
     {
       AnnotationColourGradient acg = (AnnotationColourGradient) oldcs;
-      currentColours.setState(acg.isPredefinedColours()
-              || acg.getBaseColour() != null);
+      currentColours.setState(
+              acg.isPredefinedColours() || acg.getBaseColour() != null);
       if (!acg.isPredefinedColours() && acg.getBaseColour() == null)
       {
         minColour.setBackground(acg.getMinColour());
@@ -153,9 +150,8 @@ public class AnnotationColourChooser extends Panel implements
         threshold.select(1);
         break;
       default:
-        throw new Error(
-                MessageManager
-                        .getString("error.implementation_error_dont_know_threshold_annotationcolourgradient"));
+        throw new Error(MessageManager.getString(
+                "error.implementation_error_dont_know_threshold_annotationcolourgradient"));
       }
       thresholdIsMin.setState(acg.isThresholdIsMinMax());
       thresholdValue.setText("" + acg.getAnnotationThreshold());
@@ -184,8 +180,8 @@ public class AnnotationColourChooser extends Panel implements
     // TODO remove duplication with gui.AnnotationRowFilter
     // TODO add 'per sequence only' option / parameter
 
-    annotationLabels = new HashMap<AlignmentAnnotation, String>();
-    Vector<String> list = new Vector<String>();
+    annotationLabels = new HashMap<>();
+    Vector<String> list = new Vector<>();
     AlignmentAnnotation[] anns = av.getAlignment().getAlignmentAnnotation();
     if (anns == null)
     {
@@ -222,8 +218,8 @@ public class AnnotationColourChooser extends Panel implements
   {
     minColour.setBackground(av.applet.getDefaultColourParameter(
             "ANNOTATIONCOLOUR_MIN", Color.orange));
-    maxColour.setBackground(av.applet.getDefaultColourParameter(
-            "ANNOTATIONCOLOUR_MAX", Color.red));
+    maxColour.setBackground(av.applet
+            .getDefaultColourParameter("ANNOTATIONCOLOUR_MAX", Color.red));
 
   }
 
@@ -268,13 +264,13 @@ public class AnnotationColourChooser extends Panel implements
     thresholdValue.setEnabled(false);
     thresholdValue.setColumns(5);
     currentColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    currentColours.setLabel(MessageManager
-            .getString("label.use_original_colours"));
+    currentColours.setLabel(
+            MessageManager.getString("label.use_original_colours"));
     currentColours.addItemListener(this);
 
     thresholdIsMin.setBackground(Color.white);
-    thresholdIsMin.setLabel(MessageManager
-            .getString("label.threshold_minmax"));
+    thresholdIsMin
+            .setLabel(MessageManager.getString("label.threshold_minmax"));
 
     this.setLayout(borderLayout1);
 
@@ -380,7 +376,7 @@ public class AnnotationColourChooser extends Panel implements
     else if (evt.getSource() == cancel)
     {
       reset();
-      ap.paintAlignment(true);
+      ap.paintAlignment(true, true);
       frame.setVisible(false);
     }
 
@@ -414,14 +410,14 @@ public class AnnotationColourChooser extends Panel implements
     if (!adjusting)
     {
       thresholdValue.setText((slider.getValue() / 1000f) + "");
-      if (currentColours.getState()
-              && !(av.getGlobalColourScheme() instanceof AnnotationColourGradient))
+      if (currentColours.getState() && !(av
+              .getGlobalColourScheme() instanceof AnnotationColourGradient))
       {
         changeColour();
       }
 
       currentAnnotation.threshold.value = slider.getValue() / 1000f;
-      ap.paintAlignment(false);
+      ap.paintAlignment(false, false);
     }
   }
 
@@ -470,8 +466,8 @@ public class AnnotationColourChooser extends Panel implements
       return;
     }
 
-    currentAnnotation = av.getAlignment().getAlignmentAnnotation()[annotations
-            .getSelectedIndex()];
+    currentAnnotation = av.getAlignment()
+            .getAlignmentAnnotation()[annotations.getSelectedIndex()];
 
     int aboveThreshold = -1;
     if (threshold.getSelectedIndex() == 1)
@@ -497,10 +493,10 @@ public class AnnotationColourChooser extends Panel implements
     else if (aboveThreshold != AnnotationColourGradient.NO_THRESHOLD
             && currentAnnotation.threshold == null)
     {
-      currentAnnotation
-              .setThreshold(new jalview.datamodel.GraphLine(
-                      (currentAnnotation.graphMax - currentAnnotation.graphMin) / 2f,
-                      "Threshold", Color.black));
+      currentAnnotation.setThreshold(new jalview.datamodel.GraphLine(
+              (currentAnnotation.graphMax - currentAnnotation.graphMin)
+                      / 2f,
+              "Threshold", Color.black));
     }
 
     if (aboveThreshold != AnnotationColourGradient.NO_THRESHOLD)
@@ -519,8 +515,6 @@ public class AnnotationColourChooser extends Panel implements
     AnnotationColourGradient acg = null;
     if (currentColours.getState())
     {
-      acg = new AnnotationColourGradient(currentAnnotation,
-              av.getGlobalColourScheme(), aboveThreshold);
     }
     else
     {
@@ -544,28 +538,28 @@ public class AnnotationColourChooser extends Panel implements
     {
       for (SequenceGroup sg : ap.av.getAlignment().getGroups())
       {
-        if (sg.cs == null)
+        if (sg.getColourScheme() == null)
         {
           continue;
         }
 
         if (currentColours.getState())
         {
-          sg.cs = new AnnotationColourGradient(currentAnnotation, sg.cs,
-                  aboveThreshold);
+          sg.setColourScheme(new AnnotationColourGradient(currentAnnotation,
+                  sg.getColourScheme(), aboveThreshold));
         }
         else
         {
-          sg.cs = new AnnotationColourGradient(currentAnnotation,
+          sg.setColourScheme(new AnnotationColourGradient(currentAnnotation,
                   minColour.getBackground(), maxColour.getBackground(),
-                  aboveThreshold);
+                  aboveThreshold));
         }
       }
     }
 
     // update colours in linked windows
     ap.alignmentChanged();
-    ap.paintAlignment(true);
+    ap.paintAlignment(true, true);
   }
 
   void reset()
@@ -575,11 +569,10 @@ public class AnnotationColourChooser extends Panel implements
     {
       for (SequenceGroup sg : ap.av.getAlignment().getGroups())
       {
-        sg.cs = oldgroupColours.get(sg);
+        sg.setColourScheme(oldgroupColours.get(sg));
       }
     }
-    ap.paintAlignment(true);
-
+    ap.paintAlignment(true, true);
   }
 
   @Override
@@ -595,7 +588,7 @@ public class AnnotationColourChooser extends Panel implements
   @Override
   public void mouseReleased(MouseEvent evt)
   {
-    ap.paintAlignment(true);
+    ap.paintAlignment(true, true);
   }
 
   @Override