JAL-3187 'on top' optional for complementary features
[jalview.git] / src / jalview / gui / FeatureSettings.java
index 7b8eae4..9dbeb8a 100644 (file)
@@ -44,6 +44,7 @@ import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
+import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.Graphics;
 import java.awt.GridLayout;
@@ -153,6 +154,8 @@ public class FeatureSettings extends JPanel
 
   JCheckBox showComplement;
 
+  JCheckBox showComplementOnTop;
+
   /*
    * when true, constructor is still executing - so ignore UI events
    */
@@ -1278,8 +1281,22 @@ public class FeatureSettings extends JPanel
       }
     });
 
-    JPanel transPanel = new JPanel(new GridLayout(1, 2));
-    bigPanel.add(transPanel, BorderLayout.SOUTH);
+    showComplementOnTop = new JCheckBox("on top");
+    showComplementOnTop
+            .setSelected(af.getViewport().isShowComplementFeaturesOnTop());
+    showComplementOnTop.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        af.getViewport().setShowComplementFeaturesOnTop(
+                showComplementOnTop.isSelected());
+        refreshDisplay();
+      }
+    });
+
+    JPanel lowerPanel = new JPanel(new GridLayout(1, 2));
+    bigPanel.add(lowerPanel, BorderLayout.SOUTH);
 
     JPanel transbuttons = new JPanel(new GridLayout(5, 1));
     transbuttons.add(optimizeOrder);
@@ -1290,14 +1307,18 @@ public class FeatureSettings extends JPanel
 
     boolean hasComplement = af.getViewport().getCodingComplement() != null;
     JPanel transPanelLeft = new JPanel(
-            new GridLayout(hasComplement ? 2 : 1, 1));
+            new GridLayout(hasComplement ? 3 : 2, 1));
+    transPanelLeft.add(new JLabel(" Colour transparency" + ":"));
     transPanelLeft.add(transparency);
     if (hasComplement)
     {
-      transPanelLeft.add(showComplement);
+      JPanel cp = new JPanel(new FlowLayout(FlowLayout.LEFT));
+      cp.add(showComplement);
+      cp.add(showComplementOnTop);
+      transPanelLeft.add(cp);
     }
-    transPanel.add(transPanelLeft);
-    transPanel.add(transbuttons);
+    lowerPanel.add(transPanelLeft);
+    lowerPanel.add(transbuttons);
 
     JPanel buttonPanel = new JPanel();
     buttonPanel.add(ok);