from kivy.app import App
from kivy.uix.treeview import TreeView
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.treeview import TreeViewLabel
from kivy.properties import NumericProperty, ObjectProperty


class CustomLabel(TreeViewLabel):
    num = NumericProperty()

    def on_is_selected(self, instance, value):
        App.get_running_app().main_window.ids.textable_class.text = \
            'Selectes Labal is - %d' % self.num


class TreeWindow(BoxLayout):
    textable_class = ObjectProperty()

    def __init__(self, **kwargs):
        super(TreeWindow, self).__init__(**kwargs)
        tree = TreeView(root_options=dict(text='Tree Widget'))

        for counter in range(1, 11):
            name = 'Label ' + str(counter)
            tree.add_node(CustomLabel(text=name, num=counter))

        self.add_widget(tree)
