示例#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
示例#2
0
 def populateTreeNode(self, treeview, node):
     try:
         if not node:
             grounds = IOT.getGrounds(True)
             for ground in grounds:
                 result = TreeViewLabel(text=ground['title'],is_open=False, is_leaf=False, no_selection=True)
                 result.ground_id=ground['id']
                 yield result
         elif hasattr(node, 'ground_id'):
             devices = IOT.getDevices(node.ground_id)
             for device in devices:
                 result = TreeViewLabel(is_open=False, is_leaf=False, no_selection=True)
                 result.device_id = device['id']
                 if device['title']:
                     result.text=device['title']             # for old devices that didn't ahve a title yet.
                 else:
                     result.text=device['name']
                 yield result
         elif hasattr(node, 'device_id'):
             assets = IOT.getAssets(node.device_id)
             for asset in assets:
                 result = TreeViewLabel(is_open=False, is_leaf=True)
                 result.asset_id = asset['id']
                 if asset['title']:
                     result.text=asset['title']             # for old devices that didn't ahve a title yet.
                 else:
                     result.text=asset['name']
                 yield result
     except Exception as e:
         showError(e)
示例#3
0
文件: treeview.py 项目: gmork2/kvnm
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
        )
示例#4
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)
示例#5
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
示例#6
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)
示例#7
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()
示例#8
0
文件: rktool.py 项目: brBart/RKSV
    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
示例#9
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))
示例#10
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))
示例#11
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 = {}
示例#12
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)
示例#14
0
 def draw_tree(self, root, root_node):
     '''A recursive function to traverse the complete widget tree and
     build the WidgetTree.
     Here 'root' will be the widget in question, and 'root_node'
     a TreeViewLabel denoting the widget'''
     treeview = self.treeview
     for child in root.children:
         node = TreeViewLabel(text = child.__class__.__name__)
         node.bind(is_selected = partial(self.notify_canvas, child))
         self.widget_dict[node.uid] = child 
         treeview.add_node(node, root_node)
         self.draw_tree(child, node)
示例#15
0
 def draw_tree(self, root, root_node):
     '''A recursive function to traverse the complete widget tree and
     build the WidgetTree.
     Here 'root' will be the widget in question, and 'root_node'
     a TreeViewLabel denoting the widget'''
     treeview = self.treeview
     for child in root.children:
         node = TreeViewLabel(text=child.__class__.__name__)
         node.bind(is_selected=partial(self.notify_canvas, child))
         self.widget_dict[node.uid] = child
         treeview.add_node(node, root_node)
         self.draw_tree(child, node)
示例#16
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)
示例#17
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)
示例#18
0
 def populate(self,node=None,body=None):
     if hasattr(body,'orbiting_bodies'):
         if node: node.no_selection=True
         for o in body.orbiting_bodies:
             l = TreeViewLabel(text=o.name) 
             l.site = None               
             n = self.add_node(l,node)
             self.populate(n,o)
     if hasattr(body,'sites'):
         if node: node.no_selection=True
         for o in body.sites:
             l = TreeViewLabel(text=o.name)
             l.site = o
             n = self.add_node(l,node)
             self.populate(n,o)
示例#19
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))
示例#20
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
示例#21
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)
示例#22
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
示例#23
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)
示例#24
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
示例#25
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]))
示例#26
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)
示例#27
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)
示例#28
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)
示例#29
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()
示例#30
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
示例#31
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)
示例#32
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)
示例#33
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())
示例#34
0
文件: main2.py 项目: stdgn/kivy-tr
    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
示例#35
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)
示例#36
0
文件: main.py 项目: mbaser/kivy-tr
    def update_tables_tree(self):
    
        for node in self.root.ids.table_tree.iterate_all_nodes():
    
            self.root.ids.table_tree.remove_node(node)
    
        self.table_dropdown = DropDown()
        if self.conn:
            for typ in ('table','view'):
                self.cursor.execute("SELECT name FROM sqlite_master WHERE type = '%s'" % typ)
                result=self.cursor.fetchall()
                if result:
                
                
                
                    tvlabeltext='{0} ({1})'.format( _(typ.title()+'s'), len(result) )
                    tvlabel=TreeViewLabel(text=tvlabeltext)
                    parent_node=self.root.ids.table_tree.add_node(tvlabel)
                    for tb in result:
                        tvlabel=TreeViewLabel(text=tb[0], markup=True)
                        tvlabel.tbtype=typ
                        tvlabel.tbname=tb[0]
                        tb_node=self.root.ids.table_tree.add_node(tvlabel, parent_node)
                        
                        self.cursor.execute('PRAGMA TABLE_INFO(`%s`)' % tb[0])
                        
                        #populate dropdown list in browse data tab. 
                        if not tb[0]=='sqlite_sequence':     
                            btn = Button(text=tb[0], size_hint_y=None, height=20)
                            self.table_dropdown.add_widget(btn)
                            btn.bind(on_release=lambda btn: self.table_dropdown.select(btn.text))
      
                        for field in self.cursor.fetchall():
                            tvlabeltext='[b]{0}[/b]    {1}'.format( field[1], field[2] )
                            tvlabel=TreeViewLabel(text=tvlabeltext, markup=True)               
                            self.root.ids.table_tree.add_node(tvlabel, tb_node)

            self.table_dropdown.bind(on_select=self.set_browse_data_main_button_text)
示例#37
0
 def insert_games(self, req, result):
     "Asynch. Insert Search Results in a tree"
     self.ids.results.clear_widgets()
     xml = ET.fromstring(unicode(result).encode('utf-8'))
     ##wait_cursor(False)
     bgs=xml.findall('boardgame')
     isID=False
     if not bgs:
         bgs=xml.findall('item')
         isID=True
     for index,bg in enumerate(bgs):
         #print index, bg, bg.tag, bg.text, bg.attrib, bg.keys(), bg.tail,
         try:
             game, name, year = bg.iter()
         except ValueError:
             game,name = bg.iter()
         tvl = TreeViewLabel(text = "%s (%s)"%(name.text, year.text))
         tvl.gid = game.attrib['objectid']
         tvl.name = name.text
         self.ids.results.add_node(tvl)
     self.ids.status.text = 'Found %d result(s) for %s'%(len(bgs),self.ids.search_field.text)
     if len(bgs) == 1:#only one result=>select item
         self.selected_game = tvl.gid
示例#38
0
def get_titles(res):
    t = []
    if res.Result:
        for r in didl_decode(res.Result.encode('utf-8')):
            if 'object.container' in r['class']:
                if 'childCount' in r:
                    if int(r['childCount']) < 1:
                        continue
#                 browsable = True
                node = TreeViewLabel(
                    text=r['title'][:32],
                    id=r['id'])
                node.browsable = True
                node.populated = False
            else:
                img = None
                if 'albumArtURI' in r:
                    if 'text' in r['albumArtURI']:
                        img = r['albumArtURI']['text']
                if not img:
                    if 'res1' in r:
                        if 'image' in r['res1']['protocolInfo']:
                            img = r['res1']['text']
                if not img:
                    if 'video' in r['class']:
                        img = 'data/icons/movie.png'
                    elif 'audio' in r['class']:
                        img = 'data/icons/audio.png'
                    else:
                        img = 'data/icons/icon.png'
                node = TreeViewMedia(
                    text=r['title'][:32])
                node.img = img
                node.url = r['url']
                node.metadata = r['metadata']
                node.browsable = False
                node.populated = True
            t.append(node)
    return t
示例#39
0
 def build_menu(self, parent = None):
     '''This is a general purpose function that builds the
     main menu at anytime. Note that it binds each node to 
     self.add_new_widget. 
     I should really aim at making a build_menu function that 
     accepts a partial object as its argument and 
     binds it to each node. But currently the unbinding is too
     messy to spend time on as I am not using it anywhere else.
     
     This function's main use case is to display addable widgets and 
     layouts to a selected layout in canvas_area.
     It is called from Designer.rebuild_menu() '''
     
     treeview = self.treeview
     #Copy all current nodes in a temp list
     temp = list(treeview.iterate_all_nodes())
     #Delete them.
     for node in temp:
         treeview.remove_node(node)
     keys = self.keys
     layout_keys = self.layout_keys    
     
     '''Adding all the widgets to the menu'''
     node = TreeViewLabel(text= " Widgets", bold = True, \
                          color=[.25, .5, .6, 1])
     self.treeview.add_node(node)
     for key in keys:
         text = '%s' % key
         node = TreeViewLabel(text=text)
         node.bind(is_selected = partial(self.add_new_widget, parent = parent))
         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)
     for key in layout_keys:
         text = '%s' % key
         node = TreeViewLabel(text = text)
         node.bind(is_selected = partial(self.add_new_widget, parent = parent))
         self.treeview.add_node(node)