def METHOD_NAME(self, context, layout):
    if not self.nesting:
        layout.label(text="No data passed")
        return
    # https://blender.stackexchange.com/questions/51256/how-to-create-uilist-with-auto-aligned-three-columns/51263#51263
    lvl_split = 0.08
    shape_split = 0.6
    flat_split = 0.5
    col = layout.column()
    col.label(text='Lvl|Shape|Flatten|Wrap')
    for i, entry in zip(range(self.nesting), self.levels_config):
        nesting = self.nesting - i - 1
        row = col.split(factor=lvl_split)
        row.label(text=f"{i+1}")
        row = row.split(factor=shape_split)
        row.label(text=entry.description)
        row = row.split(factor=flat_split)
        if nesting < 2:
            row.label(icon='X', text='')
        else:
            row.prop(entry, 'flatten', text='')
        row.prop(entry, 'wrap', text='')