127 ElementNameToClass = {} |
127 ElementNameToClass = {} |
128 |
128 |
129 cls = PLCOpenClasses.get("formattedText", None) |
129 cls = PLCOpenClasses.get("formattedText", None) |
130 if cls: |
130 if cls: |
131 def updateElementName(self, old_name, new_name): |
131 def updateElementName(self, old_name, new_name): |
132 text = self.text.decode("utf-8") |
132 text = self.text |
133 index = text.find(old_name) |
133 index = text.find(old_name) |
134 while index != -1: |
134 while index != -1: |
135 if index > 0 and (text[index - 1].isalnum() or text[index - 1] == "_"): |
135 if index > 0 and (text[index - 1].isalnum() or text[index - 1] == "_"): |
136 index = text.find(old_name, index + len(old_name)) |
136 index = text.find(old_name, index + len(old_name)) |
137 elif index < len(text) - len(old_name) and (text[index + len(old_name)].isalnum() or text[index + len(old_name)] == "_"): |
137 elif index < len(text) - len(old_name) and (text[index + len(old_name)].isalnum() or text[index + len(old_name)] == "_"): |
138 index = text.find(old_name, index + len(old_name)) |
138 index = text.find(old_name, index + len(old_name)) |
139 else: |
139 else: |
140 text = text[:index] + new_name + text[index + len(old_name):] |
140 text = text[:index] + new_name + text[index + len(old_name):] |
141 index = text.find(old_name, index + len(new_name)) |
141 index = text.find(old_name, index + len(new_name)) |
142 self.text = text.encode("utf-8") |
142 self.text = text |
143 setattr(cls, "updateElementName", updateElementName) |
143 setattr(cls, "updateElementName", updateElementName) |
144 |
144 |
145 def updateElementAddress(self, address_model, new_leading): |
145 def updateElementAddress(self, address_model, new_leading): |
146 text = self.text.decode("utf-8") |
146 text = self.text |
147 startpos = 0 |
147 startpos = 0 |
148 result = address_model.search(text, startpos) |
148 result = address_model.search(text, startpos) |
149 while result is not None: |
149 while result is not None: |
150 groups = result.groups() |
150 groups = result.groups() |
151 new_address = groups[0] + new_leading + groups[2] |
151 new_address = groups[0] + new_leading + groups[2] |
152 text = text[:result.start()] + new_address + text[result.end():] |
152 text = text[:result.start()] + new_address + text[result.end():] |
153 startpos = result.start() + len(new_address) |
153 startpos = result.start() + len(new_address) |
154 result = address_model.search(self.text, startpos) |
154 result = address_model.search(self.text, startpos) |
155 self.text = text.encode("utf-8") |
155 self.text = text |
156 setattr(cls, "updateElementAddress", updateElementAddress) |
156 setattr(cls, "updateElementAddress", updateElementAddress) |
157 |
157 |
158 def Search(self, criteria, parent_infos): |
158 def Search(self, criteria, parent_infos): |
159 return [(tuple(parent_infos),) + result for result in TestTextElement(self.gettext(), criteria)] |
159 return [(tuple(parent_infos),) + result for result in TestTextElement(self.gettext(), criteria)] |
160 setattr(cls, "Search", Search) |
160 setattr(cls, "Search", Search) |