--- a/dialogs/LDElementDialog.py Mon Aug 21 20:17:19 2017 +0000
+++ b/dialogs/LDElementDialog.py Mon Aug 21 23:22:58 2017 +0300
@@ -31,17 +31,17 @@
from graphics.LD_Objects import LD_Contact, LD_Coil
from BlockPreviewDialog import BlockPreviewDialog
-#-------------------------------------------------------------------------------
+# -------------------------------------------------------------------------------
# Set Ladder Element Parmeters Dialog
-#-------------------------------------------------------------------------------
-
-"""
-Class that implements a dialog for defining parameters of a LD contact or coil
-graphic element
-"""
+# -------------------------------------------------------------------------------
+
class LDElementDialog(BlockPreviewDialog):
-
+ """
+ Class that implements a dialog for defining parameters of a LD contact or coil
+ graphic element
+ """
+
def __init__(self, parent, controller, tagname, type):
"""
Constructor
@@ -50,80 +50,81 @@
@param tagname: Tagname of project POU edited
@param type: Type of LD element ('contact or 'coil')
"""
- BlockPreviewDialog.__init__(self, parent, controller, tagname,
- title=(_("Edit Contact Values")
- if type == "contact"
- else _("Edit Coil Values")))
-
+ 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,
- (7 if type == "contact" else 9), None, 2, 1)
-
+ 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,
- flag=wx.GROW|wx.BOTTOM)
-
+ 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,
COIL_RESET, COIL_RISING, COIL_FALLING])
- modifiers_label = [_("Normal"), _("Negated")] + \
- ([_("Set"), _("Reset")] if type == "coil" else []) + \
- [_("Rising Edge"), _("Falling Edge")]
-
+ 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,
- style=(wx.RB_GROUP if first else 0))
+ 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)
-
+ 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)
-
+ 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,
- flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
-
+ 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 +144,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 +189,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)
-