void (boolean mayCheckReused, boolean onExplicitAction) { assert !myUpdating; LookupElement prevItem = getCurrentItem(); myUpdating = true; try { final boolean reused = mayCheckReused && checkReused(); boolean selectionVisible = isSelectionVisible(); boolean itemsChanged = updateList(onExplicitAction, reused); if (isVisible()) { LOG.assertTrue(!ApplicationManager.getApplication().isUnitTestMode()); myUi.refreshUi(selectionVisible, itemsChanged, reused, onExplicitAction); } } finally { myUpdating = false; fireCurrentItemChanged(prevItem, getCurrentItem()); fireUiRefreshed(); } }