ConfigTreeNode.py
changeset 738 413946c04c87
parent 734 5c42cafaee15
child 741 382b2c848dac
equal deleted inserted replaced
737:7b421e080636 738:413946c04c87
    10 import os,traceback,types
    10 import os,traceback,types
    11 import shutil
    11 import shutil
    12 from xml.dom import minidom
    12 from xml.dom import minidom
    13 
    13 
    14 from xmlclass import GenerateClassesFromXSDstring
    14 from xmlclass import GenerateClassesFromXSDstring
    15 from util import opjimg, GetClassImporter
    15 from util import GetClassImporter
    16 
    16 
    17 from PLCControler import PLCControler, LOCATION_CONFNODE
    17 from PLCControler import PLCControler, LOCATION_CONFNODE
    18 
    18 
    19 _BaseParamsClass = GenerateClassesFromXSDstring("""<?xml version="1.0" encoding="ISO-8859-1" ?>
    19 _BaseParamsClass = GenerateClassesFromXSDstring("""<?xml version="1.0" encoding="ISO-8859-1" ?>
    20         <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    20         <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    38     CTNChildrenTypes = []
    38     CTNChildrenTypes = []
    39     CTNMaxCount = None
    39     CTNMaxCount = None
    40     ConfNodeMethods = []
    40     ConfNodeMethods = []
    41     LibraryControler = None
    41     LibraryControler = None
    42     EditorType = None
    42     EditorType = None
    43 
    43     IconPath = None
       
    44     
    44     def _AddParamsMembers(self):
    45     def _AddParamsMembers(self):
    45         self.CTNParams = None
    46         self.CTNParams = None
    46         if self.XSD:
    47         if self.XSD:
    47             self.Classes = GenerateClassesFromXSDstring(self.XSD)
    48             self.Classes = GenerateClassesFromXSDstring(self.XSD)
    48             Classes = [(name, XSDclass) for name, XSDclass in self.Classes.items() if XSDclass.IsBaseClass]
    49             Classes = [(name, XSDclass) for name, XSDclass in self.Classes.items() if XSDclass.IsBaseClass]
   570                     self.CTNAddChild(pname, ptype)
   571                     self.CTNAddChild(pname, ptype)
   571                 except Exception, exc:
   572                 except Exception, exc:
   572                     self.GetCTRoot().logger.write_error(_("Could not add child \"%s\", type %s :\n%s\n")%(pname, ptype, str(exc)))
   573                     self.GetCTRoot().logger.write_error(_("Could not add child \"%s\", type %s :\n%s\n")%(pname, ptype, str(exc)))
   573                     self.GetCTRoot().logger.write_error(traceback.format_exc())
   574                     self.GetCTRoot().logger.write_error(traceback.format_exc())
   574 
   575 
   575     def EnableMethod(self, method, value):
       
   576         for d in self.ConfNodeMethods:
       
   577             if d["method"]==method:
       
   578                 d["enabled"]=value
       
   579                 return True
       
   580         return False
       
   581 
       
   582     def ShowMethod(self, method, value):
       
   583         for d in self.ConfNodeMethods:
       
   584             if d["method"]==method:
       
   585                 d["shown"]=value
       
   586                 return True
       
   587         return False
       
   588 
       
   589     def CallMethod(self, method):
       
   590         for d in self.ConfNodeMethods:
       
   591             if d["method"]==method and d.get("enabled", True) and d.get("shown", True):
       
   592                 getattr(self, method)()
       
   593