JAL-4047 - proof of concept for JAL-4048 - display columns of info in sequence ID...
[jalview.git] / src / jalview / gui / PopupMenu.java
index 6903034..f87d841 100644 (file)
@@ -20,8 +20,6 @@
  */
 package jalview.gui;
 
-import java.util.Locale;
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.event.ActionEvent;
@@ -34,6 +32,7 @@ import java.util.Collections;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.SortedMap;
@@ -88,6 +87,8 @@ import jalview.util.Platform;
 import jalview.util.StringUtils;
 import jalview.util.UrlLink;
 import jalview.viewmodel.seqfeatures.FeatureRendererModel;
+import jalview.viewmodel.seqfeatures.IdColumn;
+import jalview.viewmodel.seqfeatures.IdColumns;
 
 /**
  * The popup menu that is displayed on right-click on a sequence id, or in the
@@ -727,9 +728,37 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       rnaStructureMenu.setVisible(false);
     }
 
+    if (forIdPanel)
+    {
+      addDisplayColumnsMenu();
+    }
+
     addLinksAndFeatures(seq, column);
   }
 
+  void addDisplayColumnsMenu()
+  {
+    JMenu dis_cols = new JMenu(
+            MessageManager.getString("action.displayed_columns"));
+    final IdColumns id_cols = ap.av.getIdColumns();
+    for (final IdColumn col : id_cols.getIdColumns())
+    {
+      JMenuItem col_entry = new JCheckBoxMenuItem(col.getLabel(),
+              col.isVisible());
+      col_entry.addActionListener(new ActionListener()
+      {
+
+        @Override
+        public void actionPerformed(ActionEvent e)
+        {
+          id_cols.toggleVisible(col.getLabel());
+        }
+      });
+      dis_cols.add(col_entry);
+    }
+    add(dis_cols);
+  }
+
   /**
    * Adds
    * <ul>