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 index = self.text.find(old_name) |
132 text = self.text.decode("utf-8") |
|
133 index = text.find(old_name) |
133 while index != -1: |
134 while index != -1: |
134 if index > 0 and (self.text[index - 1].isalnum() or self.text[index - 1] == "_"): |
135 if index > 0 and (text[index - 1].isalnum() or text[index - 1] == "_"): |
135 index = self.text.find(old_name, index + len(old_name)) |
136 index = text.find(old_name, index + len(old_name)) |
136 elif index < len(self.text) - len(old_name) and (self.text[index + len(old_name)].isalnum() or self.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)] == "_"): |
137 index = self.text.find(old_name, index + len(old_name)) |
138 index = text.find(old_name, index + len(old_name)) |
138 else: |
139 else: |
139 self.text = self.text[:index] + new_name + self.text[index + len(old_name):] |
140 text = text[:index] + new_name + text[index + len(old_name):] |
140 index = self.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") |
141 setattr(cls, "updateElementName", updateElementName) |
143 setattr(cls, "updateElementName", updateElementName) |
142 |
144 |
143 def updateElementAddress(self, address_model, new_leading): |
145 def updateElementAddress(self, address_model, new_leading): |
|
146 text = self.text.decode("utf-8") |
144 startpos = 0 |
147 startpos = 0 |
145 result = address_model.search(self.text, startpos) |
148 result = address_model.search(text, startpos) |
146 while result is not None: |
149 while result is not None: |
147 groups = result.groups() |
150 groups = result.groups() |
148 new_address = groups[0] + new_leading + groups[2] |
151 new_address = groups[0] + new_leading + groups[2] |
149 self.text = self.text[:result.start()] + new_address + self.text[result.end():] |
152 text = text[:result.start()] + new_address + text[result.end():] |
150 startpos = result.start() + len(new_address) |
153 startpos = result.start() + len(new_address) |
151 result = address_model.search(self.text, startpos) |
154 result = address_model.search(self.text, startpos) |
|
155 self.text = text.encode("utf-8") |
152 setattr(cls, "updateElementAddress", updateElementAddress) |
156 setattr(cls, "updateElementAddress", updateElementAddress) |
153 |
157 |
154 def Search(self, criteria, parent_infos): |
158 def Search(self, criteria, parent_infos): |
155 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)] |
156 setattr(cls, "Search", Search) |
160 setattr(cls, "Search", Search) |