dialogs/PouTransitionDialog.py
changeset 1730 64d8f52bc8c8
parent 1696 8043f32de7b8
child 1734 750eeb7230a1
equal deleted inserted replaced
1726:d51af006fa6b 1730:64d8f52bc8c8
    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"))
    91                 if i == 0:
    91                 if i == 0:
    92                     text += item
    92                     text += item
    93                 elif i == len(error) - 1:
    93                 elif i == len(error) - 1:
    94                     text += _(" and %s")%item
    94                     text += _(" and %s")%item
    95                 else:
    95                 else:
    96                     text += _(", %s")%item 
    96                     text += _(", %s")%item
    97             message = _("Form isn't complete. %s must be filled!") % text
    97             message = _("Form isn't complete. %s must be filled!") % text
    98         elif not TestIdentifier(transition_name):
    98         elif not TestIdentifier(transition_name):
    99             message = _("\"%s\" is not a valid identifier!") % transition_name
    99             message = _("\"%s\" is not a valid identifier!") % transition_name
   100         elif transition_name.upper() in IEC_KEYWORDS:
   100         elif transition_name.upper() in IEC_KEYWORDS:
   101             message = _("\"%s\" is a keyword. It can't be used!") % transition_name
   101             message = _("\"%s\" is a keyword. It can't be used!") % 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