diff -r 8fbff50141f8 -r 0e48629c1e6d Dialogs.py --- a/Dialogs.py Mon Aug 13 18:04:19 2007 +0200 +++ b/Dialogs.py Mon Aug 13 18:06:50 2007 +0200 @@ -152,6 +152,9 @@ self.Inputs.Enable(False) self.Block = None self.MinBlockSize = None + + self.PouNames = [] + self.PouElementNames = [] def FindTreeItem(self, root, name, inputs = None): if root.IsOk(): @@ -174,14 +177,32 @@ def OnOK(self, event): error = [] selected = self.TypeTree.GetSelection() + block_name = self.Name.GetValue() + name_enabled = self.Name.IsEnabled() if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem(): message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() - elif self.Name.IsEnabled() and self.Name.GetValue() == "": + elif name_enabled and block_name == "": message = wx.MessageDialog(self, "Form isn't complete. Name must be filled!", "Error", wx.OK|wx.ICON_ERROR) message.ShowModal() message.Destroy() + elif name_enabled and not TestIdentifier(block_name): + message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%block_name, "Error", wx.OK|wx.ICON_ERROR) + message.ShowModal() + message.Destroy() + elif name_enabled and block_name.upper() in IEC_KEYWORDS: + message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%block_name, "Error", wx.OK|wx.ICON_ERROR) + message.ShowModal() + message.Destroy() + elif name_enabled and block_name.upper() in self.PouNames: + message = wx.MessageDialog(self, "\"%s\" pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR) + message.ShowModal() + message.Destroy() + elif name_enabled and block_name.upper() in self.PouElementNames: + message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR) + message.ShowModal() + message.Destroy() else: self.EndModal(wx.ID_OK) @@ -198,6 +219,12 @@ def SetMinBlockSize(self, size): self.MinBlockSize = size + def SetPouNames(self, pou_names): + self.PouNames = [pou_name.upper() for pou_name in pou_names] + + def SetPouElementNames(self, element_names): + self.PouElementNames = [element_name.upper() for element_name in element_names] + def SetValues(self, values): for name, value in values.items(): if name == "type":