public List<Item> getItems() {
        List<Item> list = new ArrayList<Item>( 1 );
        for ( @SuppressWarnings( "rawtypes" )
        Enumeration e = ( (DefaultMutableTreeNode) treeModel.getRoot() ).depthFirstEnumeration(); e
                .hasMoreElements(); ) {
            DefaultMutableTreeNode curNode = (DefaultMutableTreeNode) e.nextElement();
            if ( curNode instanceof LeafNode ) {
                if ( UserPreferences.PREF_BEHAVIOR_DOWNLOAD_EVERYTHING )
                    list.add( ( (LeafNode) curNode ).getItem() );
                else {
                    TreeNode[] nodePath = curNode.getPath();
                    for ( int i = 0; i < nodePath.length; i++ ) {
                        if ( nodePath[ i ] instanceof FolderNode && ( (FolderNode) nodePath[ i ] ).isAutoDL() ) {
                            list.add( ( (LeafNode) curNode ).getItem() );
                            break;
                        }
                    }
                }
            }
        }
        if ( list.isEmpty() )
            return null;
        else
            return list;
    }