284 if values[1] == "function": |
284 if values[1] == "function": |
285 event.SetDragText(blocktype+"(\n "+hint+")") |
285 event.SetDragText(blocktype+"(\n "+hint+")") |
286 else: |
286 else: |
287 event.SetDragText(blockname+"(\n "+hint+")") |
287 event.SetDragText(blockname+"(\n "+hint+")") |
288 elif values[1] == "location": |
288 elif values[1] == "location": |
289 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug) |
289 _pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug) |
290 if len(values) > 2 and pou_type == "program": |
290 if len(values) > 2 and pou_type == "program": |
291 var_name = values[3] |
291 var_name = values[3] |
292 dlg = wx.TextEntryDialog( |
292 dlg = wx.TextEntryDialog( |
293 self.ParentWindow, |
293 self.ParentWindow, |
294 _("Confirm or change variable name"), |
294 _("Confirm or change variable name"), |
337 self.RefreshVariableTree() |
337 self.RefreshVariableTree() |
338 event.SetDragText(var_name) |
338 event.SetDragText(var_name) |
339 else: |
339 else: |
340 event.SetDragText("") |
340 event.SetDragText("") |
341 elif values[1] == "NamedConstant": |
341 elif values[1] == "NamedConstant": |
342 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug) |
342 _pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug) |
343 if pou_type == "program": |
343 if pou_type == "program": |
344 initval = values[0] |
344 initval = values[0] |
345 var_name = values[3] |
345 var_name = values[3] |
346 dlg = wx.TextEntryDialog( |
346 dlg = wx.TextEntryDialog( |
347 self.ParentWindow, |
347 self.ParentWindow, |
495 self.Functions = {} |
495 self.Functions = {} |
496 for category in self.Controler.GetBlockTypes(self.TagName, self.Debug): |
496 for category in self.Controler.GetBlockTypes(self.TagName, self.Debug): |
497 for blocktype in category["list"]: |
497 for blocktype in category["list"]: |
498 blockname = blocktype["name"].upper() |
498 blockname = blocktype["name"].upper() |
499 if blocktype["type"] == "function" and blockname not in self.Keywords and blockname not in self.Variables.keys(): |
499 if blocktype["type"] == "function" and blockname not in self.Keywords and blockname not in self.Variables.keys(): |
500 interface = dict([(name, {}) for name, type, modifier in blocktype["inputs"] + blocktype["outputs"] if name != '']) |
500 interface = dict([(name, {}) for name, _type, _modifier in blocktype["inputs"] + blocktype["outputs"] if name != '']) |
501 for param in ["EN", "ENO"]: |
501 for param in ["EN", "ENO"]: |
502 if param not in interface: |
502 if param not in interface: |
503 interface[param] = {} |
503 interface[param] = {} |
504 if blockname in self.Functions: |
504 if blockname in self.Functions: |
505 self.Functions[blockname]["interface"].update(interface) |
505 self.Functions[blockname]["interface"].update(interface) |
515 self.Variables = self.GenerateVariableTree( |
515 self.Variables = self.GenerateVariableTree( |
516 [(variable.Name, variable.Type, variable.Tree) |
516 [(variable.Name, variable.Type, variable.Tree) |
517 for variable in self.Controler.GetEditedElementInterfaceVars( |
517 for variable in self.Controler.GetEditedElementInterfaceVars( |
518 self.TagName, True, self.Debug)]) |
518 self.TagName, True, self.Debug)]) |
519 if self.Controler.GetEditedElementType(self.TagName, self.Debug)[1] == "function" or words[0] == "T" and self.TextSyntax == "IL": |
519 if self.Controler.GetEditedElementType(self.TagName, self.Debug)[1] == "function" or words[0] == "T" and self.TextSyntax == "IL": |
520 return_type, (var_tree, var_dimension) = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, True, self.Debug) |
520 return_type, (var_tree, _var_dimension) = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, True, self.Debug) |
521 if return_type is not None: |
521 if return_type is not None: |
522 self.Variables[words[-1].upper()] = self.GenerateVariableTree(var_tree) |
522 self.Variables[words[-1].upper()] = self.GenerateVariableTree(var_tree) |
523 else: |
523 else: |
524 self.Variables[words[-1].upper()] = {} |
524 self.Variables[words[-1].upper()] = {} |
525 |
525 |
526 def GenerateVariableTree(self, list): |
526 def GenerateVariableTree(self, list): |
527 tree = {} |
527 tree = {} |
528 for var_name, var_type, (var_tree, var_dimension) in list: |
528 for var_name, _var_type, (var_tree, _var_dimension) in list: |
529 tree[var_name.upper()] = self.GenerateVariableTree(var_tree) |
529 tree[var_name.upper()] = self.GenerateVariableTree(var_tree) |
530 return tree |
530 return tree |
531 |
531 |
532 def IsValidVariable(self, name, context): |
532 def IsValidVariable(self, name, context): |
533 return context is not None and context.get(name, None) is not None |
533 return context is not None and context.get(name, None) is not None |
816 self.ClearHighlights(SEARCH_RESULT_HIGHLIGHT) |
816 self.ClearHighlights(SEARCH_RESULT_HIGHLIGHT) |
817 |
817 |
818 self.SearchParams = search_params |
818 self.SearchParams = search_params |
819 self.SearchResults = [ |
819 self.SearchResults = [ |
820 (infos[1:], start, end, SEARCH_RESULT_HIGHLIGHT) |
820 (infos[1:], start, end, SEARCH_RESULT_HIGHLIGHT) |
821 for infos, start, end, text in |
821 for infos, start, end, _text in |
822 self.Search(search_params)] |
822 self.Search(search_params)] |
823 self.CurrentFindHighlight = None |
823 self.CurrentFindHighlight = None |
824 |
824 |
825 if len(self.SearchResults) > 0: |
825 if len(self.SearchResults) > 0: |
826 if self.CurrentFindHighlight is not None: |
826 if self.CurrentFindHighlight is not None: |