+ setWaitingScreen(false);
+ }
+ });
+ }
+
+ private void addTagBar(List<SearchableTag> tags,
+ final SearchableTag selected) {
+ tags.add(0, null);
+
+ final JComboBox<SearchableTag> combo = new JComboBox<SearchableTag>(
+ tags.toArray(new SearchableTag[] {}));
+ combo.setSelectedItem(selected);
+
+ // We want to pass it a String
+ @SuppressWarnings({ "rawtypes" })
+ final ListCellRenderer basic = combo.getRenderer();
+
+ combo.setRenderer(new ListCellRenderer<SearchableTag>() {
+ @Override
+ public Component getListCellRendererComponent(
+ JList<? extends SearchableTag> list, SearchableTag value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ Object displayValue = value;
+ if (value == null) {
+ displayValue = "Select a tag...";
+ cellHasFocus = false;
+ isSelected = false;
+ } else {
+ displayValue = value.getName();
+ }
+
+ // We willingly pass a String here
+ @SuppressWarnings("unchecked")
+ Component rep = basic.getListCellRendererComponent(list,
+ displayValue, index, isSelected, cellHasFocus);
+
+ if (value == null) {
+ rep.setForeground(Color.GRAY);
+ }
+
+ return rep;