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)
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)
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)