editors/DataTypeEditor.py
changeset 1734 750eeb7230a1
parent 1658 ba6a6d6e989c
child 1735 c02818d7e29f
equal deleted inserted replaced
1733:dea107dce0c4 1734:750eeb7230a1
   545         text = event.GetText()
   545         text = event.GetText()
   546         values = self.EnumeratedValues.GetStrings()
   546         values = self.EnumeratedValues.GetStrings()
   547         index = event.GetIndex()
   547         index = event.GetIndex()
   548         if index >= len(values) or values[index].upper() != text.upper():
   548         if index >= len(values) or values[index].upper() != text.upper():
   549             if text.upper() in [value.upper() for value in values]:
   549             if text.upper() in [value.upper() for value in values]:
   550                 message = wx.MessageDialog(self, _("\"%s\" value already defined!")%text, _("Error"), wx.OK|wx.ICON_ERROR)
   550                 message = wx.MessageDialog(self, _("\"%s\" value already defined!") % text, _("Error"), wx.OK|wx.ICON_ERROR)
   551                 message.ShowModal()
   551                 message.ShowModal()
   552                 message.Destroy()
   552                 message.Destroy()
   553                 event.Veto()
   553                 event.Veto()
   554             elif text.upper() in IEC_KEYWORDS:
   554             elif text.upper() in IEC_KEYWORDS:
   555                 message = wx.MessageDialog(self, _("\"%s\" is a keyword. It can't be used!")%text, _("Error"), wx.OK|wx.ICON_ERROR)
   555                 message = wx.MessageDialog(self, _("\"%s\" is a keyword. It can't be used!") % text, _("Error"), wx.OK|wx.ICON_ERROR)
   556                 message.ShowModal()
   556                 message.ShowModal()
   557                 message.Destroy()
   557                 message.Destroy()
   558             else:
   558             else:
   559                 initial_selected = None
   559                 initial_selected = None
   560                 if index < len(values) and self.EnumeratedInitialValue.GetStringSelection() == values[index]:
   560                 if index < len(values) and self.EnumeratedInitialValue.GetStringSelection() == values[index]:
   580         colname = self.StructureElementsTable.GetColLabelValue(col, False)
   580         colname = self.StructureElementsTable.GetColLabelValue(col, False)
   581         value = self.StructureElementsTable.GetValue(row, col)
   581         value = self.StructureElementsTable.GetValue(row, col)
   582         if colname == "Name":
   582         if colname == "Name":
   583             message = None
   583             message = None
   584             if not TestIdentifier(value):
   584             if not TestIdentifier(value):
   585                 message = _("\"%s\" is not a valid identifier!")%value
   585                 message = _("\"%s\" is not a valid identifier!") % value
   586             elif value.upper() in IEC_KEYWORDS:
   586             elif value.upper() in IEC_KEYWORDS:
   587                 message = _("\"%s\" is a keyword. It can't be used!")%value
   587                 message = _("\"%s\" is a keyword. It can't be used!") % value
   588 ##            elif value.upper() in self.PouNames:
   588 ##            elif value.upper() in self.PouNames:
   589 ##                message = _("A pou with \"%s\" as name exists!")%value
   589 ##                message = _("A pou with \"%s\" as name exists!")%value
   590             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]:
   591                 message = _("An element named \"%s\" already exists in this structure!")%value
   591                 message = _("An element named \"%s\" already exists in this structure!") % value
   592             else:
   592             else:
   593                 self.RefreshTypeInfos()
   593                 self.RefreshTypeInfos()
   594                 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid)
   594                 wx.CallAfter(self.StructureElementsTable.ResetView, self.StructureElementsGrid)
   595 ##                old_value = self.Table.GetOldValue()
   595 ##                old_value = self.Table.GetOldValue()
   596 ##                if old_value != "":
   596 ##                if old_value != "":
   738             infos["base_type"] = self.ArrayBaseType.GetStringSelection()
   738             infos["base_type"] = self.ArrayBaseType.GetStringSelection()
   739             infos["dimensions"] = []
   739             infos["dimensions"] = []
   740             for dimensions in self.ArrayDimensions.GetStrings():
   740             for dimensions in self.ArrayDimensions.GetStrings():
   741                 result = DIMENSION_MODEL.match(dimensions)
   741                 result = DIMENSION_MODEL.match(dimensions)
   742                 if result is None:
   742                 if result is None:
   743                     message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!")%dimensions, _("Error"), wx.OK|wx.ICON_ERROR)
   743                     message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!") % dimensions, _("Error"), wx.OK|wx.ICON_ERROR)
   744                     message.ShowModal()
   744                     message.ShowModal()
   745                     message.Destroy()
   745                     message.Destroy()
   746                     self.RefreshView()
   746                     self.RefreshView()
   747                     return
   747                     return
   748                 bounds = result.groups()
   748                 bounds = result.groups()
   749                 if int(bounds[0]) >= int(bounds[1]):
   749                 if int(bounds[0]) >= int(bounds[1]):
   750                     message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value.")%dimensions, _("Error"), wx.OK|wx.ICON_ERROR)
   750                     message = wx.MessageDialog(self, _("\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value.") % dimensions, _("Error"), wx.OK|wx.ICON_ERROR)
   751                     message.ShowModal()
   751                     message.ShowModal()
   752                     message.Destroy()
   752                     message.Destroy()
   753                     self.RefreshView()
   753                     self.RefreshView()
   754                     return
   754                     return
   755                 infos["dimensions"].append(bounds)
   755                 infos["dimensions"].append(bounds)