private void updateList(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());
    }
  }
private void updateList(T oldValue, int oldIndex, List<? extends T> listItems, List<ListItemPresentation> presentations)