Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / src / jalview / gui / PopupMenu.java
index 7e86704..ca0fb7f 100644 (file)
@@ -87,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
@@ -726,9 +728,38 @@ 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();
+    id_cols.updateTypeList();
+    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>
@@ -906,6 +937,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     if (Platform.isJS())
     {
       details = new JInternalFrame();
+      details.setFrameIcon(null);
       JPanel panel = new JPanel(new BorderLayout());
       panel.setOpaque(true);
       panel.setBackground(Color.white);
@@ -1834,6 +1866,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       pane.setBackground(Color.WHITE);
       pane.add(textLabel, BorderLayout.NORTH);
       frame = new JInternalFrame();
+      frame.setFrameIcon(null);
       frame.getContentPane().add(new JScrollPane(pane));
     }
     else