Esempio n. 1
0
    def edit_selected_item(self):
        w = self.widget
        item = w.GetSelection()
        if item == self.root:
            return

#        gen = self.recipe.get_generator(w.GetItemText(item))
        gen = w.GetPyData(item)
        old_name, old_uri, old_id, old_version = gen

        g_info = get_generator_info(self, self.app, gen, display_name=True)
        if not g_info:
            return

        is_remote, name, package_dir, repo_uri, generator_id, ver = g_info

        name = name or generator_id.rsplit('.')[-1]
        repo_uri = repo_uri or package_dir

        gen = name, repo_uri, generator_id, ver

        if not self.validate_data(gen):
            return

        name, uri, _id, version = gen

        if name != old_name:
            self.recipe.rename_generator(old_name, name)

        self.recipe.change_generator(name, uri, _id, version)

        w.SetItemText(item, name)
        w.SetPyData(item, gen)
Esempio n. 2
0
    def load_generator(self, start_dir=None):
        loader = Loader()
        old_loader = set_loader(loader)

        try:
            g_info = get_generator_info(self.frame, self)
            if not g_info:
                return
            is_remote, name, package_dir, repo_uri, generator_id, ver = g_info

            if is_remote:
                rc = RecipeConfig()
                rc.generator = (generator_id, repo_uri, generator_id, ver)

            else:
                _class = get_class(package_dir, generator_id)

                if RecipeBasedGenerator in _class.__bases__:
                    rc = _class.get_recipe_config()

                else:
                    rc = RecipeConfig()
                    rc.generator = (generator_id, package_dir, generator_id)

            doc = self.add_document(rc, loader)

        finally:
            set_loader(old_loader)

        self.run_document(doc)
Esempio n. 3
0
    def OnAddButton(self, event):
        g_info = get_generator_info(self, self.app, display_name=True)
        if not g_info:
            return

        is_remote, name, package_dir, repo_uri, generator_id, ver = g_info
        name = name or generator_id.rsplit('.')[-1]
        repo_uri = repo_uri or package_dir

        gen = name, repo_uri, generator_id, ver

        if not self.validate_data(gen):
            return

        name, uri, _id, version = gen

        gnode = self.widget.AppendItem(self.root, name)
        self.widget.SetPyData(gnode, gen)
        self._set_node_image(gnode, 'generator')

        self.recipe.add_generator(name, uri, _id, version)