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; }