# HG changeset patch # User laurent # Date 1327437566 -3600 # Node ID 472469f4d5ad75197659735a8e2df9a5c3827e8d # Parent 048f5a923c86651d0ae0f1a1fa71cedfa53bff2f Adding support for loading datatypes defined in plugins to allow to use them in PLC program diff -r 048f5a923c86 -r 472469f4d5ad plugger.py --- a/plugger.py Mon Jan 23 15:11:49 2012 +0100 +++ b/plugger.py Tue Jan 24 21:39:26 2012 +0100 @@ -303,18 +303,18 @@ return LocationCFilesAndCFLAGS, LDFLAGS, extra_files - def BlockTypesFactory(self): + def PluginTypesFactory(self): if self.LibraryControler is not None: - return [{"name" : _("%s POUs") % self.PlugType, "list": self.LibraryControler.Project.GetCustomBlockTypes()}] + return [{"name" : self.PlugType, "types": self.LibraryControler.Project}] return [] - def ParentsBlockTypesFactory(self): - return self.PlugParent.ParentsBlockTypesFactory() + self.BlockTypesFactory() - - def PluginsBlockTypesFactory(self): - list = self.BlockTypesFactory() + def ParentsTypesFactory(self): + return self.PlugParent.ParentsTypesFactory() + self.PluginTypesFactory() + + def PluginsTypesFactory(self): + list = self.PluginTypesFactory() for PlugChild in self.IterChilds(): - list += PlugChild.PluginsBlockTypesFactory() + list += PlugChild.PluginsTypesFactory() return list def STLibraryFactory(self): @@ -625,7 +625,7 @@ self.LibraryControler = PLCControler() self.LibraryControler.OpenXMLFile(library_path) self.LibraryControler.ClearPluginTypes() - self.LibraryControler.AddPluginBlockList(self.ParentsBlockTypesFactory()) + self.LibraryControler.AddPluginTypesList(self.ParentsTypesFactory()) def LoadXMLParams(self, PlugName = None): methode_name = os.path.join(self.PlugPath(PlugName), "methods.py") @@ -1017,7 +1017,7 @@ def RefreshPluginsBlockLists(self): if getattr(self, "PluggedChilds", None) is not None: self.ClearPluginTypes() - self.AddPluginBlockList(self.PluginsBlockTypesFactory()) + self.AddPluginTypesList(self.PluginsTypesFactory()) if self.AppFrame is not None: self.AppFrame.RefreshLibraryTree() self.AppFrame.RefreshEditor() @@ -1056,8 +1056,8 @@ def PluginXmlFilePath(self, PlugName=None): return os.path.join(self.PlugPath(PlugName), "beremiz.xml") - def ParentsBlockTypesFactory(self): - return self.BlockTypesFactory() + def ParentsTypesFactory(self): + return self.PluginTypesFactory() def _setBuildPath(self, buildpath): if CheckPathPerm(buildpath):