568 def OnEnumeratedValuesChanged(self, event): |
568 def OnEnumeratedValuesChanged(self, event): |
569 wx.CallAfter(self.RefreshEnumeratedValues) |
569 wx.CallAfter(self.RefreshEnumeratedValues) |
570 wx.CallAfter(self.RefreshTypeInfos) |
570 wx.CallAfter(self.RefreshTypeInfos) |
571 event.Skip() |
571 event.Skip() |
572 |
572 |
|
573 def ShowErrorMessage(self, message): |
|
574 dialog = wx.MessageDialog(self, message, _("Error"), wx.OK|wx.ICON_ERROR) |
|
575 dialog.ShowModal() |
|
576 dialog.Destroy() |
|
577 |
573 def OnStructureElementsGridCellChange(self, event): |
578 def OnStructureElementsGridCellChange(self, event): |
574 row, col = event.GetRow(), event.GetCol() |
579 row, col = event.GetRow(), event.GetCol() |
575 colname = self.StructureElementsTable.GetColLabelValue(col, False) |
580 colname = self.StructureElementsTable.GetColLabelValue(col, False) |
576 value = self.StructureElementsTable.GetValue(row, col) |
581 value = self.StructureElementsTable.GetValue(row, col) |
577 if colname == "Name": |
582 if colname == "Name": |
|
583 message = None |
578 if not TestIdentifier(value): |
584 if not TestIdentifier(value): |
579 message = wx.MessageDialog(self, _("\"%s\" is not a valid identifier!")%value, _("Error"), wx.OK|wx.ICON_ERROR) |
585 message = _("\"%s\" is not a valid identifier!")%value |
580 message.ShowModal() |
|
581 message.Destroy() |
|
582 event.Veto() |
|
583 elif value.upper() in IEC_KEYWORDS: |
586 elif value.upper() in IEC_KEYWORDS: |
584 message = wx.MessageDialog(self, _("\"%s\" is a keyword. It can't be used!")%value, _("Error"), wx.OK|wx.ICON_ERROR) |
587 message = _("\"%s\" is a keyword. It can't be used!")%value |
585 message.ShowModal() |
|
586 message.Destroy() |
|
587 event.Veto() |
|
588 ## elif value.upper() in self.PouNames: |
588 ## elif value.upper() in self.PouNames: |
589 ## message = wx.MessageDialog(self, "A pou with \"%s\" as name exists!"%value, "Error", wx.OK|wx.ICON_ERROR) |
589 ## message = _("A pou with \"%s\" as name exists!")%value |
590 ## message.ShowModal() |
|
591 ## message.Destroy() |
|
592 ## event.Veto() |
|
593 elif value.upper() in [var["Name"].upper() for idx, var in enumerate(self.StructureElementsTable.GetData()) if idx != row]: |
590 elif value.upper() in [var["Name"].upper() for idx, var in enumerate(self.StructureElementsTable.GetData()) if idx != row]: |
594 message = wx.MessageDialog(self, _("An element named \"%s\" already exists in this structure!")%value, _("Error"), wx.OK|wx.ICON_ERROR) |
591 message = _("An element named \"%s\" already exists in this structure!")%value |
595 message.ShowModal() |
|
596 message.Destroy() |
|
597 event.Veto() |
|
598 else: |
592 else: |
599 self.RefreshTypeInfos() |
593 self.RefreshTypeInfos() |
600 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid) |
594 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid) |
601 ## old_value = self.Table.GetOldValue() |
595 ## old_value = self.Table.GetOldValue() |
602 ## if old_value != "": |
596 ## if old_value != "": |
603 ## self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value) |
597 ## self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value) |
604 ## self.Controler.BufferProject() |
598 ## self.Controler.BufferProject() |
605 event.Skip() |
599 event.Skip() |
|
600 |
|
601 if message is not None: |
|
602 event.Veto() |
|
603 wx.CallAfter(self.ShowErrorMessage, message) |
606 else: |
604 else: |
607 self.RefreshTypeInfos() |
605 self.RefreshTypeInfos() |
608 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid) |
606 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid) |
609 event.Skip() |
607 event.Skip() |
610 |
608 |