35 _ = lambda x : x |
35 _ = lambda x : x |
36 return [_("IL"), _("ST"), _("LD"), _("FBD")] |
36 return [_("IL"), _("ST"), _("LD"), _("FBD")] |
37 TRANSITION_LANGUAGES_DICT = dict([(_(language), language) for language in GetTransitionLanguages()]) |
37 TRANSITION_LANGUAGES_DICT = dict([(_(language), language) for language in GetTransitionLanguages()]) |
38 |
38 |
39 class PouTransitionDialog(wx.Dialog): |
39 class PouTransitionDialog(wx.Dialog): |
40 |
40 |
41 def __init__(self, parent): |
41 def __init__(self, parent): |
42 wx.Dialog.__init__(self, parent, title=_('Create a new transition')) |
42 wx.Dialog.__init__(self, parent, title=_('Create a new transition')) |
43 |
43 |
44 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
44 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10) |
45 main_sizer.AddGrowableCol(0) |
45 main_sizer.AddGrowableCol(0) |
46 main_sizer.AddGrowableRow(0) |
46 main_sizer.AddGrowableRow(0) |
47 |
47 |
48 infos_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=3, vgap=10) |
48 infos_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=3, vgap=10) |
49 infos_sizer.AddGrowableCol(1) |
49 infos_sizer.AddGrowableCol(1) |
50 main_sizer.AddSizer(infos_sizer, border=20, |
50 main_sizer.AddSizer(infos_sizer, border=20, |
51 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
51 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
52 |
52 |
53 transitionname_label = wx.StaticText(self, label=_('Transition Name:')) |
53 transitionname_label = wx.StaticText(self, label=_('Transition Name:')) |
54 infos_sizer.AddWindow(transitionname_label, border=4, |
54 infos_sizer.AddWindow(transitionname_label, border=4, |
55 flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP) |
55 flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP) |
56 |
56 |
57 self.TransitionName = wx.TextCtrl(self, size=wx.Size(180,-1)) |
57 self.TransitionName = wx.TextCtrl(self, size=wx.Size(180,-1)) |
58 infos_sizer.AddWindow(self.TransitionName, flag=wx.GROW) |
58 infos_sizer.AddWindow(self.TransitionName, flag=wx.GROW) |
59 |
59 |
60 language_label = wx.StaticText(self, label=_('Language:')) |
60 language_label = wx.StaticText(self, label=_('Language:')) |
61 infos_sizer.AddWindow(language_label, border=4, |
61 infos_sizer.AddWindow(language_label, border=4, |
62 flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP) |
62 flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP) |
63 |
63 |
64 self.Language = wx.ComboBox(self, style=wx.CB_READONLY) |
64 self.Language = wx.ComboBox(self, style=wx.CB_READONLY) |
65 infos_sizer.AddWindow(self.Language, flag=wx.GROW) |
65 infos_sizer.AddWindow(self.Language, flag=wx.GROW) |
66 |
66 |
67 button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE) |
67 button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE) |
68 self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton()) |
68 self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton()) |
69 main_sizer.AddSizer(button_sizer, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM) |
69 main_sizer.AddSizer(button_sizer, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM) |
70 |
70 |
71 self.SetSizer(main_sizer) |
71 self.SetSizer(main_sizer) |
72 |
72 |
73 for language in GetTransitionLanguages(): |
73 for language in GetTransitionLanguages(): |
74 self.Language.Append(_(language)) |
74 self.Language.Append(_(language)) |
75 |
75 |
76 self.Fit() |
76 self.Fit() |
77 self.PouNames = [] |
77 self.PouNames = [] |
78 self.PouElementNames = [] |
78 self.PouElementNames = [] |
79 |
79 |
80 def OnOK(self, event): |
80 def OnOK(self, event): |
81 error = [] |
81 error = [] |
82 transition_name = self.TransitionName.GetValue() |
82 transition_name = self.TransitionName.GetValue() |
83 if self.TransitionName.GetValue() == "": |
83 if self.TransitionName.GetValue() == "": |
84 error.append(_("Transition Name")) |
84 error.append(_("Transition Name")) |
107 dialog = wx.MessageDialog(self, message, _("Error"), wx.OK|wx.ICON_ERROR) |
107 dialog = wx.MessageDialog(self, message, _("Error"), wx.OK|wx.ICON_ERROR) |
108 dialog.ShowModal() |
108 dialog.ShowModal() |
109 dialog.Destroy() |
109 dialog.Destroy() |
110 else: |
110 else: |
111 self.EndModal(wx.ID_OK) |
111 self.EndModal(wx.ID_OK) |
112 |
112 |
113 def SetPouNames(self, pou_names): |
113 def SetPouNames(self, pou_names): |
114 self.PouNames = [pou_name.upper() for pou_name in pou_names] |
114 self.PouNames = [pou_name.upper() for pou_name in pou_names] |
115 |
115 |
116 def SetPouElementNames(self, pou_names): |
116 def SetPouElementNames(self, pou_names): |
117 self.PouElementNames = [pou_name.upper() for pou_name in pou_names] |
117 self.PouElementNames = [pou_name.upper() for pou_name in pou_names] |
118 |
118 |
119 def SetValues(self, values): |
119 def SetValues(self, values): |
120 for item, value in values.items(): |
120 for item, value in values.items(): |
121 if item == "transitionName": |
121 if item == "transitionName": |
122 self.TransitionName.SetValue(value) |
122 self.TransitionName.SetValue(value) |
123 elif item == "language": |
123 elif item == "language": |
124 self.Language.SetSelection(_(value)) |
124 self.Language.SetSelection(_(value)) |
125 |
125 |
126 def GetValues(self): |
126 def GetValues(self): |
127 values = {} |
127 values = {} |
128 values["transitionName"] = self.TransitionName.GetValue() |
128 values["transitionName"] = self.TransitionName.GetValue() |
129 values["language"] = TRANSITION_LANGUAGES_DICT[self.Language.GetStringSelection()] |
129 values["language"] = TRANSITION_LANGUAGES_DICT[self.Language.GetStringSelection()] |
130 return values |
130 return values |