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 |