dialogs/FBDVariableDialog.py
changeset 1250 7e6de17c687a
parent 1246 101625efb1c1
child 1259 8350222a81c3
equal deleted inserted replaced
1249:b956c924cbbd 1250:7e6de17c687a
    59         @param tagname: Tagname of project POU edited
    59         @param tagname: Tagname of project POU edited
    60         """
    60         """
    61         BlockPreviewDialog.__init__(self, parent, controller, tagname,
    61         BlockPreviewDialog.__init__(self, parent, controller, tagname,
    62               size=wx.Size(400, 380), title=_('Variable Properties'))
    62               size=wx.Size(400, 380), title=_('Variable Properties'))
    63         
    63         
    64         # Create dialog main sizer
    64         # Init common sizers
    65         main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=4, vgap=10)
    65         self._init_sizers(4, 2, 4, None, 3, 2)
    66         main_sizer.AddGrowableCol(0)
       
    67         main_sizer.AddGrowableRow(2)
       
    68         
       
    69         # Create a sizer for dividing FBD variable parameters in two columns
       
    70         column_sizer = wx.BoxSizer(wx.HORIZONTAL)
       
    71         main_sizer.AddSizer(column_sizer, border=20, 
       
    72               flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
       
    73         
       
    74         # Create a sizer for left column
       
    75         left_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=4, vgap=5)
       
    76         left_gridsizer.AddGrowableCol(0)
       
    77         column_sizer.AddSizer(left_gridsizer, 1, border=5, 
       
    78               flag=wx.GROW|wx.RIGHT)
       
    79         
    66         
    80         # Create label for variable class
    67         # Create label for variable class
    81         class_label = wx.StaticText(self, label=_('Class:'))
    68         class_label = wx.StaticText(self, label=_('Class:'))
    82         left_gridsizer.AddWindow(class_label, flag=wx.GROW)
    69         self.LeftGridSizer.AddWindow(class_label, flag=wx.GROW)
    83         
    70         
    84         # Create a combo box for defining variable class
    71         # Create a combo box for defining variable class
    85         self.Class = wx.ComboBox(self, style=wx.CB_READONLY)
    72         self.Class = wx.ComboBox(self, style=wx.CB_READONLY)
    86         self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, self.Class)
    73         self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, self.Class)
    87         left_gridsizer.AddWindow(self.Class, flag=wx.GROW)
    74         self.LeftGridSizer.AddWindow(self.Class, flag=wx.GROW)
    88         
    75         
    89         # Create label for variable execution order
    76         # Create label for variable execution order
    90         execution_order_label = wx.StaticText(self, 
    77         execution_order_label = wx.StaticText(self, 
    91               label=_('Execution Order:'))
    78               label=_('Execution Order:'))
    92         left_gridsizer.AddWindow(execution_order_label, flag=wx.GROW)
    79         self.LeftGridSizer.AddWindow(execution_order_label, flag=wx.GROW)
    93         
    80         
    94         # Create spin control for defining variable execution order
    81         # Create spin control for defining variable execution order
    95         self.ExecutionOrder = wx.SpinCtrl(self, min=0, style=wx.SP_ARROW_KEYS)
    82         self.ExecutionOrder = wx.SpinCtrl(self, min=0, style=wx.SP_ARROW_KEYS)
    96         self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, 
    83         self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, 
    97                   self.ExecutionOrder)
    84                   self.ExecutionOrder)
    98         left_gridsizer.AddWindow(self.ExecutionOrder, flag=wx.GROW)
    85         self.LeftGridSizer.AddWindow(self.ExecutionOrder, flag=wx.GROW)
    99         
       
   100         # Create a sizer for right column
       
   101         right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=0)
       
   102         right_gridsizer.AddGrowableCol(0)
       
   103         right_gridsizer.AddGrowableRow(2)
       
   104         column_sizer.AddSizer(right_gridsizer, 1, border=5, 
       
   105               flag=wx.GROW|wx.LEFT)
       
   106         
    86         
   107         # Create label for variable expression
    87         # Create label for variable expression
   108         name_label = wx.StaticText(self, label=_('Expression:'))
    88         name_label = wx.StaticText(self, label=_('Expression:'))
   109         right_gridsizer.AddWindow(name_label, border=5, flag=wx.GROW|wx.BOTTOM)
    89         self.RightGridSizer.AddWindow(name_label, border=5, 
       
    90               flag=wx.GROW|wx.BOTTOM)
   110         
    91         
   111         # Create text control for defining variable expression
    92         # Create text control for defining variable expression
   112         self.Expression = wx.TextCtrl(self)
    93         self.Expression = wx.TextCtrl(self)
   113         self.Bind(wx.EVT_TEXT, self.OnExpressionChanged, self.Expression)
    94         self.Bind(wx.EVT_TEXT, self.OnExpressionChanged, self.Expression)
   114         right_gridsizer.AddWindow(self.Expression, flag=wx.GROW)
    95         self.RightGridSizer.AddWindow(self.Expression, flag=wx.GROW)
   115         
    96         
   116         # Create a list box to selected variable expression in the list of
    97         # Create a list box to selected variable expression in the list of
   117         # variables defined in POU
    98         # variables defined in POU
   118         self.VariableName = wx.ListBox(self, size=wx.Size(0, 120), 
    99         self.VariableName = wx.ListBox(self, size=wx.Size(0, 120), 
   119               style=wx.LB_SINGLE|wx.LB_SORT)
   100               style=wx.LB_SINGLE|wx.LB_SORT)
   120         self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, self.VariableName)
   101         self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, self.VariableName)
   121         right_gridsizer.AddWindow(self.VariableName, flag=wx.GROW)
   102         self.RightGridSizer.AddWindow(self.VariableName, flag=wx.GROW)
   122         
   103         
   123         # Add preview panel and associated label to sizers
   104         # Add preview panel and associated label to sizers
   124         main_sizer.AddWindow(self.PreviewLabel, border=20,
   105         self.MainSizer.AddWindow(self.PreviewLabel, border=20,
   125               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   106               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   126         main_sizer.AddWindow(self.Preview, border=20,
   107         self.MainSizer.AddWindow(self.Preview, border=20,
   127               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   108               flag=wx.GROW|wx.LEFT|wx.RIGHT)
   128         
   109         
   129         # Add buttons sizer to sizers
   110         # Add buttons sizer to sizers
   130         main_sizer.AddSizer(self.ButtonSizer, border=20, 
   111         self.MainSizer.AddSizer(self.ButtonSizer, border=20, 
   131               flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
   112               flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
   132         
       
   133         self.SetSizer(main_sizer)
       
   134         
   113         
   135         # Set options that can be selected in class combo box
   114         # Set options that can be selected in class combo box
   136         for choice in VARIABLE_CLASSES_DICT.itervalues():
   115         for choice in VARIABLE_CLASSES_DICT.itervalues():
   137             self.Class.Append(choice)
   116             self.Class.Append(choice)
   138         self.Class.SetStringSelection(VARIABLE_CLASSES_DICT[INPUT])
   117         self.Class.SetStringSelection(VARIABLE_CLASSES_DICT[INPUT])