JAL-2664 Updates following review
[jalview.git] / src / jalview / gui / ComboBoxTooltipRenderer.java
1 package jalview.gui;
2
3 import java.awt.Component;
4 import java.util.List;
5
6 import javax.swing.DefaultListCellRenderer;
7 import javax.swing.JComponent;
8 import javax.swing.JList;
9
10 /**
11  * A helper class to render a combobox with tooltips
12  * 
13  * @see http
14  *      ://stackoverflow.com/questions/480261/java-swing-mouseover-text-on-jcombobox
15  *      -items
16  */
17 public class ComboBoxTooltipRenderer extends DefaultListCellRenderer
18 {
19   private static final long serialVersionUID = 1L;
20
21   List<String> tooltips;
22
23   @Override
24   public Component getListCellRendererComponent(JList list, Object value,
25           int index, boolean isSelected, boolean cellHasFocus)
26   {
27
28     JComponent comp = (JComponent) super.getListCellRendererComponent(list,
29             value, index, isSelected, cellHasFocus);
30
31     if (-1 < index && null != value && null != tooltips)
32     {
33       list.setToolTipText(tooltips.get(index));
34     }
35     return comp;
36   }
37
38   public void setTooltips(List<String> tips)
39   {
40     this.tooltips = tips;
41   }
42 }