<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_search_results(self, search_results):
 """ Sets the Model Nodes using given search results. :param search_results: Search results. :type search_results: list :return: Method success. :rtype: bool """


        root_node = umbra.ui.nodes.DefaultNode(name="InvisibleRootNode")
        for search_result in search_results:
            search_file_node = SearchFileNode(name=search_result.file,
                                              parent=root_node)
            search_file_node.update(search_result)
            width = \
                max(self.__default_line_number_width,
                    max([len(foundations.strings.to_string(occurence.line)) for occurence in
                         search_result.occurrences]))
            for occurence in search_result.occurrences:
                formatter = "{{0:>{0}}}".format(width)
                name = "{0}:{1}".format(formatter.format(occurence.line + 1).replace(" ", "&nbsp;"),
                                        self.__format_occurence(occurence))
                search_occurence_node = SearchOccurenceNode(name=name,
                                                            parent=search_file_node)
                search_occurence_node.update(occurence)
        self.__model.initialize_model(root_node)
        return True