@Override
      public void valueChanged(ListSelectionEvent e) {
        int selectedIndex = myResultsList.getSelectedIndex();
        if (prevSelectedIndex != -1 &&
            selectedIndex != -1 &&
            myListModel.getElementAt(selectedIndex) instanceof SearchListModel.ResultsNotificationElement) {
          int newIndex;
          int listSize = myListModel.getSize();
          if (prevSelectedIndex == selectedIndex + 1) {
            newIndex = (selectedIndex - 1 + listSize) % listSize;
          }
          else if (prevSelectedIndex == (selectedIndex - 1 + listSize) % listSize) {
            newIndex = selectedIndex + 1;
          }
          else {
            newIndex = prevSelectedIndex;
          }
          myResultsList.setSelectedIndex(newIndex);
          ScrollingUtil.ensureIndexIsVisible(myResultsList, newIndex, 0);
          return;
        }
        else {
          prevSelectedIndex = selectedIndex;
        }
        Object newValue = myResultsList.getSelectedValue();
        if (isPreviewEnabled() && myProject != null && newValue != null && newValue != currentValue && myUsagePreviewPanel != null) {
          schedulePreview(newValue);
          currentValue = newValue;
        }
      }
@Override
      public void valueChanged(ListSelectionEvent e)