@NotNull
 public int[] getSelectedIndices() {
   Object[] values = myList.getSelectedValues();
   int[] result = new int[values.length];
   for (int i = 0, length = values.length; i < length; i++) {
     result[i] = ((Item) values[i]).index;
   }
   return result;
 }
 @NotNull
 public String getSelectedText() {
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (Object o : myList.getSelectedValues()) {
     if (first) first = false;
     else sb.append("\n");
     String s = ((Item) o).longText;
     sb.append(StringUtil.convertLineSeparators(s));
   }
   return sb.toString();
 }
 protected Object[] getSelectedRoots() {
   return myList.getSelectedValues();
 }