148 if colname in ["Class", "Option"]: |
148 if colname in ["Class", "Option"]: |
149 return _(value) |
149 return _(value) |
150 return value |
150 return value |
151 |
151 |
152 def SetValue(self, row, col, value): |
152 def SetValue(self, row, col, value): |
|
153 print("SetValue",row, col, value) |
153 if col < len(self.colnames): |
154 if col < len(self.colnames): |
154 colname = self.GetColLabelValue(col, False) |
155 colname = self.GetColLabelValue(col, False) |
155 if colname == "Name": |
156 if colname == "Name": |
156 self.old_value = getattr(self.data[row], colname) |
157 self.old_value = getattr(self.data[row], colname) |
157 elif colname == "Class": |
158 elif colname == "Class": |
786 def ShowErrorMessage(self, message): |
787 def ShowErrorMessage(self, message): |
787 dialog = wx.MessageDialog(self, message, _("Error"), wx.OK | wx.ICON_ERROR) |
788 dialog = wx.MessageDialog(self, message, _("Error"), wx.OK | wx.ICON_ERROR) |
788 dialog.ShowModal() |
789 dialog.ShowModal() |
789 dialog.Destroy() |
790 dialog.Destroy() |
790 |
791 |
|
792 def OnVariableNameChange(self, old_name, new_name): |
|
793 """ propagate renaming of variable to the rest of the project """ |
|
794 if old_name != "": |
|
795 self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_name, new_name) |
|
796 self.Controler.BufferProject() |
|
797 wx.CallAfter(self.ParentWindow.RefreshView, False) |
|
798 self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES, POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
|
799 |
791 def OnVariablesGridCellChange(self, event): |
800 def OnVariablesGridCellChange(self, event): |
792 row, col = event.GetRow(), event.GetCol() |
801 row, col = event.GetRow(), event.GetCol() |
793 colname = self.Table.GetColLabelValue(col, False) |
802 colname = self.Table.GetColLabelValue(col, False) |
794 value = self.Table.GetValue(row, col) |
803 value = self.Table.GetValue(row, col) |
795 message = None |
804 message = None |
804 elif value.upper() in [var.Name.upper() for var in self.Values if var != self.Table.data[row]]: |
813 elif value.upper() in [var.Name.upper() for var in self.Values if var != self.Table.data[row]]: |
805 message = _("A variable with \"%s\" as name already exists in this pou!") % value |
814 message = _("A variable with \"%s\" as name already exists in this pou!") % value |
806 else: |
815 else: |
807 self.SaveValues(False) |
816 self.SaveValues(False) |
808 old_value = self.Table.GetOldValue() |
817 old_value = self.Table.GetOldValue() |
809 if old_value != "": |
818 self.OnVariableNameChange(old_value, value) |
810 self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value) |
|
811 self.Controler.BufferProject() |
|
812 wx.CallAfter(self.ParentWindow.RefreshView, False) |
|
813 self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES, POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
|
814 else: |
819 else: |
815 self.SaveValues() |
820 self.SaveValues() |
816 if colname == "Class": |
821 if colname == "Class": |
817 self.ClearLocation(row, col, value) |
822 self.ClearLocation(row, col, value) |
818 wx.CallAfter(self.ParentWindow.RefreshView) |
823 wx.CallAfter(self.ParentWindow.RefreshView) |