public List getSelectedList() {
    List result = new ArrayList();

    BinTreeTableNode rootNode = (BinTreeTableNode) getRoot();

    for (int i = 0, max = rootNode.getChildCount(); i < max; i++) {
      BinTreeTableNode subclassNode = (BinTreeTableNode) rootNode.getChildAt(i);
      //      if (!subclassNode.isSelected()) {
      //        continue;
      //      }

      for (int j = 0, maxJ = subclassNode.getChildCount(); j < maxJ; ++j) {
        BinTreeTableNode methodNode = (BinTreeTableNode) subclassNode.getChildAt(j);

        if (methodNode.isSelected()) {
          result.add(methodNode.getBin());
        }
      }
    }

    // FIXES tests ;)
    Collections.sort(
        result,
        new Comparator() {
          public int compare(Object obj1, Object obj2) {
            return ((BinMethod) obj1).getName().compareTo(((BinMethod) obj2).getName());
          }
        });

    return result;
  }