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