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]) |