Exemplo n.º 1
0
    def getMergedTreeView(self):
        try:
            tv = TreeView(hide_root=True)
            tv.size_hint = 1, None
            tv.bind(minimum_height=tv.setter('height'))

            for key in self.config_files:
                merged_dict = self.config_files[key].get_merged_config()

            for key in merged_dict:
                if isinstance(merged_dict[key], dict):
                    newnode = tv.add_node(
                        TreeViewLabel(text=str(key),
                                      font_size=self.label_font_size,
                                      color=self.key_label_color))
                    self._addNodeToMergedTreeView(tv, newnode,
                                                  merged_dict[key])
                else:
                    newnode = tv.add_node(
                        TreeViewLabel(text=str(key) + ':' +
                                      str(merged_dict[key]),
                                      font_size=self.label_font_size,
                                      color=self.key_label_color))

            scv = ScrollView(pos=(0, 0), bar_width=10)
            scv.add_widget(tv)
            return scv

        except:
            e = sys.exc_info()[0]
            self.log.exception("Error: %s" % e)
            raise
Exemplo n.º 2
0
def populate_tree_view(tree_view: TreeView,
                       parent: Union[TreeView, TreeViewLabel, None],
                       node: Tree) -> None:
    """
    Populates a TreeView recursively from node data.

    :param tree_view:
    :param parent:
    :param node:
    :return:
    """
    if parent is None:
        tree_node = tree_view.add_node(
            TreeViewLabel(
                text=node['node_id'],
                is_open=True
            ))
    else:
        tree_node = tree_view.add_node(
            TreeViewLabel(
                text=node['node_id'],
                is_open=False
            ),
            parent
        )

    for child_node in node['children']:
        populate_tree_view(
            tree_view, tree_node, child_node
        )
Exemplo n.º 3
0
    def build(cls):

        #if exists(cls.pickle_fn()):
        #   result = pickle.load(open(cls.pickle_fn(), "rb" ) )

        tv = TreeView(hide_root=True)
        tv.size_hint = 1, None
        tv.bind(minimum_height=tv.setter('height'))

        data = Data()
        groups = data.get_groups()
        ingredients = data.get_ingredients()

        def already_created(node, text):
            if hasattr(node, 'text'):
                return node.text == text
            else:
                return False

        for group in groups:
            if len(
                    list(
                        filter(
                            lambda seq: already_created(seq, group['group']),
                            tv.iterate_all_nodes()))) == 0:
                node_group = tv.add_node(TreeViewLabel(text=group['group']))

            node_group = list(
                filter(lambda seq: already_created(seq, group['group']),
                       tv.iterate_all_nodes()))
            if len(node_group) > 0:
                if len(
                        list(
                            filter(
                                lambda seq: already_created(
                                    seq, group['subgroup']),
                                tv.iterate_all_nodes()))) == 0:
                    node_subgroup = tv.add_node(
                        TreeViewLabel(text=group['subgroup']), node_group[0])

        for ingredient in ingredients:
            node_subgroup = list(
                filter(
                    lambda seq: already_created(seq, ingredient['food_subgroup'
                                                                ]),
                    tv.iterate_all_nodes()))
            if len(node_subgroup) > 0:
                tv.add_node(
                    IngredientListPopupItem(
                        prop_id=ingredient['id'],
                        name=ingredient['name'],
                        name_scientific=ingredient['name_scientific'],
                        description=ingredient['description']),
                    node_subgroup[0])
            else:
                print('error adding {0}', ingredient['name'])

        cls.tv = tv
Exemplo n.º 4
0
 def populate_tree_view(self, parent, node):
     if parent is None:
         tree_node = self.add_node(
             TreeViewLabel(text=node['node_id'], is_open=True))
     else:
         tree_node = self.add_node(
             TreeViewLabel(text=node['node_id'], is_open=True), parent)
     for child_node in node['children']:
         self.populate_tree_view(tree_node, child_node)
Exemplo n.º 5
0
    def __init__(self, designer, **kwargs):
        '''Builds the widget_menu for the first time, and this
        function is never called again. 
        While building all the widget nodes are saved in a list called
        'saved_nodes' (without any binding) for future use'''

        super(NewWidgetsMenu, self).__init__(**kwargs)
        self.designer = designer
        self.canvas_area = designer.canvas_area
        self.popup = None

        self.keys = []
        self.layout_keys = []
        for cls in self.widget_list:
            if cls == "Camera":
                '''This is because there seems to be some bug in Gstreamer
                when we load a camera widget and don't use it '''
                continue
            try:
                factory_caller = getattr(Factory, str(cls))
                new_widget = factory_caller()
                if isinstance(new_widget, Layout):
                    self.layout_keys.append(cls)
                    continue
                if isinstance(new_widget, Widget):
                    self.keys.append(cls)
            except Exception as err:
                pass
                #self.status_bar.print_status(err.message)
        self.keys.append('Camera')
        self.keys.sort()
        self.layout_keys.sort()
        '''Adding all the widgets to the menu'''
        node = TreeViewLabel(text= " Widgets", bold = True, \
                             color=[.25, .5, .6, 1])
        self.treeview.add_node(node)
        self.saved_nodes.append(node)
        node = None
        for key in self.keys:
            text = '%s' % key
            node = TreeViewLabel(text=text)
            node_copy = copy.copy(node)
            self.saved_nodes.append(node_copy)
            node.bind(is_selected=self.add_new_widget)
            self.treeview.add_node(node)
        '''Adding all the Layouts to the menu'''
        node = TreeViewLabel(text= "Layouts ", bold = True, \
                             color=[.25, .5, .6, 1])
        self.treeview.add_node(node)
        self.saved_nodes.append(node)
        for key in self.layout_keys:
            text = '%s' % key
            node = TreeViewLabel(text=text)
            node_copy = copy.copy(node)
            self.saved_nodes.append(node_copy)
            node.bind(is_selected=self.add_new_widget)
            self.treeview.add_node(node)
Exemplo n.º 6
0
    def updateDEPDisplay(self):
        tv = self.treeView

        self.clearDEPDisplay()

        try:
            groupIdx = 1
            for recs, cert, cert_list in self.dep:
                groupNode = tv.add_node(
                    TreeViewLabel(text=(_('Group %d') % groupIdx)))

                certNode = tv.add_node(
                    TreeViewLabel(text='Signaturzertifikat'), groupNode)
                chainNode = tv.add_node(
                    TreeViewLabel(text='Zertifizierungsstellen'), groupNode)
                receiptsNode = tv.add_node(
                    TreeViewLabel(text='Belege-kompakt'), groupNode)

                if cert:
                    serial = key_store.numSerialToKeyId(cert.serial)
                    tv.add_node(
                        TreeViewKeyButton(text=_('Serial: ') + serial,
                                          key_id=serial,
                                          key=cert,
                                          on_press=self.addCert), certNode)

                for cert in cert_list:
                    serial = key_store.numSerialToKeyId(cert.serial)
                    tv.add_node(
                        TreeViewKeyButton(text=_('Serial: ') + serial,
                                          key_id=serial,
                                          key=cert,
                                          on_press=self.addCert), chainNode)

                receiptIdx = 0
                for cr in recs:
                    jws = depparser.expandDEPReceipt(cr)
                    rec, prefix = receipt.Receipt.fromJWSString(jws)
                    tv.add_node(
                        TreeViewReceiptButton(text=rec.receiptId,
                                              group_id=groupIdx - 1,
                                              receipt_id=receiptIdx,
                                              on_press=self.viewReceipt),
                        receiptsNode)
                    receiptIdx += 1

                groupIdx += 1

            return True

        except receipt.ReceiptException as e:
            displayError(e)

        self.clearDEPDisplay()
        return False
Exemplo n.º 7
0
    def add_file_to_tree_view(self, _file):
        '''This function is used to insert py file given by it's path argument
           _file. It will also insert any directory node if not present.
        '''

        self.tree_view.root_options = dict(text='')
        dirname = os.path.dirname(_file)
        dirname = dirname.replace(self.proj_loader.proj_dir, '')
        # The way os.path.dirname works, there will never be '/' at the end
        # of a directory. So, there will always be '/' at the starting
        # of 'dirname' variable after removing proj_dir

        # This algorithm first breaks path into its components
        # and creates a list of these components.
        _dirname = dirname
        _basename = 'a'
        list_path_components = []
        while _basename != '':
            _split = os.path.split(_dirname)
            _dirname = _split[0]
            _basename = _split[1]
            list_path_components.insert(0, _split[1])

        if list_path_components[0] == '':
            del list_path_components[0]

        # Then it traverses from root_node to its children searching from
        # each component in the path. If it doesn't find any component
        # related with node then it creates it.
        node = self._root_node
        while list_path_components != []:
            found = False
            for _node in node.nodes:
                if _node.text == list_path_components[0]:
                    node = _node
                    found = True
                    break

            if not found:
                for component in list_path_components:
                    _node = TreeViewLabel(text=component)
                    self.tree_view.add_node(_node, node)
                    node = _node
                list_path_components = []
            else:
                del list_path_components[0]

        # Finally add file_node with node as parent.
        file_node = TreeViewLabel(text=os.path.basename(_file))
        file_node.bind(on_touch_down=self._file_node_clicked)
        self.tree_view.add_node(file_node, node)

        self.tree_view.root_options = dict(
            text=os.path.basename(self.proj_loader.proj_dir))
Exemplo n.º 8
0
    def __init__(self, qhash, query, qid, parent):
        self.qhash = qhash
        self.query = query
        self.ids = [qid]
        self.parent = parent

        node = parent.query_tree.add_node(
            TreeViewLabel(text=parent.get_from(query)))
        parent.query_nodes[qhash] = node
        parent.query_tree.add_node(TreeViewLabel(text=query), node)
        self.instances = {}
Exemplo n.º 9
0
    def __init__(self, **kwargs):
        super(FileNavigator, self).__init__(hide_root=True, **kwargs)

        self._ctxt.file_navigator = self

        self.local_documents = TreeViewLabel(text="Local Documents")
        self.add_node(self.local_documents)

        remote_documents = TreeViewLabel(text="Remote Documents")
        self.add_node(remote_documents)

        self.reload_local_documents()
def populate_tree_view(tree_view, parent, node, node_dict=None):
    if parent is None:
        tree_node = tree_view.add_node(
            TreeViewLabel(text=node['node_id'], is_open=True))
    else:
        tree_node = tree_view.add_node(
            TreeViewLabel(text=node['node_id'], is_open=True), parent)
    if node_dict != None:
        node_dict[tree_node] = node['node_id']

    for child_node in node['children']:
        populate_tree_view(tree_view, tree_node, child_node, node_dict)
Exemplo n.º 11
0
 def _addNodeToMergedTreeView(self, tree_view, parent_node, config):
     for key in config:
         if isinstance(config[key], dict):
             newnode = tree_view.add_node(
                 TreeViewLabel(text=str(key),
                               font_size=self.label_font_size,
                               color=self.key_label_color), parent_node)
             self._addNodeToMergedTreeView(tree_view, newnode, config[key])
         else:
             newnode = tree_view.add_node(
                 TreeViewLabel(text=str(key) + ':' + str(config[key]),
                               font_size=self.label_font_size,
                               color=self.key_label_color), parent_node)
Exemplo n.º 12
0
 def build(self):
     box = BoxLayout()
     tree = DroppableTreeView()
     tree.add_node(DraggableNode(text='node1',relation_manager=tree.relation_manager))
     tree.add_node(DraggableNode(text='node2',relation_manager=tree.relation_manager))
     tree.add_node(DraggableNode(text='node3',relation_manager=tree.relation_manager))
     tree.add_node(DraggableNode(text='node4',relation_manager=tree.relation_manager))
     box.add_widget(tree)
     tree2 = TreeView()
     node = TreeViewLabel(text='node1')
     tree2.add_node(node)
     tree2.add_node(TreeViewLabel(text='node2'),node)
     tree2.add_node(TreeViewLabel(text='node3'))
     tree2.add_node(TreeViewLabel(text='node4'))
     box.add_widget(tree2)
     return box
Exemplo n.º 13
0
 def _populate_nodes(self):
     '''
     Set up primary headers.
     '''
     for header in ["Spectra", "Models"]:
         node = self.add_node(TreeViewLabel(text=header))
         self.headers.append(node)
Exemplo n.º 14
0
 def load_tmpl(self, tmpl):
     #Now add on load
     node = self.add_node(
         TreeViewLabel(text=tmpl.template_name,
                       color_selected=(.6, .6, .6, .8)))
     node.is_leaf = False  #add the thingy
     #point to the template
     node.template = tmpl
     self.tmplDict[tmpl] = node
     #Deal with Template Properties:
     for pname, editor in sorted(tmpl.vars.items()):
         self.add_node(TreeViewField(name=pname, editor=editor(tmpl)), node)
     #Deal with KV style elemebts
     for fname in sorted(tmpl.ids.keys()):
         if not isinstance(tmpl.ids[fname], BaseField):
             continue
         _wid = tmpl.ids[fname]
         if not _wid.editable:
             continue
         if _wid.default_attr:
             w = _wid.params[_wid.default_attr](_wid)
             if w is not None:  #None when not editable
                 self.add_node(
                     TreeViewField(pre_label=fname,
                                   name=_wid.default_attr,
                                   editor=w), node)
     self.toggle_node(node)
     return node
Exemplo n.º 15
0
    def __init__(self, lista, nombreABM, **kwargs):
        # make sure we aren't overriding any important functionality
        super(KivyPanelABM, self).__init__(**kwargs)
        self.cols = 2
        self.nombreABM = nombreABM
        self.lista = TreeView(hide_root=True, size_hint_x=0.9)
        self.add_widget(self.lista)
        self.panelbotoneraAcciones = GridLayout(cols=1,
                                                size_hint_x=0.1,
                                                size_hint_y=None,
                                                size=(0, 32))
        # self.panelbotoneraAcciones.padding=[100,10,10,10]
        self.btnAdd = Button(background_normal="Add.png",
                             size_hint=(None, None),
                             size=(32, 32))
        self.btnAdd.bind(on_press=self.btnEventAdd)
        self.btnEdit = Button(background_normal="Edit.png",
                              size_hint=(None, None),
                              size=(32, 32))
        self.btnEdit.bind(on_press=self.btnEventEdit)
        self.btnDel = Button(background_normal="Delete.png",
                             size_hint=(None, None),
                             size=(32, 32))
        self.btnDel.bind(on_press=self.btnEventDel)

        self.panelbotoneraAcciones.add_widget(self.btnAdd)
        self.panelbotoneraAcciones.add_widget(self.btnEdit)
        self.panelbotoneraAcciones.add_widget(self.btnDel)
        self.add_widget(self.panelbotoneraAcciones)

        for elemento in lista:
            self.lista.add_node(TreeViewLabel(text=elemento))
Exemplo n.º 16
0
    def populate_tree_view(self, tree_view, details_list, parent, node):
        if parent is None:
            tree_node = tree_view.add_node(
                TreeViewLabel(text=node['node_id'], is_open=True))
        elif node['children'] == []:
            tree_node = tree_view.add_node(
                TransactionTreeNode(transaction_list=node['node_id'],
                                    details_list=details_list,
                                    is_open=True), parent)
        else:
            tree_node = tree_view.add_node(
                TreeViewLabel(text=node['node_id'], is_open=True), parent)

        for child_node in node['children']:
            self.populate_tree_view(tree_view, details_list, tree_node,
                                    child_node)
Exemplo n.º 17
0
def populate_tree(nodes, rootnode, parent=None):
    if parent is not None:
        for node in nodes:
            new = rootnode.add_node(node, parent)
            new.id = node.id
            new.browsable = node.browsable
            new.populated = node.populated
            if new.browsable:
                rootnode.add_node(TreeViewLabel(text='fake'), new)
    else:
        for node in nodes:
            new = rootnode.add_node(node)
            new.id = node.id
            new.browsable = node.browsable
            new.populated = node.populated
            if new.browsable:
                rootnode.add_node(TreeViewLabel(text='fake'), new)
Exemplo n.º 18
0
    def _load_local_documents(self):
        for document in DocumentDao().list():
            document_label = TreeViewLabel(text="%s - %s" %
                                           (document.location, document.name))

            document_label.bind(on_touch_down=partial(
                self._open_document, document_location=document.location))
            self.add_node(document_label, parent=self.local_documents)
Exemplo n.º 19
0
 def build_dir(self):
     self.ids.script_tree.clear_widgets()
     self.ids.script_tree.nodes = list()
     from kivy.uix.treeview import TreeViewLabel
     from glob import glob
     from os.path import join,split
     for script in glob(join('scripts','*.py')):
         self.ids.script_tree.add_node(TreeViewLabel(text=split(script)[-1]))
Exemplo n.º 20
0
    def build(self):
        duzen = BoxLayout(orientation='vertical')

        self.agac_koku = TreeView(hide_root=True)

        kuruyemisler = [('Sert Kabuklular', ('Ceviz', 'Fındık', 'Badem')),
                        ('Meyve Kuruları', ('Dut', 'Vişne', 'Kayısı', 'İncir'))
                        ]

        for ky in kuruyemisler:
            eb = self.agac_koku.add_node(TreeViewLabel(text=ky[0]))
            for k in ky[1]:
                self.agac_koku.add_node(TreeViewLabel(text=k), eb)

        duzen.add_widget(self.agac_koku)

        return duzen
Exemplo n.º 21
0
 def remove_childs(self, instance, value):
     br = False
     while len(value.nodes) > 0:
         br = True
         instance.remove_node(value.nodes[0])
     value.populated = False
     if br:
         instance.add_node(TreeViewLabel(text='fake'), value)
Exemplo n.º 22
0
def addScreenInfo(tree_view, screen):
    if not screen:
        return False
    root_node = tree_view.add_node(TreeViewLabel(text='Screen', is_open=False))

    t = 'Standard window width: ' + str(screen['px'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)
    t = 'Standard window height: ' + str(screen['py'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)

    if screen['minx'] == 0:
        t = 'Minimum window width: no limit'
    else:
        t = 'Minimum window width: ' + str(screen['minx'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)

    if screen['maxx'] == 0:
        t = 'Maximum window width: no limit'
    else:
        t = 'Maxmimum window width: ' + str(screen['maxy'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)

    if screen['minx'] == 0:
        t = 'Minimum window height: no limit'
    else:
        t = 'Minimum window height: ' + str(screen['miny'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)

    if screen['maxy'] == 0:
        t = 'Maximum window height: no limit'
    else:
        t = 'Maxmimum window height: ' + str(screen['maxy'])
    tree_view.add_node(TreeViewLabel(text=t, is_open=False), root_node)
Exemplo n.º 23
0
 def split_input_file_task(self):
     controller.save_file_input(self.filename, self.file_input, AES_CRYPTO)
     self.file_view.add_node(TreeViewLabel(text=self.filename))
     self.update_storage_view()
     try:
         controller.update_data(self.filename, AES_CRYPTO)
     except CloudTokenError as err:
         open_popup_error('Cloud Token', err)
     self.stop.set()
Exemplo n.º 24
0
    def generateTreeView(self, path, treeview):

        # "D:\dataset\img"
        self.labeled_data = {}

        iterator = treeview.iterate_all_nodes()
        try:
            for node in list(iterator):
                treeview.remove_node(node)
        except:
            pass

        if self.mode == 'server':

            request_result = requests.get('http://localhost:3000/api/images')
            image_list = request_result.json()['data']

            for image in image_list:
                tree_node = treeview.add_node(
                    TreeViewLabel(text=image['image_names'], is_open=True))
                self.labeled_data[image['image_names']] = (
                    image['image_names'], tree_node, [])

        elif self.mode == 'local':

            for root, dirs, files in os.walk(path):
                for file in files:

                    if root == path:
                        tree_node = treeview.add_node(
                            TreeViewLabel(text=file, is_open=True))

                        # print(root)
                        # print(dirs)
                        # print(file)

                        full_path = root + '/' + file

                        self.labeled_data[file] = (full_path, tree_node, [])

                        # aa = treeview.add_node(TreeViewLabel(text='blah',  is_open=True), tree_node)
                        # treeview.remove_node(aa)
                    else:
                        break
Exemplo n.º 25
0
    def add_nkeys(self, tree, data, n):
        self.lock.acquire()
        self.clear_tree(self.values)

        for key in data:
            node = TreeViewLabel(text=key)
            node.bind(on_touch_down=self.suggestion_node_clicked)
            self.values.add_node(node)
            count = count + 1
        self.lock.release()
Exemplo n.º 26
0
    def _addDictNodeToFileTreeView(self, tree_view, parent_node, configkey,
                                   config):
        newnode = tree_view.add_node(
            TreeViewLabel(text=str(configkey),
                          font_size=self.label_font_size,
                          color=self.key_label_color), parent_node)

        for key in config:
            if isinstance(config[key], dict):
                self._addDictNodeToFileTreeView(tree_view, newnode, key,
                                                config[key])
            else:
                tree_view.add_node(
                    TreeViewLabel(text='[color=#00EBDB]' + str(key) +
                                  ':[/color][color=#FFADC9]' +
                                  str(config[key]) + '[/color]',
                                  font_size=self.label_font_size,
                                  color=self.key_label_color,
                                  markup=True), newnode)
Exemplo n.º 27
0
 def insert_styles(self, target):
     style_node = self.ids.params.add_node(TreeViewLabel(text="Style"))
     self.ids.params.add_node(
         TreeViewField(name='styles',
                       editor=target.params['styles'](target),
                       size_hint_y=None,
                       height=30), style_node)
     for style in target.styles:
         from styles import getStyle
         s_node = self.ids.params.add_node(TreeViewLabel(text=style),
                                           style_node)
         sklass = getStyle(style)
         if sklass:
             for param, editor in sklass.attrs.items():
                 self.ids.params.add_node(
                     TreeViewField(name=param,
                                   editor=editor(target),
                                   size_hint_y=None,
                                   height=30), s_node)
Exemplo n.º 28
0
 def __init__(self, **kwargs):
     super(AssignmentsList, self).__init__(**kwargs)
     l = Label(text='ASSIGNMENT LIST')
     tv = TreeView(root_options=dict(text='Assignments'), hide_root=True)
     for t in tour:
         for node in t:
             if node in E:
                 itemNameTemp = str(data[node][1]) + ' ' + str(
                     data[node][2])
                 branchNameTemp = tv.add_node(
                     TreeViewLabel(text=itemNameTemp, is_open=True))
         for node in t:
             if node not in E:
                 dropItem = str(data[node][1]) + ' ' + str(data[node][2])
                 tv.add_node(TreeViewLabel(text=dropItem), branchNameTemp)
     # self.add_widget(l)
     self.add_widget(tv)
     tv.bind(on_node_expand=lambda self, evt: ViewMap().nodeExpanded())
     tv.bind(on_node_collapse=lambda self, evt: ViewMap().nodeColapsed())
Exemplo n.º 29
0
    def build(self):
        duzen=BoxLayout(orientation='vertical')
        
        self.agac_koku = TreeView(hide_root=True, size_hint_y=0.8)
        
        kuruyemisler=[('Sert Kabuklular',('Ceviz', 'Fındık', 'Badem')), 
                      ('Meyve Kuruları',('Dut', 'Vişne', 'Kayısı', 'İncir'))]
        
        for ky in kuruyemisler:
            eb=self.agac_koku.add_node(TreeViewLabel(text=ky[0]))
            for k in ky[1]:
                self.agac_koku.add_node(TreeViewLabel(text=k),eb)

        duzen.add_widget(self.agac_koku)
        dgm=Button(text='Elemanları Yaz', size_hint_y=0.2)
        dgm.bind(on_press=self.elemanlari_yaz)
        duzen.add_widget(dgm)
        
        return duzen
Exemplo n.º 30
0
    def _addFileNodeToFileTreeView(self, tree_view, parent_node, config_file):
        newnode = tree_view.add_node(
            TreeViewLabel(text=config_file.filename,
                          font_size=self.label_font_size,
                          color=self.filename_label_color), parent_node)

        for child_filename in config_file.child_files:
            self._addNodeToFileTreeView(
                tree_view, newnode, config_file.child_files[child_filename])

        for configkey in config_file.config:
            if isinstance(config_file.config[configkey], dict):
                self._addDictNodeToFileTreeView(tree_view, newnode, configkey,
                                                config_file.config[configkey])
            else:
                tree_view.add_node(
                    TreeViewLabel(text=str(configkey) + ':' +
                                  str(config_file.config[configkey]),
                                  font_size=self.label_font_size,
                                  color=self.key_label_color), newnode)