svghmi/ui.py
branchsvghmi
changeset 3235 b2b6bf45aa2d
parent 3234 f2bfb047d0e6
child 3237 d000a91d1e95
equal deleted inserted replaced
3234:f2bfb047d0e6 3235:b2b6bf45aa2d
   297         for msg in msgs:
   297         for msg in msgs:
   298             self.msg += msg.text + "\n"
   298             self.msg += msg.text + "\n"
   299 
   299 
   300     def GetSubHMITree(self, _context):
   300     def GetSubHMITree(self, _context):
   301         return [self.hmitree_node.etree()]
   301         return [self.hmitree_node.etree()]
       
   302     def AnalyseWidget(self):
       
   303         self.msg = ""
       
   304 
       
   305         try:
       
   306             if self.selected_SVG is None:
       
   307                 raise Exception(_("No widget selected"))
       
   308 
       
   309             transform = XSLTransform(
       
   310                 os.path.join(ScriptDirectory, "analyse_widget.xslt"),[])
       
   311 
       
   312             svgdom = etree.parse(self.selected_SVG)
       
   313 
       
   314             result = transform.transform(svgdom)
       
   315 
       
   316             for entry in transform.get_error_log():
       
   317                 self.msg += "XSLT: " + entry.message + "\n" 
       
   318 
       
   319         except Exception as e:
       
   320             self.msg += str(e)
       
   321         except XSLTApplyError as e:
       
   322             self.msg += "Widget analysis error: " + e.message
       
   323         else:
       
   324             return result
       
   325 
       
   326     def UpdateUI(self, signature):
       
   327         if signature is not None:
       
   328             print(etree.tostring(signature, pretty_print=True))
       
   329             widgets = signature.getroot()
       
   330             for widget in widgets:
       
   331                 widget_type = widget.get("type")
       
   332                 print(widget_type)
       
   333                 for path in widget:
       
   334                     path_value = path.get("value")
       
   335                     path_accepts = map(
       
   336                         str.strip, path.get("accepts", '')[1:-1].split(','))
       
   337                     print(path_value, path_accepts)
       
   338 
       
   339 
   302 
   340 
   303     def ValidateWidget(self):
   341     def ValidateWidget(self):
   304         self.msg = ""
   342         self.msg = ""
       
   343 
       
   344         signature = self.AnalyseWidget()
       
   345         
       
   346         self.UpdateUI(signature)
       
   347 
       
   348         return
   305 
   349 
   306         if self.tempf is not None:
   350         if self.tempf is not None:
   307             os.unlink(self.tempf.name)
   351             os.unlink(self.tempf.name)
   308             self.tempf = None
   352             self.tempf = None
   309 
   353