--- a/IDEFrame.py Tue Aug 28 18:06:30 2018 +0300
+++ b/IDEFrame.py Wed Aug 29 18:53:02 2018 +0300
@@ -93,106 +93,6 @@
] = [wx.NewId() for _init_coll_DefaultEditorToolBar_Items in range(18)]
-# Define behaviour of each Toolbar item according to current POU body type
-# Informations meaning are in this order:
-# - PLCOpenEditor mode where item is displayed (could be more then one)
-# - Item callback function name
- "FBD": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool",
- "move", _("Move the view")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool",
- "add_comment", _("Create a new comment")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool",
- "add_variable", _("Create a new variable")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool",
- "add_block", _("Create a new block")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool",
- "add_connection", _("Create a new connection"))],
- "LD": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool",
- "move", _("Move the view")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool",
- "add_comment", _("Create a new comment")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARPOWERRAIL, "OnPowerRailTool",
- "add_powerrail", _("Create a new power rail")),
- (False, DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARRUNG, "OnRungTool",
- "add_rung", _("Create a new rung")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCOIL, "OnCoilTool",
- "add_coil", _("Create a new coil")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCONTACT, "OnContactTool",
- "add_contact", _("Create a new contact")),
- (False, DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARBRANCH, "OnBranchTool",
- "add_branch", _("Create a new branch")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool",
- "add_variable", _("Create a new variable")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool",
- "add_block", _("Create a new block")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool",
- "add_connection", _("Create a new connection"))],
- "SFC": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool",
- "move", _("Move the view")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool",
- "add_comment", _("Create a new comment")),
- (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARINITIALSTEP, "OnInitialStepTool",
- "add_initial_step", _("Create a new initial step")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARSTEP, "OnStepTool",
- "add_step", _("Create a new step")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARTRANSITION, "OnTransitionTool",
- "add_transition", _("Create a new transition")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARACTIONBLOCK, "OnActionBlockTool",
- "add_action", _("Create a new action block")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARDIVERGENCE, "OnDivergenceTool",
- "add_divergence", _("Create a new divergence")),
- (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARJUMP, "OnJumpTool",
- "add_jump", _("Create a new jump")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool",
- "add_variable", _("Create a new variable")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool",
- "add_block", _("Create a new block")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool",
- "add_connection", _("Create a new connection")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARPOWERRAIL, "OnPowerRailTool",
- "add_powerrail", _("Create a new power rail")),
- (True, FREEDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARCONTACT, "OnContactTool",
- "add_contact", _("Create a new contact"))],
- "debug": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE,
- ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool",
- "move", _("Move the view"))],
# -------------------------------------------------------------------------------
# -------------------------------------------------------------------------------
@@ -331,12 +231,114 @@
-UNEDITABLE_NAMES_DICT = dict([(_(n), n) for n in UNEDITABLE_NAMES])
class IDEFrame(wx.Frame):
"""IDEFrame Base Class"""
+ def InitEditorToolbarItems(self): + Initialize dictionary with lists of elements that need to be shown + if POU in particular programming language is edited. + # Define behaviour of each Toolbar item according to current POU body type + # Informations meaning are in this order: + # - PLCOpenEditor mode where item is displayed (could be more then one) + # - Item callback function name + self.EditorToolBarItems = { + "FBD": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool", + "move", _("Move the view")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool", + "add_comment", _("Create a new comment")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool", + "add_variable", _("Create a new variable")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool", + "add_block", _("Create a new block")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool", + "add_connection", _("Create a new connection"))], + "LD": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool", + "move", _("Move the view")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool", + "add_comment", _("Create a new comment")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARPOWERRAIL, "OnPowerRailTool", + "add_powerrail", _("Create a new power rail")), + (False, DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARRUNG, "OnRungTool", + "add_rung", _("Create a new rung")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCOIL, "OnCoilTool", + "add_coil", _("Create a new coil")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCONTACT, "OnContactTool", + "add_contact", _("Create a new contact")), + (False, DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARBRANCH, "OnBranchTool", + "add_branch", _("Create a new branch")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool", + "add_variable", _("Create a new variable")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool", + "add_block", _("Create a new block")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool", + "add_connection", _("Create a new connection"))], + "SFC": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool", + "move", _("Move the view")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCOMMENT, "OnCommentTool", + "add_comment", _("Create a new comment")), + (True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARINITIALSTEP, "OnInitialStepTool", + "add_initial_step", _("Create a new initial step")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARSTEP, "OnStepTool", + "add_step", _("Create a new step")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARTRANSITION, "OnTransitionTool", + "add_transition", _("Create a new transition")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", + "add_action", _("Create a new action block")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARDIVERGENCE, "OnDivergenceTool", + "add_divergence", _("Create a new divergence")), + (False, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARJUMP, "OnJumpTool", + "add_jump", _("Create a new jump")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARVARIABLE, "OnVariableTool", + "add_variable", _("Create a new variable")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARBLOCK, "OnBlockTool", + "add_block", _("Create a new block")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCONNECTION, "OnConnectionTool", + "add_connection", _("Create a new connection")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARPOWERRAIL, "OnPowerRailTool", + "add_powerrail", _("Create a new power rail")), + (True, FREEDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARCONTACT, "OnContactTool", + "add_contact", _("Create a new contact"))], + "debug": [(True, FREEDRAWING_MODE | DRIVENDRAWING_MODE, + ID_PLCOPENEDITOREDITORTOOLBARMOTION, "OnMotionTool", + "move", _("Move the view"))], def _init_coll_MenuBar_Menus(self, parent):
parent.Append(menu=self.FileMenu, title=_(u'&File'))
parent.Append(menu=self.EditMenu, title=_(u'&Edit'))
@@ -672,10 +674,13 @@
style=wx.DEFAULT_FRAME_STYLE)
+ self.UNEDITABLE_NAMES_DICT = dict([(_(n), n) for n in UNEDITABLE_NAMES]) self.Config = wx.ConfigBase.Get()
self.EnableDebug = enable_debug
+ self.InitEditorToolbarItems() # Define Tree item icon list
@@ -1891,7 +1896,7 @@
if item_infos["type"] == ITEM_PROJECT:
- name = UNEDITABLE_NAMES_DICT[name]
+ name = self.UNEDITABLE_NAMES_DICT[name] @@ -2155,7 +2160,7 @@
self.CurrentEditorToolBar = []
EditorToolBar = self.Panes["EditorToolBar"]
- for radio, modes, id, method, picture, help in EditorToolBarItems[menu]:
+ for radio, modes, id, method, picture, help in self.EditorToolBarItems[menu]: if modes & self.DrawingMode:
if radio or self.DrawingMode == FREEDRAWING_MODE:
EditorToolBar.AddRadioTool(id, GetBitmap(picture), wx.NullBitmap, help)
@@ -2420,7 +2425,7 @@
if self.ProjectTree.GetPyData(selected)["type"] != ITEM_PROJECT:
pou_type = self.ProjectTree.GetItemText(selected)
- pou_type = UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs'
+ pou_type = self.UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs' pou_type = {'Functions': 'function', 'Function Blocks': 'functionBlock', 'Programs': 'program'}[pou_type]
--- a/controls/DebugVariablePanel/DebugVariablePanel.py Tue Aug 28 18:06:30 2018 +0300
+++ b/controls/DebugVariablePanel/DebugVariablePanel.py Wed Aug 29 18:53:02 2018 +0300
@@ -50,14 +50,6 @@
HOUR = 60 * MINUTE # Number of nanosecond in a hour
DAY = 24 * HOUR # Number of nanosecond in a day
-# List of values possible for graph range
-# Format is [(time_in_plain_text, value_in_nanosecond),...]
- [(_("%dms") % i, i * MILLISECOND) for i in (10, 20, 50, 100, 200, 500)] + \
- [(_("%ds") % i, i * SECOND) for i in (1, 2, 5, 10, 20, 30)] + \
- [(_("%dm") % i, i * MINUTE) for i in (1, 2, 5, 10, 20, 30)] + \
- [(_("%dh") % i, i * HOUR) for i in (1, 2, 3, 6, 12, 24)]
# Scrollbar increment in pixel
@@ -189,6 +181,13 @@
wx.Panel.__init__(self, parent, style=wx.SP_3D | wx.TAB_TRAVERSAL)
+ # List of values possible for graph range + # Format is [(time_in_plain_text, value_in_nanosecond),...] + self.RANGE_VALUES = [(_("%dms") % i, i * MILLISECOND) for i in (10, 20, 50, 100, 200, 500)] + \ + [(_("%ds") % i, i * SECOND) for i in (1, 2, 5, 10, 20, 30)] + \ + [(_("%dm") % i, i * MINUTE) for i in (1, 2, 5, 10, 20, 30)] + \ + [(_("%dh") % i, i * HOUR) for i in (1, 2, 3, 6, 12, 24)] # Save Reference to Beremiz frame
self.ParentWindow = window
@@ -233,7 +232,7 @@
- for idx, (text, _value) in enumerate(RANGE_VALUES):
+ for idx, (text, _value) in enumerate(self.RANGE_VALUES): self.CanvasRange.Append(text)
@@ -307,7 +306,7 @@
self.Ticktime = MILLISECOND
# Calculate range to apply to data
- self.CurrentRange = RANGE_VALUES[
+ self.CurrentRange = self.RANGE_VALUES[ self.CanvasRange.GetSelection()][1] / self.Ticktime
def SetDataProducer(self, producer):
@@ -614,10 +613,10 @@
def ChangeRange(self, dir, tick=None):
current_range = self.CurrentRange
current_range_idx = self.CanvasRange.GetSelection()
- new_range_idx = max(0, min(current_range_idx + dir, len(RANGE_VALUES) - 1))
+ new_range_idx = max(0, min(current_range_idx + dir, len(self.RANGE_VALUES) - 1)) if new_range_idx != current_range_idx:
self.CanvasRange.SetSelection(new_range_idx)
- self.CurrentRange = RANGE_VALUES[new_range_idx][1] / self.Ticktime
+ self.CurrentRange = self.RANGE_VALUES[new_range_idx][1] / self.Ticktime tick = self.StartTick + self.CurrentRange / 2.
@@ -639,7 +638,7 @@
def OnRangeChanged(self, event):
- self.CurrentRange = RANGE_VALUES[self.CanvasRange.GetSelection()][1] / self.Ticktime
+ self.CurrentRange = self.RANGE_VALUES[self.CanvasRange.GetSelection()][1] / self.Ticktime self.CanvasRange.SetValue(str(self.CurrentRange))
wx.CallAfter(self.RefreshRange)
--- a/controls/VariablePanel.py Tue Aug 28 18:06:30 2018 +0300
+++ b/controls/VariablePanel.py Wed Aug 29 18:53:02 2018 +0300
@@ -80,9 +80,6 @@
-OPTIONS_DICT = dict([(_(option), option) for option in GetOptions()])
def GetFilterChoiceTransfer():
return {_("All"): _("All"), _("Interface"): _("Interface"),
@@ -91,9 +88,6 @@
_(" Temp"): _("Temp"), _("Global"): _("Global")} # , _("Access") : _("Access")}
-VARIABLE_CHOICES_DICT = dict([(_(_class), _class) for _class in GetFilterChoiceTransfer().iterkeys()])
-VARIABLE_CLASSES_DICT = dict([(_(_class), _class) for _class in GetFilterChoiceTransfer().itervalues()])
@@ -122,6 +116,10 @@
# The base class must be initialized *first*
CustomTable.__init__(self, parent, data, colnames)
+ self.OPTIONS_DICT = dict([(_(option), option) + for option in GetOptions()]) + self.VARIABLE_CLASSES_DICT = dict([(_(_class), _class) + for _class in GetFilterChoiceTransfer().itervalues()]) def GetValueByName(self, row, colname):
if row < self.GetNumberRows():
@@ -154,12 +152,12 @@
self.old_value = getattr(self.data[row], colname)
- value = VARIABLE_CLASSES_DICT[value]
+ value = self.VARIABLE_CLASSES_DICT[value] self.SetValueByName(row, "Option", CheckOptionForClass[value](self.GetValueByName(row, "Option")))
self.SetValueByName(row, "InitialValue", "")
elif colname == "Option":
- value = OPTIONS_DICT[value]
+ value = self.OPTIONS_DICT[value] elif colname == "Initial Value":
setattr(self.data[row], colname, value)
@@ -444,6 +442,9 @@
def __init__(self, parent, window, controler, element_type, debug=False):
wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)
+ self.VARIABLE_CHOICES_DICT = dict([(_(_class), _class) for + _class in GetFilterChoiceTransfer().iterkeys()]) self.MainSizer = wx.FlexGridSizer(cols=1, hgap=10, rows=2, vgap=0)
self.MainSizer.AddGrowableCol(0)
self.MainSizer.AddGrowableRow(1)
@@ -763,7 +764,7 @@
def OnClassFilter(self, event):
- self.Filter = self.FilterChoiceTransfer[VARIABLE_CHOICES_DICT[self.ClassFilter.GetStringSelection()]]
+ self.Filter = self.FilterChoiceTransfer[self.VARIABLE_CHOICES_DICT[self.ClassFilter.GetStringSelection()]] self.VariablesGrid.RefreshButtons()
--- a/dialogs/BrowseLocationsDialog.py Tue Aug 28 18:06:30 2018 +0300
+++ b/dialogs/BrowseLocationsDialog.py Wed Aug 29 18:53:02 2018 +0300
@@ -45,9 +45,6 @@
(_("Memory"), [LOCATION_VAR_MEMORY])]
-DIRFILTERCHOICE_OPTIONS = dict([(_(option), filter) for option, filter in GetDirFilterChoiceOptions()])
def GetTypeFilterChoiceOptions():
@@ -72,6 +69,8 @@
wx.Dialog.__init__(self, parent, title=_('Browse Locations'),
style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+ self.DIRFILTERCHOICE_OPTIONS = dict( + [(_(option), filter) for option, filter in GetDirFilterChoiceOptions()]) main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(1)
@@ -159,7 +158,7 @@
def RefreshFilters(self):
- self.DirFilter = DIRFILTERCHOICE_OPTIONS[self.DirFilterChoice.GetStringSelection()]
+ self.DirFilter = self.DIRFILTERCHOICE_OPTIONS[self.DirFilterChoice.GetStringSelection()] self.TypeFilter = self.TypeFilterChoice.GetSelection()
def RefreshLocationsTree(self):
--- a/dialogs/DurationEditorDialog.py Tue Aug 28 18:06:30 2018 +0300
+++ b/dialogs/DurationEditorDialog.py Wed Aug 29 18:53:02 2018 +0300
@@ -42,14 +42,6 @@
IEC_TIME_MODEL = re.compile("(?:T|TIME)#(-)?(?:(%(float)s)D_?)?(?:(%(float)s)H_?)?(?:(%(float)s)M(?!S)_?)?(?:(%(float)s)S_?)?(?:(%(float)s)MS)?$" % {"float": "[0-9]+(?:\.[0-9]+)?"})
- ("Hours", _('Hours:')),
- ("Minutes", _('Minutes:')),
- ("Seconds", _('Seconds:')),
- ("Milliseconds", _('Milliseconds:')),
- ("Microseconds", _('Microseconds:')),
# -------------------------------------------------------------------------------
# Edit Duration Value Dialog
@@ -61,6 +53,15 @@
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Edit Duration'))
+ ("Hours", _('Hours:')), + ("Minutes", _('Minutes:')), + ("Seconds", _('Seconds:')), + ("Milliseconds", _('Milliseconds:')), + ("Microseconds", _('Microseconds:')), main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
--- a/dialogs/FBDVariableDialog.py Tue Aug 28 18:06:30 2018 +0300
+++ b/dialogs/FBDVariableDialog.py Wed Aug 29 18:53:02 2018 +0300
@@ -34,16 +34,6 @@
# -------------------------------------------------------------------------------
-# Dictionaries containing correspondence between variable block class and string
-# to be shown in Class combo box in both sense
-VARIABLE_CLASSES_DICT = {
-VARIABLE_CLASSES_DICT_REVERSE = dict(
- [(value, key) for key, value in VARIABLE_CLASSES_DICT.iteritems()])
# -------------------------------------------------------------------------------
# Set Variable Parameters Dialog
@@ -67,6 +57,17 @@
BlockPreviewDialog.__init__(self, parent, controller, tagname,
title=_('Variable Properties'))
+ # Dictionaries containing correspondence between variable block class and string + # to be shown in Class combo box in both sense + self.VARIABLE_CLASSES_DICT = { + self.VARIABLE_CLASSES_DICT_REVERSE = dict( + [(value, key) for key, value in self.VARIABLE_CLASSES_DICT.iteritems()]) self._init_sizers(4, 2, 4, None, 3, 2)
@@ -119,7 +120,7 @@
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
# Set options that can be selected in class combo box
- for var_class, choice in VARIABLE_CLASSES_DICT.iteritems():
+ for var_class, choice in self.VARIABLE_CLASSES_DICT.iteritems(): if not exclude_input or var_class != INPUT:
self.Class.Append(choice)
self.Class.SetSelection(0)
@@ -141,7 +142,7 @@
Called to refresh names in name list box
# Get variable class to select POU variable applicable
- var_class = VARIABLE_CLASSES_DICT_REVERSE[
+ var_class = self.VARIABLE_CLASSES_DICT_REVERSE[ self.Class.GetStringSelection()]
# Refresh names in name list box by selecting variables in POU variables
@@ -172,7 +173,7 @@
var_class = values.get("class", None)
if var_class is not None:
# Set class selected in class combo box
- self.Class.SetStringSelection(VARIABLE_CLASSES_DICT[var_class])
+ self.Class.SetStringSelection(self.VARIABLE_CLASSES_DICT[var_class]) # Refresh names in name list box according to var class
@@ -204,7 +205,7 @@
expression = self.Expression.GetValue()
- "class": VARIABLE_CLASSES_DICT_REVERSE[
+ "class": self.VARIABLE_CLASSES_DICT_REVERSE[ self.Class.GetStringSelection()],
"expression": expression,
"var_type": self.VariableList.get(expression, (None, None))[1],
@@ -288,7 +289,7 @@
# Set graphic element displayed, creating a FBD variable element
self.Element = FBD_Variable(
- VARIABLE_CLASSES_DICT_REVERSE[self.Class.GetStringSelection()],
+ self.VARIABLE_CLASSES_DICT_REVERSE[self.Class.GetStringSelection()], self.VariableList.get(name, ("", ""))[1],
executionOrder=self.ExecutionOrder.GetValue())
--- a/dialogs/PouActionDialog.py Tue Aug 28 18:06:30 2018 +0300
+++ b/dialogs/PouActionDialog.py Wed Aug 29 18:53:02 2018 +0300
@@ -36,14 +36,14 @@
return [_("IL"), _("ST"), _("LD"), _("FBD")]
-ACTION_LANGUAGES_DICT = dict([(_(language), language) for language in GetActionLanguages()])
class PouActionDialog(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Create a new action'))
+ self.ACTION_LANGUAGES_DICT = dict([(_(language), language) + for language in GetActionLanguages()]) main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
@@ -131,5 +131,5 @@
values["actionName"] = self.ActionName.GetValue()
- values["language"] = ACTION_LANGUAGES_DICT[self.Language.GetStringSelection()]
+ values["language"] = self.ACTION_LANGUAGES_DICT[self.Language.GetStringSelection()] --- a/dialogs/PouTransitionDialog.py Tue Aug 28 18:06:30 2018 +0300
+++ b/dialogs/PouTransitionDialog.py Wed Aug 29 18:53:02 2018 +0300
@@ -40,14 +40,13 @@
return [_("IL"), _("ST"), _("LD"), _("FBD")]
-TRANSITION_LANGUAGES_DICT = dict([(_(language), language) for language in GetTransitionLanguages()])
class PouTransitionDialog(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Create a new transition'))
+ self.TRANSITION_LANGUAGES_DICT = dict([(_(language), language) + for language in GetTransitionLanguages()]) main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
@@ -133,5 +132,5 @@
values["transitionName"] = self.TransitionName.GetValue()
- values["language"] = TRANSITION_LANGUAGES_DICT[self.Language.GetStringSelection()]
+ values["language"] = self.TRANSITION_LANGUAGES_DICT[self.Language.GetStringSelection()] --- a/editors/FileManagementPanel.py Tue Aug 28 18:06:30 2018 +0300
+++ b/editors/FileManagementPanel.py Wed Aug 29 18:53:02 2018 +0300
@@ -34,8 +34,6 @@
from util.BitmapLibrary import GetBitmap
from controls import FolderTree
-FILTER = _("All files (*.*)|*.*|CSV files (*.csv)|*.csv")
class FileManagementPanel(EditorPanel):
@@ -50,6 +48,7 @@
managed_dir_label = wx.StaticText(self.Editor, label=_(self.TagName) + ":")
left_sizer.AddWindow(managed_dir_label, border=5, flag=wx.GROW | wx.BOTTOM)
+ FILTER = _("All files (*.*)|*.*|CSV files (*.csv)|*.csv") self.ManagedDir = FolderTree(self.Editor, self.Folder, FILTER)
left_sizer.AddWindow(self.ManagedDir, 1, flag=wx.GROW)
--- a/editors/ResourceEditor.py Tue Aug 28 18:06:30 2018 +0300
+++ b/editors/ResourceEditor.py Wed Aug 29 18:53:02 2018 +0300
@@ -81,9 +81,6 @@
return [_("Interrupt"), _("Cyclic")]
-TASKTRIGGERINGOPTIONS_DICT = dict([(_(option), option) for option in GetTaskTriggeringOptions()])
def SingleCellEditor(*x):
return wx.grid.GridCellChoiceEditor()
@@ -98,7 +95,6 @@
class ResourceTable(CustomTable):
A custom wx.grid.Grid Table using user supplied data
@@ -107,6 +103,8 @@
CustomTable.__init__(self, parent, data, colnames)
+ self.TASKTRIGGERINGOPTIONS_DICT = dict([(_(option), option) + for option in GetTaskTriggeringOptions()]) def GetColAlignements(self):
return self.ColAlignements
@@ -132,7 +130,7 @@
if col < len(self.colnames):
colname = self.GetColLabelValue(col, False)
if colname == "Triggering":
- value = TASKTRIGGERINGOPTIONS_DICT[value]
+ value = self.TASKTRIGGERINGOPTIONS_DICT[value] self.data[row][colname] = value
def _updateColAttrs(self, grid):
--- a/editors/Viewer.py Tue Aug 28 18:06:30 2018 +0300
+++ b/editors/Viewer.py Wed Aug 29 18:53:02 2018 +0300
@@ -470,7 +470,7 @@
class DebugInstanceName(DebugDataConsumer):
- VALUE_TRANSLATION = {True: _("Active"), False: _("Inactive")}
+ VALUE_TRANSLATION = None def __init__(self, parent):
DebugDataConsumer.__init__(self)
@@ -480,6 +480,9 @@
+ if self.VALUE_TRANSLATION is None: + self.__class__.VALUE_TRANSLATION = {True: _("Active"), False: _("Inactive")} def SetValue(self, value):
if self.ActionState != self.ActionLastState: