JAL-3148 SequenceRenderer, ResidueColourFinder overloads and
[jalview.git] / src / jalview / gui / StructureViewerBase.java
index 72b0bcc..05a163b 100644 (file)
@@ -37,6 +37,7 @@ import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemes;
 import jalview.structure.StructureMapping;
 import jalview.structures.models.AAStructureBindingModel;
+import jalview.structures.models.AAStructureBindingModel.ColourBy;
 import jalview.util.MessageManager;
 
 import java.awt.Color;
@@ -159,15 +160,15 @@ public abstract class StructureViewerBase extends GStructureViewer
     return _aps.contains(ap2.av.getSequenceSetId());
   }
 
-  public boolean isUsedforaligment(AlignmentPanel ap2)
+  public boolean isUsedForAligment(AlignmentPanel ap2)
   {
 
     return (_alignwith != null) && _alignwith.contains(ap2);
   }
 
-  public boolean isUsedforcolourby(AlignmentPanel ap2)
+  public boolean isUsedForColourBy(Object o)
   {
-    return (_colourwith != null) && _colourwith.contains(ap2);
+    return (_colourwith != null) && _colourwith.contains(o);
   }
 
   /**
@@ -315,9 +316,10 @@ public abstract class StructureViewerBase extends GStructureViewer
           boolean enableColourBySeq)
   {
     useAlignmentPanelForColourbyseq(nap);
-    getBinding().setColourBySequence(enableColourBySeq);
     seqColour.setSelected(enableColourBySeq);
     viewerColour.setSelected(!enableColourBySeq);
+
+    getBinding().setColourBy(enableColourBySeq ? ColourBy.Sequence : ColourBy.Viewer);
   }
 
   public void useAlignmentPanelForColourbyseq(AlignmentPanel nap)
@@ -565,7 +567,7 @@ public abstract class StructureViewerBase extends GStructureViewer
     AlignmentI al = getAlignmentPanel().av.getAlignment();
     ColourSchemeI cs = ColourSchemes.getInstance()
             .getColourScheme(colourSchemeName, al, null);
-    getBinding().setJalviewColourScheme(cs);
+       getBinding().setJalviewColourScheme(cs, getAlignmentPanel());
   }
 
   /**
@@ -576,6 +578,8 @@ public abstract class StructureViewerBase extends GStructureViewer
     colourMenu.removeAll();
     AlignmentI al = getAlignmentPanel().av.getAlignment();
 
+       colourMenu.addSeparator();
+       
     /*
      * add colour by sequence, by chain, by charge and cysteine
      */
@@ -584,11 +588,11 @@ public abstract class StructureViewerBase extends GStructureViewer
     colourMenu.add(chargeColour);
     chargeColour.setEnabled(!al.isNucleotide());
 
-    /*
-     * add all 'simple' (per-residue) colour schemes registered to Jalview
-     */
+       /*
+        * add all colour schemes registered to Jalview
+        */
     ButtonGroup itemGroup = ColourMenuHelper.addMenuItems(colourMenu, this,
-            al, true);
+                               al);
 
     /*
      * add 'colour by viewer' (menu item text is set in subclasses)
@@ -746,12 +750,6 @@ public abstract class StructureViewerBase extends GStructureViewer
     buildColourMenu();
   }
 
-  @Override
-  public void setJalviewColourScheme(ColourSchemeI cs)
-  {
-    getBinding().setJalviewColourScheme(cs);
-  }
-
   /**
    * Sends commands to the structure viewer to superimpose structures based on
    * currently associated alignments. May optionally return an error message for
@@ -827,7 +825,7 @@ public abstract class StructureViewerBase extends GStructureViewer
     if (viewerColour.isSelected())
     {
       // disable automatic sequence colouring.
-      getBinding().setColourBySequence(false);
+      getBinding().setColourBy(ColourBy.Viewer);
     }
   }
 
@@ -849,12 +847,12 @@ public abstract class StructureViewerBase extends GStructureViewer
   public void seqColour_actionPerformed(ActionEvent actionEvent)
   {
     AAStructureBindingModel binding = getBinding();
-    binding.setColourBySequence(seqColour.isSelected());
+    boolean colourBySequence = seqColour.isSelected();
     if (_colourwith == null)
     {
       _colourwith = new Vector<>();
     }
-    if (binding.isColourBySequence())
+    if (colourBySequence)
     {
       if (!binding.isLoadingFromArchive())
       {