diff -r a1f9e514f708 -r f1f0edbeb313 plugins/canfestival/canfestival.py --- a/plugins/canfestival/canfestival.py Tue Aug 21 17:21:26 2007 +0200 +++ b/plugins/canfestival/canfestival.py Mon Aug 27 17:54:55 2007 +0200 @@ -4,12 +4,14 @@ import config_utils, gen_cfile from networkedit import networkedit -class _NetworkEditPlugg(networkedit): +class _NetworkEdit(networkedit): + " Overload some of CanFestival Network Editor methods " def OnCloseFrame(self, event): - self.OnPluggClose() + " Do reset _NodeListPlug.View when closed" + self._onclose() event.Skip() -class BusController(NodeList): +class _NodeListPlug(NodeList): XSD = """ @@ -20,17 +22,29 @@ """ - ViewClass = _NetworkEditPlugg - def __init__(self, buspath): manager = NodeManager() NodeList.__init__(self, manager) self.LoadProject(buspath) - def TestModified(self): + _View = None + def _OpenView(self): + if not self._View: + def _onclose(): + self.View = None + self._View = _NetworkEdit() + self._View._onclose = _onclose + return self.View + PluginMethods = [("NetworkEdit",_OpenView)] + + def OnPlugClose(self): + if self._View: + self._View.Close() + + def PlugTestModified(self): return self.HasChanged() - def ReqSave(self): + def PlugRequestSave(self): self.SaveProject() return True @@ -43,14 +57,14 @@ res = gen_cfile.GenerateFile(filepath, master) if not res: s = str(self.BaseParams.BusId)+"_IN(){}\n" - s += "CanOpen(str(\""+self.CanFestivalNode.CAN_Device)+"\")" + s += "CanOpen(\""+self.CanFestivalNode.CAN_Device+"\")" f = file(filepath, 'a') f.write(s) else: pass # error return {"headers":["master.h"],"sources":["master.c"]} -class PluginController: +class RootClass: XSD = """ @@ -61,6 +75,8 @@ """ + PlugChildsTypes = [("CanOpenNode",_NodeListPlug)] + def Generate_C(self, filepath, locations): """ return C code for network dictionnary @@ -69,7 +85,7 @@ res = gen_cfile.GenerateFile(filepath, master) if not res: s = str(self.BaseParams.BusId)+"_IN(){}\n" - s += "CanOpen(str(\""+self.CanFestivalNode.CAN_Device)+"\")" + s += "CanOpen(str(\""+self.CanFestivalNode.CAN_Device+"\")" f = file(filepath, 'a') f.write(s) else: