JAL-2629 add option to set HMM Logo letter height to info content
[jalview.git] / src / jalview / gui / AnnotationLabels.java
index f1d8d7c..f7b48fa 100755 (executable)
@@ -624,21 +624,59 @@ public class AnnotationLabels extends JPanel
           @Override
           public void actionPerformed(ActionEvent e)
           {
+
+            if (aaa.groupRef != null)
+            {
+              // TODO: pass on reference to ap so the view can be updated.
+              if (aaa.groupRef.getInfoLetterHeight() == false)
+              {
+                aaa.groupRef.setIgnoreBelowBackground(cbmi.getState());
+                ap.getAnnotationPanel()
+                        .paint(ap.getAnnotationPanel().getGraphics());
+              }
+            }
+            else if (ap.av.isInfoLetterHeight() == false)
+            {
+              ap.av.setIgnoreBelowBackground(cbmi.getState(), ap);
+            }
+            ap.alignmentChanged();
+          }
+        });
+        pop.add(cbmi);
+        final JCheckBoxMenuItem letteHeight = new JCheckBoxMenuItem(
+                MessageManager.getString("label.use_info_for_height"),
+                (aa[selectedRow].groupRef != null)
+                        ? aa[selectedRow].groupRef.getInfoLetterHeight()
+                        : ap.av.isInfoLetterHeight());
+
+        letteHeight.addActionListener(new ActionListener()
+        {
+          @Override
+          public void actionPerformed(ActionEvent e)
+          {
             if (aaa.groupRef != null)
             {
               // TODO: pass on reference to ap so the view can be updated.
-              aaa.groupRef.setIgnoreBelowBackground(cbmi.getState());
+              aaa.groupRef.setInfoLetterHeight((letteHeight.getState()));
+              if (aaa.groupRef.getIgnoreBelowBackground() == false)
+              {
+                aaa.groupRef.setIgnoreBelowBackground(true);
+              }
               ap.getAnnotationPanel()
                       .paint(ap.getAnnotationPanel().getGraphics());
             }
             else
             {
-              ap.av.setIgnoreBelowBackground(cbmi.getState(), ap);
+              ap.av.setInfoLetterHeight(letteHeight.getState(), ap);
+              if (ap.av.isIgnoreBelowBackground() == false)
+              {
+                ap.av.setIgnoreBelowBackground(true, ap);
+              }
             }
             ap.alignmentChanged();
           }
         });
-        pop.add(cbmi);
+        pop.add(letteHeight);
         if (aaa.groupRef != null)
         {
           final JCheckBoxMenuItem chist = new JCheckBoxMenuItem(