JAL-1264 adding show/hide annotation options to applet
[jalview.git] / src / jalview / appletgui / AnnotationLabels.java
index ce50cee..67faf11 100755 (executable)
  */
 package jalview.appletgui;
 
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.util.MessageManager;
-import jalview.util.ParseHtmlBodyAndLinks;
-
 import java.awt.Checkbox;
 import java.awt.CheckboxMenuItem;
 import java.awt.Color;
@@ -48,8 +41,17 @@ import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.Vector;
 
+import jalview.analysis.AlignmentUtils;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
+import jalview.util.ParseHtmlBodyAndLinks;
+
 public class AnnotationLabels extends Panel implements ActionListener,
         MouseListener, MouseMotionListener
 {
@@ -211,6 +213,14 @@ public class AnnotationLabels extends Panel implements ActionListener,
       }
 
     }
+    refresh();
+  }
+
+  /**
+   * Adjust size and repaint
+   */
+  protected void refresh()
+  {
     ap.annotationPanel.adjustPanelHeight();
     setSize(getSize().width, ap.annotationPanel.getSize().height);
     ap.validate();
@@ -461,6 +471,32 @@ public class AnnotationLabels extends Panel implements ActionListener,
       item = new MenuItem(HIDE);
       item.addActionListener(this);
       popup.add(item);
+
+      /*
+       * Hide all <label>:
+       */
+      if (selectedRow < aa.length)
+      {
+        if (aa[selectedRow].sequenceRef != null)
+        {
+          final String label = aa[selectedRow].label;
+          MenuItem hideType = new MenuItem(
+                  MessageManager.getString("label.hide_all") + " " + label);
+          hideType.addActionListener(new ActionListener()
+          {
+            @Override
+            public void actionPerformed(ActionEvent e)
+            {
+              AlignmentUtils.showOrHideSequenceAnnotations(
+                      ap.av.getAlignment(), Collections.singleton(label),
+                      null, false, false);
+              refresh();
+            }
+          });
+          popup.add(hideType);
+        }
+      }
+
       if (hasHiddenRows)
       {
         item = new MenuItem(SHOWALL);