public void init() { myExistingListsCombo.setRenderer( new ColoredListCellRendererWrapper() { private final IssueLinkRenderer myLinkRenderer = new IssueLinkRenderer(myProject, this); @Override protected void doCustomize( JList list, Object value, int index, boolean selected, boolean hasFocus) { if (value instanceof LocalChangeList) { String name = ((LocalChangeList) value).getName(); if (myExistingListsCombo.getWidth() == 0) { name = name.length() > 10 ? name.substring(0, 7) + " .." : name; } else { final FontMetrics fm = list.getFontMetrics(list.getFont()); final int width = fm.stringWidth(name); final int listWidth = myExistingListsCombo.getWidth(); if ((listWidth > 0) && (width > listWidth)) { final String truncated = CommittedChangeListRenderer.truncateDescription( name, fm, listWidth - fm.stringWidth(" ..") - 7); if (truncated.length() > 5) { name = truncated + " .."; } } } myLinkRenderer.appendTextWithLinks( name, ((LocalChangeList) value).isDefault() ? SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES : SimpleTextAttributes.REGULAR_ATTRIBUTES); } } }); myNewListPanel.init(null); myRbNew.addFocusListener( new FocusAdapter() { @Override public void focusGained(FocusEvent e) { getPreferredFocusedComponent().requestFocusInWindow(); } }); final ComboboxSpeedSearch search = new ComboboxSpeedSearch(myExistingListsCombo); search.setComparator(new SpeedSearchComparator(true, false)); }