--- 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":