29
29
30
30
package org .scijava .ui .swing .widget ;
31
31
32
+ import java .awt .Component ;
32
33
import java .awt .event .ActionEvent ;
33
34
import java .awt .event .ActionListener ;
34
35
36
+ import javax .swing .DefaultListCellRenderer ;
35
37
import javax .swing .JComboBox ;
38
+ import javax .swing .JLabel ;
39
+ import javax .swing .JList ;
36
40
import javax .swing .JPanel ;
41
+ import javax .swing .ListCellRenderer ;
37
42
43
+ import org .scijava .object .ObjectService ;
38
44
import org .scijava .plugin .Plugin ;
39
45
import org .scijava .widget .InputWidget ;
40
46
import org .scijava .widget .ObjectWidget ;
@@ -76,6 +82,7 @@ public void set(final WidgetModel model) {
76
82
setToolTip (comboBox );
77
83
getComponent ().add (comboBox );
78
84
comboBox .addActionListener (this );
85
+ comboBox .setRenderer (new NamedObjectCellRenderer ());
79
86
80
87
refreshWidget ();
81
88
}
@@ -96,4 +103,17 @@ public void doRefresh() {
96
103
comboBox .setSelectedItem (value );
97
104
}
98
105
106
+ private class NamedObjectCellRenderer implements ListCellRenderer <Object > {
107
+
108
+ private DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer ();
109
+
110
+ @ Override
111
+ public Component getListCellRendererComponent (JList <?> list , Object value , int index , boolean isSelected ,
112
+ boolean cellHasFocus ) {
113
+ JLabel renderer = (JLabel ) defaultRenderer .getListCellRendererComponent (list , value , index , isSelected , cellHasFocus );
114
+ renderer .setText (context ().service (ObjectService .class ).getName (value ));
115
+ renderer .setToolTipText (value .toString ());
116
+ return renderer ;
117
+ }
118
+ }
99
119
}
0 commit comments