@Override public void setDefaultCompletionCellRenderer(ListCellRenderer<Object> r) { if (r==null) { r = createDefaultCompletionCellRenderer(); } if (r instanceof CompletionCellRenderer && Util.getUseSubstanceRenderers()) { if (UIManager.getLookAndFeel().getClass().getName(). contains(".Substance")) { CompletionCellRenderer ccr = (CompletionCellRenderer)r; delegateToSubstanceRenderer(ccr); } } renderer = r; }
@Override public void setUI(ListUI ui) { if (Util.getUseSubstanceRenderers() && SUBSTANCE_LIST_UI.equals(ui.getClass().getName())) { // Substance requires its special ListUI be installed for // its renderers to actually render (!), but long completion // lists (e.g. PHPCompletionProvider in RSTALanguageSupport) // will simply populate too slowly on initial display (when // calculating preferred size of all items), so in this case // we give a prototype cell value. CompletionProvider p = ac.getCompletionProvider(); BasicCompletion bc = new BasicCompletion(p, "Hello world"); setPrototypeCellValue(bc); } else { // Our custom UI that is faster for long HTML completion lists. ui = new FastListUI(); setPrototypeCellValue(null); } super.setUI(ui); }