void (T oldValue, int oldIndex, List<? extends T> listItems, List<ListItemPresentation> presentations) { myPresentations = presentations; mergeListItems(myListModel, myList, listItems); if (myList.isEmpty()) { createRightComponent(); } else if (myList.getSelectedIndex() < 0) { myList.setSelectedIndex(myListModel.getSize() > oldIndex ? oldIndex : 0); } else { Object newValue = myList.getSelectedValue(); updateRightComponent(oldValue == null || !oldValue.equals(newValue) || myList.isEmpty()); } }