--- a/dialogs/LDElementDialog.py Fri Aug 11 15:18:19 2017 +0300
+++ b/dialogs/LDElementDialog.py Mon Aug 14 19:13:01 2017 +0300
@@ -41,7 +41,7 @@
"""
class LDElementDialog(BlockPreviewDialog):
-
+
def __init__(self, parent, controller, tagname, type):
"""
Constructor
@@ -50,24 +50,24 @@
@param tagname: Tagname of project POU edited
@param type: Type of LD element ('contact or 'coil')
"""
- BlockPreviewDialog.__init__(self, parent, controller, tagname,
+ BlockPreviewDialog.__init__(self, parent, controller, tagname,
title=(_("Edit Contact Values")
if type == "contact"
else _("Edit Coil Values")))
-
+
# Init common sizers
- self._init_sizers(2, 0,
+ self._init_sizers(2, 0,
(7 if type == "contact" else 9), None, 2, 1)
-
+
# Create label for LD element modifier
modifier_label = wx.StaticText(self, label=_('Modifier:'))
- self.LeftGridSizer.AddWindow(modifier_label, border=5,
+ self.LeftGridSizer.AddWindow(modifier_label, border=5,
flag=wx.GROW|wx.BOTTOM)
-
+
# Create radio buttons for selecting LD element modifier
self.ModifierRadioButtons = {}
first = True
- element_modifiers = ([CONTACT_NORMAL, CONTACT_REVERSE,
+ element_modifiers = ([CONTACT_NORMAL, CONTACT_REVERSE,
CONTACT_RISING, CONTACT_FALLING]
if type == "contact"
else [COIL_NORMAL, COIL_REVERSE, COIL_SET,
@@ -75,55 +75,55 @@
modifiers_label = [_("Normal"), _("Negated")] + \
([_("Set"), _("Reset")] if type == "coil" else []) + \
[_("Rising Edge"), _("Falling Edge")]
-
+
for modifier, label in zip(element_modifiers, modifiers_label):
- radio_button = wx.RadioButton(self, label=label,
+ radio_button = wx.RadioButton(self, label=label,
style=(wx.RB_GROUP if first else 0))
radio_button.SetValue(first)
self.Bind(wx.EVT_RADIOBUTTON, self.OnModifierChanged, radio_button)
self.LeftGridSizer.AddWindow(radio_button, flag=wx.GROW)
self.ModifierRadioButtons[modifier] = radio_button
first = False
-
+
# Create label for LD element variable
element_variable_label = wx.StaticText(self, label=_('Variable:'))
self.LeftGridSizer.AddWindow(element_variable_label, border=5,
flag=wx.GROW|wx.TOP)
-
+
# Create a combo box for defining LD element variable
self.ElementVariable = wx.ComboBox(self, style=wx.CB_SORT)
- self.Bind(wx.EVT_COMBOBOX, self.OnVariableChanged,
+ self.Bind(wx.EVT_COMBOBOX, self.OnVariableChanged,
self.ElementVariable)
- self.Bind(wx.EVT_TEXT, self.OnVariableChanged,
- self.ElementVariable)
+ self.Bind(wx.EVT_TEXT, self.OnVariableChanged,
+ self.ElementVariable)
self.LeftGridSizer.AddWindow(self.ElementVariable, border=5,
flag=wx.GROW|wx.TOP)
-
+
# Add preview panel and associated label to sizers
self.RightGridSizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
self.RightGridSizer.AddWindow(self.Preview, flag=wx.GROW)
-
+
# Add buttons sizer to sizers
- self.MainSizer.AddSizer(self.ButtonSizer, border=20,
+ self.MainSizer.AddSizer(self.ButtonSizer, border=20,
flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
-
+
# Save LD element class
self.ElementClass = (LD_Contact if type == "contact" else LD_Coil)
-
+
# Extract list of variables defined in POU
self.RefreshVariableList()
-
+
# Set values in ElementVariable
for name, (var_type, value_type) in self.VariableList.iteritems():
# Only select BOOL variable and avoid input for coil
if (type == "contact" or var_type != "Input") and \
value_type == "BOOL":
self.ElementVariable.Append(name)
-
+
self.Fit()
# Normal radio button is default control having keyboard focus
self.ModifierRadioButtons[element_modifiers[0]].SetFocus()
-
+
def GetElementModifier(self):
"""
Return modifier selected for LD element
@@ -143,15 +143,15 @@
"""
# For each parameters defined, set corresponding control value
for name, value in values.items():
-
+
# Parameter is LD element variable
if name == "variable":
self.ElementVariable.SetValue(value)
-
+
# Set value of other controls
elif name == "modifier":
self.ModifierRadioButtons[value].SetValue(True)
-
+
# Refresh preview panel
self.RefreshPreview()
@@ -188,20 +188,19 @@
Override BlockPreviewDialog function
"""
value = self.ElementVariable.GetValue()
-
+
# Set graphic element displayed, creating a LD element
self.Element = self.ElementClass(
- self.Preview,
+ self.Preview,
self.GetElementModifier(),
value)
button = self.ButtonSizer.GetAffirmativeButton()
button.Enable(value != "")
-
+
# Call BlockPreviewDialog function
BlockPreviewDialog.RefreshPreview(self)
-
+
def OnOK(self, event):
if self.ElementVariable.GetValue() != "":
self.EndModal(wx.ID_OK)
-