def METHOD_NAME(self, table):
    ''' Display a table in which the values in first column form one or more trees.
        The table has row with fields that are strings of identifiers/names.
        First convert each row into a row_widget and item_widgets
        that are displayed in a TableTree.
        Each input row shall start with a parent field (field[0])
        that determines the tree hierarchy but that is not displayed on that row.
        The parent widget becomes an attribute of the first child widget.
        Field[1] is the row color, field[2:] contains the row values.
        Top child(s) shall have a parent field value that is blank ('').
        The input table rows shall be in the correct sequence.
    '''
    parent_names = []
    hierarchy = {}
    indent_level = 0
    widget_dict = {}  # key, value = name, widget
    for row in table:
        parent_name = row[0]
        row_color = row[1]
        child_name = row[2]
        row_widget = gui.TableRow(style={'background-color': row_color})
        # Determine whether hierarchy of sub_sub concepts shall be open or not
        openness = 'true'
        row_widget.attributes['treeopen'] = openness
        # widget_dict[child_name] = row_widget
        for index, field in enumerate(row[2:]):
            # Determine field color
            field_color = '#ffff99'
            row_item = gui.TableItem(text=field,
                                     style={'text-align': 'left',
                                            'background-color': field_color})
            row_widget.append(row_item, field)
            if index == 0:
                row_item.parent = parent_name
                child_id = row_item
        # The root of each tree has a parent that is blank ('').
        # Each row with childs has as attribute openness, which by default is 'true'.
        # The fields can be given other attributes, such as color.
        # Verify whether the parent_name (child.parent)
        # is present or is in the list of parent_names.
        print('parent-child:', parent_name, child_name)
        if parent_name == '':
            hierarchy[child_name] = 0
            parent_names.append(child_name)
            target_level = 0
        elif parent_name in parent_names:
            hierarchy[child_name] = hierarchy[parent_name] + 1
            target_level = hierarchy[child_name]
        else:
            # Parent not in parent_names
            print('Error: Parent name "{}" does not appear in network'
                  .format(parent_name))
            return
        print('indent, target-pre:', indent_level, target_level,
              parent_name, child_name)
        # Indentation
        if target_level > indent_level:
            self.tree_table.begin_fold()
            indent_level += 1
        if target_level < indent_level:
            while target_level < indent_level:
                indent_level += -1
                self.tree_table.end_fold()
        print('indent, target-post:', indent_level, target_level,
              parent_name, child_name)
        if child_name not in parent_names:
            parent_names.append(child_name)
        self.tree_table.append(row_widget, child_name)