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
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 )
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
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)
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)
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
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))
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 = {}
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)
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)
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
def _populate_nodes(self): ''' Set up primary headers. ''' for header in ["Spectra", "Models"]: node = self.add_node(TreeViewLabel(text=header)) self.headers.append(node)
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
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))
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)
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)
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)
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]))
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
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)
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)
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()
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
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()
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)
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)
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())
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
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)