Returns a collection of filter terms for this tree widget based on \
        the results in the tree items.  If the optional columns or ignore \
        values are supplied then the specific columns will be used to generate \
        the search terms, and the columns in the ignore list will be stripped \
        out.
        
        :param      columns | [<str> column, ..] || None
                    ignore  | [<str> column, ..] || None
        
        :return     {<str> column: [<str> term, ..]}

def collectFilterTerms( self, columns = None, ignore = None ):
        """
        Returns a collection of filter terms for this tree widget based on \
        the results in the tree items.  If the optional columns or ignore \
        values are supplied then the specific columns will be used to generate \
        the search terms, and the columns in the ignore list will be stripped \
        out.
        
        :param      columns | [<str> column, ..] || None
                    ignore  | [<str> column, ..] || None
        
        :return     {<str> column: [<str> term, ..]}
        """
        if ( columns == None ):
            columns = self.columns()
            
        if ( ignore ):
            columns = [column for column in columns if not column in ignore]
        
        # this will return an int/set pairing which we will change to a str/list
        terms = {}
        for column in columns:
            index = self.column(column)
            if ( index == -1 ):
                continue
            
            terms[index] = set()
        
        self.__collectFilterTerms(terms)
        return dict([(self.columnOf(i[0]), list(i[1])) for i in terms.items()])