JAL-3141 Added tooltips on Schemes dropdown and Customise checkbox
[jalview.git] / src / jalview / gui / JvSwingUtils.java
index 4658668..8ec40cb 100644 (file)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.io.IntKeyStringValueEntry;
 import jalview.util.MessageManager;
 
 import java.awt.BorderLayout;
@@ -355,6 +356,49 @@ public final class JvSwingUtils
   }
 
   /**
+   * A helper method to build a drop-down choice of values, with tooltips for the
+   * entries
+   * 
+   * @param entries
+   * @param tooltips
+   */
+  public static JComboBox<IntKeyStringValueEntry> buildIntKeyStringValueComboWithTooltips(
+          List<IntKeyStringValueEntry> entries, List<String> tooltips)
+  {
+    JComboBox<IntKeyStringValueEntry> combo = new JComboBox<>();
+    final ComboBoxTooltipRenderer renderer = new ComboBoxTooltipRenderer();
+    combo.setRenderer(renderer);
+    for (IntKeyStringValueEntry attName : entries)
+    {
+      combo.addItem(attName);
+    }
+    renderer.setTooltips(tooltips);
+    final MouseAdapter mouseListener = new MouseAdapter()
+    {
+      @Override
+      public void mouseEntered(MouseEvent e)
+      {
+        int j = combo.getSelectedIndex();
+        if (j > -1)
+        {
+          combo.setToolTipText(tooltips.get(j));
+        }
+      }
+
+      @Override
+      public void mouseExited(MouseEvent e)
+      {
+        combo.setToolTipText(null);
+      }
+    };
+    for (Component c : combo.getComponents())
+    {
+      c.addMouseListener(mouseListener);
+    }
+    return combo;
+  }
+
+  /**
    * Adds a titled border to the component in the default font and position (top
    * left), optionally witht italic text
    *