private int setItemTextLabel( LookupElement item, final Color foreground, final boolean selected, LookupElementPresentation presentation, int allowedWidth) { boolean bold = presentation.isItemTextBold(); Font customItemFont = myLookup.getCustomFont(item, bold); myNameComponent.setFont( customItemFont != null ? customItemFont : bold ? myBoldFont : myNormalFont); int style = getStyle(bold, presentation.isStrikeout(), presentation.isItemTextUnderlined()); final FontMetrics metrics = getRealFontMetrics(item, bold); final String name = trimLabelText(presentation.getItemText(), allowedWidth, metrics); int used = RealLookupElementPresentation.getStringWidth(name, metrics); renderItemName(item, foreground, selected, style, name, myNameComponent); return used; }
private void setTailTextLabel( boolean isSelected, LookupElementPresentation presentation, Color foreground, int allowedWidth, boolean nonFocusedSelection, FontMetrics fontMetrics) { int style = getStyle(false, presentation.isStrikeout(), false); for (LookupElementPresentation.TextFragment fragment : presentation.getTailFragments()) { if (allowedWidth < 0) { return; } String trimmed = trimLabelText(fragment.text, allowedWidth, fontMetrics); myTailComponent.append( trimmed, new SimpleTextAttributes( style, getTailTextColor(isSelected, fragment, foreground, nonFocusedSelection))); allowedWidth -= RealLookupElementPresentation.getStringWidth(trimmed, fontMetrics); } }