Dialogs.py
changeset 330 d803ba077da0
parent 325 0a58f1625b6e
child 336 80934ef1b1cd
equal deleted inserted replaced
329:1cf72cb51dc9 330:d803ba077da0
   228                         return result
   228                         return result
   229                     item, root_cookie = self.TypeTree.GetNextChild(root, root_cookie)
   229                     item, root_cookie = self.TypeTree.GetNextChild(root, root_cookie)
   230         return None
   230         return None
   231     
   231     
   232     def OnOK(self, event):
   232     def OnOK(self, event):
   233         error = []
       
   234         selected = self.TypeTree.GetSelection()
   233         selected = self.TypeTree.GetSelection()
   235         block_name = self.BlockName.GetValue()
   234         block_name = self.BlockName.GetValue()
   236         name_enabled = self.BlockName.IsEnabled()
   235         name_enabled = self.BlockName.IsEnabled()
   237         if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem():
   236         if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem():
   238             message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   237             message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   838         self.Spacer = wx.Panel(id=ID_CONNECTIONPROPERTIESDIALOGSPACER,
   837         self.Spacer = wx.Panel(id=ID_CONNECTIONPROPERTIESDIALOGSPACER,
   839               name='Spacer', parent=self, pos=wx.Point(0, 0),
   838               name='Spacer', parent=self, pos=wx.Point(0, 0),
   840               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
   839               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
   841 
   840 
   842         self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
   841         self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
   843         
       
   844         if wx.VERSION >= (2, 5, 0):
   842         if wx.VERSION >= (2, 5, 0):
       
   843             self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
   845             self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)
   844             self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)
   846         else:
   845         else:
       
   846             self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetChildren()[0].GetSizer().GetChildren()[0].GetWindow().GetId())
   847             wx.EVT_PAINT(self.Preview, self.OnPaint)
   847             wx.EVT_PAINT(self.Preview, self.OnPaint)
   848         
   848         
   849         self._init_sizers()
   849         self._init_sizers()
   850 
   850 
   851     def __init__(self, parent, controler):
   851     def __init__(self, parent, controler):
   852         self._init_ctrls(parent, controler)
   852         self._init_ctrls(parent, controler)
   853         self.Connection = None
   853         self.Connection = None
   854         self.MinConnectionSize = None
   854         self.MinConnectionSize = None
       
   855         
       
   856         self.PouNames = []
       
   857         self.PouElementNames = []
   855     
   858     
   856     def SetPreviewFont(self, font):
   859     def SetPreviewFont(self, font):
   857         self.Preview.SetFont(font)
   860         self.Preview.SetFont(font)
   858     
   861     
   859     def SetMinConnectionSize(self, size):
   862     def SetMinConnectionSize(self, size):
   877         else:
   880         else:
   878             values["type"] = CONTINUATION
   881             values["type"] = CONTINUATION
   879         values["name"] = self.ConnectionName.GetValue()
   882         values["name"] = self.ConnectionName.GetValue()
   880         values["width"], values["height"] = self.Connection.GetSize()
   883         values["width"], values["height"] = self.Connection.GetSize()
   881         return values
   884         return values
       
   885 
       
   886     def SetPouNames(self, pou_names):
       
   887         self.PouNames = [pou_name.upper() for pou_name in pou_names]
       
   888         
       
   889     def SetPouElementNames(self, element_names):
       
   890         self.PouElementNames = [element_name.upper() for element_name in element_names]
       
   891 
       
   892     def OnOK(self, event):
       
   893         connection_name = self.ConnectionName.GetValue()
       
   894         if connection_name == "":
       
   895             message = wx.MessageDialog(self, "Form isn't complete. Name must be filled!", "Error", wx.OK|wx.ICON_ERROR)
       
   896             message.ShowModal()
       
   897             message.Destroy()
       
   898         elif not TestIdentifier(connection_name):
       
   899             message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%connection_name, "Error", wx.OK|wx.ICON_ERROR)
       
   900             message.ShowModal()
       
   901             message.Destroy()
       
   902         elif connection_name.upper() in IEC_KEYWORDS:
       
   903             message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%connection_name, "Error", wx.OK|wx.ICON_ERROR)
       
   904             message.ShowModal()
       
   905             message.Destroy()
       
   906         elif connection_name.upper() in self.PouNames:
       
   907             message = wx.MessageDialog(self, "\"%s\" pou already exists!"%connection_name, "Error", wx.OK|wx.ICON_ERROR)
       
   908             message.ShowModal()
       
   909             message.Destroy()
       
   910         elif connection_name.upper() in self.PouElementNames:
       
   911             message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%connection_name, "Error", wx.OK|wx.ICON_ERROR)
       
   912             message.ShowModal()
       
   913             message.Destroy()
       
   914         else:
       
   915             self.EndModal(wx.ID_OK)
   882 
   916 
   883     def OnTypeChanged(self, event):
   917     def OnTypeChanged(self, event):
   884         self.RefreshPreview()
   918         self.RefreshPreview()
   885         event.Skip()
   919         event.Skip()
   886 
   920