1459 def GetConfNodeBlockTypes(self): |
1459 def GetConfNodeBlockTypes(self): |
1460 return [{"name": _("%s POUs") % confnodetypes["name"], |
1460 return [{"name": _("%s POUs") % confnodetypes["name"], |
1461 "list": confnodetypes["types"].GetCustomBlockTypes()} |
1461 "list": confnodetypes["types"].GetCustomBlockTypes()} |
1462 for confnodetypes in self.ConfNodeTypes] |
1462 for confnodetypes in self.ConfNodeTypes] |
1463 |
1463 |
1464 def GetConfNodeDataTypes(self, exclude = ""): |
1464 def GetConfNodeDataTypes(self, exclude = "", only_locatables = False): |
1465 return [{"name": _("%s Data Types") % confnodetypes["name"], |
1465 return [{"name": _("%s Data Types") % confnodetypes["name"], |
1466 "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude)]} |
1466 "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude, only_locatables)]} |
1467 for confnodetypes in self.ConfNodeTypes] |
1467 for confnodetypes in self.ConfNodeTypes] |
1468 |
1468 |
1469 def GetConfNodeDataType(self, type): |
1469 def GetConfNodeDataType(self, type): |
1470 for confnodetype in self.ConfNodeTypes: |
1470 for confnodetype in self.ConfNodeTypes: |
1471 datatype = confnodetype["types"].getdataType(type) |
1471 datatype = confnodetype["types"].getdataType(type) |
1554 if project is not None: |
1554 if project is not None: |
1555 blocktypes.extend(project.GetCustomBlockResource()) |
1555 blocktypes.extend(project.GetCustomBlockResource()) |
1556 return blocktypes |
1556 return blocktypes |
1557 |
1557 |
1558 # Return Data Types checking for recursion |
1558 # Return Data Types checking for recursion |
1559 def GetDataTypes(self, tagname = "", basetypes = True, only_locatables = False, debug = False): |
1559 def GetDataTypes(self, tagname = "", basetypes = True, confnodetypes = True, only_locatables = False, debug = False): |
1560 if basetypes: |
1560 if basetypes: |
1561 datatypes = self.GetBaseTypes() |
1561 datatypes = self.GetBaseTypes() |
1562 else: |
1562 else: |
1563 datatypes = [] |
1563 datatypes = [] |
1564 project = self.GetProject(debug) |
1564 project = self.GetProject(debug) |
1566 name = "" |
1566 name = "" |
1567 words = tagname.split("::") |
1567 words = tagname.split("::") |
1568 if words[0] in ["D"]: |
1568 if words[0] in ["D"]: |
1569 name = words[1] |
1569 name = words[1] |
1570 datatypes.extend([datatype["name"] for datatype in project.GetCustomDataTypes(name, only_locatables)]) |
1570 datatypes.extend([datatype["name"] for datatype in project.GetCustomDataTypes(name, only_locatables)]) |
1571 for category in self.GetConfNodeDataTypes(): |
1571 if confnodetypes: |
1572 datatypes.extend(category["list"]) |
1572 for category in self.GetConfNodeDataTypes(name, only_locatables): |
|
1573 datatypes.extend(category["list"]) |
1573 return datatypes |
1574 return datatypes |
1574 |
1575 |
1575 # Return Base Type of given possible derived type |
1576 # Return Base Type of given possible derived type |
1576 def GetBaseType(self, type, debug = False): |
1577 def GetBaseType(self, type, debug = False): |
1577 project = self.GetProject(debug) |
1578 project = self.GetProject(debug) |