62 @param controller: Reference to project controller |
62 @param controller: Reference to project controller |
63 @param tagname: Tagname of project POU edited |
63 @param tagname: Tagname of project POU edited |
64 @param exclude_input: Exclude input from variable class selection |
64 @param exclude_input: Exclude input from variable class selection |
65 """ |
65 """ |
66 BlockPreviewDialog.__init__(self, parent, controller, tagname, |
66 BlockPreviewDialog.__init__(self, parent, controller, tagname, |
67 title=_('Variable Properties')) |
67 title=_('Variable Properties')) |
68 |
68 |
69 # Init common sizers |
69 # Init common sizers |
70 self._init_sizers(4, 2, 4, None, 3, 2) |
70 self._init_sizers(4, 2, 4, None, 3, 2) |
71 |
71 |
72 # Create label for variable class |
72 # Create label for variable class |
78 self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, self.Class) |
78 self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, self.Class) |
79 self.LeftGridSizer.AddWindow(self.Class, flag=wx.GROW) |
79 self.LeftGridSizer.AddWindow(self.Class, flag=wx.GROW) |
80 |
80 |
81 # Create label for variable execution order |
81 # Create label for variable execution order |
82 execution_order_label = wx.StaticText(self, |
82 execution_order_label = wx.StaticText(self, |
83 label=_('Execution Order:')) |
83 label=_('Execution Order:')) |
84 self.LeftGridSizer.AddWindow(execution_order_label, flag=wx.GROW) |
84 self.LeftGridSizer.AddWindow(execution_order_label, flag=wx.GROW) |
85 |
85 |
86 # Create spin control for defining variable execution order |
86 # Create spin control for defining variable execution order |
87 self.ExecutionOrder = wx.SpinCtrl(self, min=0, style=wx.SP_ARROW_KEYS) |
87 self.ExecutionOrder = wx.SpinCtrl(self, min=0, style=wx.SP_ARROW_KEYS) |
88 self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, |
88 self.Bind(wx.EVT_SPINCTRL, self.OnExecutionOrderChanged, |
90 self.LeftGridSizer.AddWindow(self.ExecutionOrder, flag=wx.GROW) |
90 self.LeftGridSizer.AddWindow(self.ExecutionOrder, flag=wx.GROW) |
91 |
91 |
92 # Create label for variable expression |
92 # Create label for variable expression |
93 name_label = wx.StaticText(self, label=_('Expression:')) |
93 name_label = wx.StaticText(self, label=_('Expression:')) |
94 self.RightGridSizer.AddWindow(name_label, border=5, |
94 self.RightGridSizer.AddWindow(name_label, border=5, |
95 flag=wx.GROW | wx.BOTTOM) |
95 flag=wx.GROW | wx.BOTTOM) |
96 |
96 |
97 # Create text control for defining variable expression |
97 # Create text control for defining variable expression |
98 self.Expression = wx.TextCtrl(self) |
98 self.Expression = wx.TextCtrl(self) |
99 self.Bind(wx.EVT_TEXT, self.OnExpressionChanged, self.Expression) |
99 self.Bind(wx.EVT_TEXT, self.OnExpressionChanged, self.Expression) |
100 self.RightGridSizer.AddWindow(self.Expression, flag=wx.GROW) |
100 self.RightGridSizer.AddWindow(self.Expression, flag=wx.GROW) |
101 |
101 |
102 # Create a list box to selected variable expression in the list of |
102 # Create a list box to selected variable expression in the list of |
103 # variables defined in POU |
103 # variables defined in POU |
104 self.VariableName = wx.ListBox(self, size=wx.Size(-1, 120), |
104 self.VariableName = wx.ListBox(self, size=wx.Size(-1, 120), |
105 style=wx.LB_SINGLE | wx.LB_SORT) |
105 style=wx.LB_SINGLE | wx.LB_SORT) |
106 self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, self.VariableName) |
106 self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, self.VariableName) |
107 self.RightGridSizer.AddWindow(self.VariableName, border=4, flag=wx.GROW | wx.TOP) |
107 self.RightGridSizer.AddWindow(self.VariableName, border=4, flag=wx.GROW | wx.TOP) |
108 |
108 |
109 # Add preview panel and associated label to sizers |
109 # Add preview panel and associated label to sizers |
110 self.MainSizer.AddWindow(self.PreviewLabel, border=20, |
110 self.MainSizer.AddWindow(self.PreviewLabel, border=20, |
111 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
111 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
112 self.MainSizer.AddWindow(self.Preview, border=20, |
112 self.MainSizer.AddWindow(self.Preview, border=20, |
113 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
113 flag=wx.GROW | wx.LEFT | wx.RIGHT) |
114 |
114 |
115 # Add buttons sizer to sizers |
115 # Add buttons sizer to sizers |
116 self.MainSizer.AddSizer(self.ButtonSizer, border=20, |
116 self.MainSizer.AddSizer( |
117 flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
117 self.ButtonSizer, border=20, |
|
118 flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT) |
118 |
119 |
119 # Set options that can be selected in class combo box |
120 # Set options that can be selected in class combo box |
120 for var_class, choice in VARIABLE_CLASSES_DICT.iteritems(): |
121 for var_class, choice in VARIABLE_CLASSES_DICT.iteritems(): |
121 if not exclude_input or var_class != INPUT: |
122 if not exclude_input or var_class != INPUT: |
122 self.Class.Append(choice) |
123 self.Class.Append(choice) |
282 """ |
283 """ |
283 # Get expression value to put in FBD variable element |
284 # Get expression value to put in FBD variable element |
284 name = self.Expression.GetValue() |
285 name = self.Expression.GetValue() |
285 |
286 |
286 # Set graphic element displayed, creating a FBD variable element |
287 # Set graphic element displayed, creating a FBD variable element |
287 self.Element = FBD_Variable(self.Preview, |
288 self.Element = FBD_Variable( |
288 VARIABLE_CLASSES_DICT_REVERSE[ |
289 self.Preview, |
289 self.Class.GetStringSelection()], |
290 VARIABLE_CLASSES_DICT_REVERSE[self.Class.GetStringSelection()], |
290 name, |
291 name, |
291 self.VariableList.get(name, ("", ""))[1], |
292 self.VariableList.get(name, ("", ""))[1], |
292 executionOrder=self.ExecutionOrder.GetValue()) |
293 executionOrder=self.ExecutionOrder.GetValue()) |
293 |
294 |
294 # Call BlockPreviewDialog function |
295 # Call BlockPreviewDialog function |
295 BlockPreviewDialog.RefreshPreview(self) |
296 BlockPreviewDialog.RefreshPreview(self) |