Dialogs.py
changeset 70 0e48629c1e6d
parent 64 dd6f693e46a1
child 71 0578bc212c20
equal deleted inserted replaced
69:8fbff50141f8 70:0e48629c1e6d
   150         self.Name.SetValue("")
   150         self.Name.SetValue("")
   151         self.Name.Enable(False)
   151         self.Name.Enable(False)
   152         self.Inputs.Enable(False)
   152         self.Inputs.Enable(False)
   153         self.Block = None
   153         self.Block = None
   154         self.MinBlockSize = None
   154         self.MinBlockSize = None
       
   155         
       
   156         self.PouNames = []
       
   157         self.PouElementNames = []
   155     
   158     
   156     def FindTreeItem(self, root, name, inputs = None):
   159     def FindTreeItem(self, root, name, inputs = None):
   157         if root.IsOk():
   160         if root.IsOk():
   158             pydata = self.TypeTree.GetPyData(root)
   161             pydata = self.TypeTree.GetPyData(root)
   159             if inputs and "inputs" in pydata:
   162             if inputs and "inputs" in pydata:
   172         return None
   175         return None
   173     
   176     
   174     def OnOK(self, event):
   177     def OnOK(self, event):
   175         error = []
   178         error = []
   176         selected = self.TypeTree.GetSelection()
   179         selected = self.TypeTree.GetSelection()
       
   180         block_name = self.Name.GetValue()
       
   181         name_enabled = self.Name.IsEnabled()
   177         if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem():
   182         if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem():
   178             message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   183             message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   179             message.ShowModal()
   184             message.ShowModal()
   180             message.Destroy()
   185             message.Destroy()
   181         elif self.Name.IsEnabled() and self.Name.GetValue() == "":
   186         elif name_enabled and block_name == "":
   182             message = wx.MessageDialog(self, "Form isn't complete. Name must be filled!", "Error", wx.OK|wx.ICON_ERROR)
   187             message = wx.MessageDialog(self, "Form isn't complete. Name must be filled!", "Error", wx.OK|wx.ICON_ERROR)
       
   188             message.ShowModal()
       
   189             message.Destroy()
       
   190         elif name_enabled and not TestIdentifier(block_name):
       
   191             message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
       
   192             message.ShowModal()
       
   193             message.Destroy()
       
   194         elif name_enabled and block_name.upper() in IEC_KEYWORDS:
       
   195             message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
       
   196             message.ShowModal()
       
   197             message.Destroy()
       
   198         elif name_enabled and block_name.upper() in self.PouNames:
       
   199             message = wx.MessageDialog(self, "\"%s\" pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
       
   200             message.ShowModal()
       
   201             message.Destroy()
       
   202         elif name_enabled and block_name.upper() in self.PouElementNames:
       
   203             message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
   183             message.ShowModal()
   204             message.ShowModal()
   184             message.Destroy()
   205             message.Destroy()
   185         else:
   206         else:
   186             self.EndModal(wx.ID_OK)
   207             self.EndModal(wx.ID_OK)
   187 
   208 
   196                 self.TypeTree.SetPyData(blocktype_item, {"type" : BLOCK, "inputs" : tuple([type for name, type, modifier in blocktype["inputs"]])})
   217                 self.TypeTree.SetPyData(blocktype_item, {"type" : BLOCK, "inputs" : tuple([type for name, type, modifier in blocktype["inputs"]])})
   197 
   218 
   198     def SetMinBlockSize(self, size):
   219     def SetMinBlockSize(self, size):
   199         self.MinBlockSize = size
   220         self.MinBlockSize = size
   200 
   221 
       
   222     def SetPouNames(self, pou_names):
       
   223         self.PouNames = [pou_name.upper() for pou_name in pou_names]
       
   224         
       
   225     def SetPouElementNames(self, element_names):
       
   226         self.PouElementNames = [element_name.upper() for element_name in element_names]
       
   227         
   201     def SetValues(self, values):
   228     def SetValues(self, values):
   202         for name, value in values.items():
   229         for name, value in values.items():
   203             if name == "type":
   230             if name == "type":
   204                 inputs = None
   231                 inputs = None
   205                 if "inputs" in values:
   232                 if "inputs" in values: