# HG changeset patch
# User lbessard
# Date 1187021210 -7200
# Node ID 0e48629c1e6d0f685f9fafa597d40c91ce2b60c9
# Parent 8fbff50141f8c4487b77176a95d4d92fda0ce8c5
Adding support for avoiding name conflicts
diff -r 8fbff50141f8 -r 0e48629c1e6d Dialogs.py
--- a/Dialogs.py Mon Aug 13 18:04:19 2007 +0200
+++ b/Dialogs.py Mon Aug 13 18:06:50 2007 +0200
@@ -152,6 +152,9 @@
self.Inputs.Enable(False)
self.Block = None
self.MinBlockSize = None
+
+ self.PouNames = []
+ self.PouElementNames = []
def FindTreeItem(self, root, name, inputs = None):
if root.IsOk():
@@ -174,14 +177,32 @@
def OnOK(self, event):
error = []
selected = self.TypeTree.GetSelection()
+ block_name = self.Name.GetValue()
+ name_enabled = self.Name.IsEnabled()
if not selected.IsOk() or self.TypeTree.GetItemParent(selected) == self.TypeTree.GetRootItem() or selected == self.TypeTree.GetRootItem():
message = wx.MessageDialog(self, "Form isn't complete. Valid block type must be selected!", "Error", wx.OK|wx.ICON_ERROR)
message.ShowModal()
message.Destroy()
- elif self.Name.IsEnabled() and self.Name.GetValue() == "":
+ elif name_enabled and block_name == "":
message = wx.MessageDialog(self, "Form isn't complete. Name must be filled!", "Error", wx.OK|wx.ICON_ERROR)
message.ShowModal()
message.Destroy()
+ elif name_enabled and not TestIdentifier(block_name):
+ message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif name_enabled and block_name.upper() in IEC_KEYWORDS:
+ message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif name_enabled and block_name.upper() in self.PouNames:
+ message = wx.MessageDialog(self, "\"%s\" pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif name_enabled and block_name.upper() in self.PouElementNames:
+ message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%block_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
else:
self.EndModal(wx.ID_OK)
@@ -198,6 +219,12 @@
def SetMinBlockSize(self, size):
self.MinBlockSize = size
+ def SetPouNames(self, pou_names):
+ self.PouNames = [pou_name.upper() for pou_name in pou_names]
+
+ def SetPouElementNames(self, element_names):
+ self.PouElementNames = [element_name.upper() for element_name in element_names]
+
def SetValues(self, values):
for name, value in values.items():
if name == "type":
diff -r 8fbff50141f8 -r 0e48629c1e6d PLCControler.py
--- a/PLCControler.py Mon Aug 13 18:04:19 2007 +0200
+++ b/PLCControler.py Mon Aug 13 18:06:50 2007 +0200
@@ -208,11 +208,10 @@
for pou in self.Project.getPous():
if not pou_name or pou_name == pou.getName():
variables.extend([var["Name"] for var in self.GetPouInterfaceVars(pou)])
- if pou.getBodyType() == "SFC":
- for transition in pou.getTransitionList():
- variables.append(transition.getName())
- for action in pou.getActionList():
- variables.append(action.getName())
+ for transition in pou.getTransitionList():
+ variables.append(transition.getName())
+ for action in pou.getActionList():
+ variables.append(action.getName())
return variables
# Return if project is saved
@@ -1159,6 +1158,17 @@
return actions
return []
+ # Return the names of the pou elements
+ def GetCurrentElementEditingVariables(self):
+ if self.CurrentElementEditing != None:
+ current_name = self.ElementsOpened[self.CurrentElementEditing]
+ words = current_name.split("::")
+ if len(words) == 1:
+ return self.GetProjectPouVariables(current_name)
+ else:
+ return self.GetProjectPouVariables(words[1])
+ return []
+
# Return the current pou editing informations
def GetCurrentElementEditingInstanceInfos(self, id = None, exclude = []):
infos = {}
@@ -1339,7 +1349,6 @@
infos["connectors"]["connection"] = {}
infos["connectors"]["connection"]["links"] = []
connections = instance.getConnections()
- print connections
if connections:
for link in connections:
dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()}
@@ -1794,7 +1803,7 @@
def SetCurrentElementEditingTransitionInfos(self, id, infos):
transition = self.GetCurrentElementEditing().getInstance(id)
for param, value in infos.items():
- if param == "type" and infos.get("condition", None):
+ if param == "type" and value != "connection":
transition.setConditionContent(value, infos["condition"])
elif param == "height":
transition.setHeight(value)
@@ -1815,6 +1824,7 @@
transition.addConnectionPointOut()
transition.connectionPointOut.setRelPosition(position.x, position.y)
if infos.get("type", None) == "connection":
+ transition.setConditionContent("connection", None)
connection_connector = value["connection"]
self.SetConnectionWires(transition, connection_connector)
diff -r 8fbff50141f8 -r 0e48629c1e6d PLCGenerator.py
--- a/PLCGenerator.py Mon Aug 13 18:04:19 2007 +0200
+++ b/PLCGenerator.py Mon Aug 13 18:06:50 2007 +0200
@@ -62,6 +62,7 @@
self.Interface = []
self.InitialSteps = []
self.BlockComputed = {}
+ self.ComputedBlocks = ""
self.SFCNetworks = {"Steps":{}, "Transitions":{}, "Actions":{}}
self.ActionNumber = 0
self.Program = ""
@@ -130,11 +131,11 @@
self.GenerateSFCTransition(instance, pou)
elif isinstance(instance, plcopen.jumpStep):
self.GenerateSFCJump(instance, pou)
- if len(self.InitialSteps) > 0:
+ if len(self.InitialSteps) > 0 and self.ComputedBlocks != "":
action_name = "COMPUTE_FUNCTION_BLOCKS"
action_infos = {"qualifier" : "S", "content" : action_name}
self.SFCNetworks["Steps"][self.InitialSteps[0]]["actions"].append(action_infos)
- self.SFCNetworks["Actions"][action_name] = ReIndentText(self.Program, 4)
+ self.SFCNetworks["Actions"][action_name] = ReIndentText(self.ComputedBlocks, 4)
self.Program = ""
else:
raise Exception
@@ -205,7 +206,7 @@
if isinstance(next, plcopen.leftPowerRail) or isinstance(next, plcopen.contact):
return "LD"
elif isinstance(next, plcopen.block):
- for variable in instance.inputVariables.getVariable():
+ for variable in next.inputVariables.getVariable():
result = self.GetNetworkType(variable.connectionPointIn.getConnections(), body)
if result != "FBD":
return result
@@ -326,16 +327,18 @@
connections = instance.connectionPointIn.getConnections()
if connections and len(connections) == 1:
expression = self.ComputeFBDExpression(actionBody, connections[0])
- self.SFCNetworks["Actions"][action_name] = self.Program + " %s := %s;\n"%(var, expression)
+ action_content = self.Program + " %s := %s;\n"%(var, expression)
self.Program = ""
+ self.SFCNetworks["Actions"][action_name] = ReIndentText(action_content, 4)
elif actionType == "LD":
for instance in actionbody.getContentInstances():
if isinstance(instance, plcopen.coil):
paths = self.GenerateLDPaths(instance.connectionPointIn.getConnections(), actionBody)
variable = self.ExtractModifier(instance, instance.getVariable())
expression = self.ComputeLDExpression(paths, True)
- self.SFCNetworks["Actions"][action_name] = self.Program + " %s := %s;\n"%(variable, expression)
+ action_content = self.Program + " %s := %s;\n"%(variable, expression)
self.Program = ""
+ self.SFCNetworks["Actions"][action_name] = ReIndentText(action_content, 4)
def GenerateSFCTransition(self, transition, pou):
if transition not in self.SFCNetworks["Transitions"].keys():
@@ -374,12 +377,16 @@
if connections and len(connections) == 1:
expression = self.ComputeFBDExpression(transitionBody, connections[0])
transition_infos["content"] = "\n := %s;\n"%expression
+ self.ComputedBlocks += self.Program
+ self.Program = ""
elif transitionType == "LD":
for instance in transitionBody.getContentInstances():
if isinstance(instance, plcopen.coil):
paths = self.GenerateLDPaths(instance.connectionPointIn.getConnections(), transitionBody)
expression = self.ComputeLDExpression(paths, True)
transition_infos["content"] = "\n := %s;\n"%expression
+ self.ComputedBlocks += self.Program
+ self.Program = ""
elif transitionValues["type"] == "connection":
body = pou.getBody()
connections = transition.getConnections()
@@ -390,9 +397,13 @@
paths = self.GenerateLDPaths(connections, body)
expression = self.ComputeLDExpression(paths, True)
transition_infos["content"] = "\n := %s;\n"%expression
+ self.ComputedBlocks += self.Program
+ self.Program = ""
else:
expression = self.ComputeFBDExpression(body, connections[0])
transition_infos["content"] = "\n := %s;\n"%expression
+ self.ComputedBlocks += self.Program
+ self.Program = ""
for step in steps:
self.GenerateSFCStep(step, pou)
step_name = step.getName()
diff -r 8fbff50141f8 -r 0e48629c1e6d PLCOpenEditor.py
--- a/PLCOpenEditor.py Mon Aug 13 18:04:19 2007 +0200
+++ b/PLCOpenEditor.py Mon Aug 13 18:06:50 2007 +0200
@@ -414,8 +414,8 @@
self.CurrentToolBar = []
self.CurrentLanguage = ""
- self.DrawingMode = FREEDRAWING_MODE
- #self.DrawingMode = DRIVENDRAWING_MODE
+ #self.DrawingMode = FREEDRAWING_MODE
+ self.DrawingMode = DRIVENDRAWING_MODE
self.RefreshFileMenu()
self.RefreshEditMenu()
@@ -829,10 +829,10 @@
if itemtype == ITEM_PROJECT:
self.Controler.SetProjectProperties(name = new_name)
elif itemtype == ITEM_POU:
- if new_name.upper() in self.Controler.GetProjectPouNames():
+ if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames()]:
message = "\"%s\" pou already exists!"%new_name
abort = True
- elif new_name.upper() in self.Controler.GetProjectPouVariables():
+ elif new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouVariables()]:
messageDialog = wx.MessageDialog(self, "A variable is defined with \"%s\" as name. It can generate a conflict. Do you wish to continue?"%new_name, "Error", wx.YES_NO|wx.ICON_QUESTION)
if messageDialog.ShowModal() == wx.ID_NO:
abort = True
@@ -845,9 +845,9 @@
category = self.ProjectTree.GetItemParent(item)
pou = self.ProjectTree.GetItemParent(category)
pou_name = self.ProjectTree.GetItemText(pou)
- if new_name.upper() in self.Controler.GetProjectPouNames():
+ if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames()]:
message = "A pou with \"%s\" as name exists!"%new_name
- elif new_name.upper() in self.Controler.GetProjectPouVariables(pou_name):
+ elif new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouVariables(pou_name)]:
message = "A variable with \"%s\" as name already exists in this pou!"%new_name
else:
old_name = self.ProjectTree.GetItemText(item)
@@ -857,28 +857,14 @@
category = self.ProjectTree.GetItemParent(item)
pou = self.ProjectTree.GetItemParent(category)
pou_name = self.ProjectTree.GetItemText(pou)
- if new_name.upper() in self.Controler.GetProjectPouNames():
+ if new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames()]:
message = "A pou with \"%s\" as name exists!"%new_name
- elif new_name.upper() in self.Controler.GetProjectPouVariables(pou_name):
+ elif new_name.upper() in [name.upper() for name in self.Controler.GetProjectPouVariables(pou_name)]:
message = "A variable with \"%s\" as name already exists in this pou!"%new_name
else:
old_name = self.ProjectTree.GetItemText(item)
self.Controler.ChangePouActionName(pou_name, old_name, new_name)
self.RefreshTabsOpenedTitles()
- elif itemtype == ITEM_VARIABLE:
- category = self.ProjectTree.GetItemParent(item)
- if self.ProjectTree.GetItemText(category) != 'Global':
- category = self.ProjectTree.GetItemParent(category)
- pou = self.ProjectTree.GetItemParent(category)
- pou_name = self.ProjectTree.GetItemText(pou)
- if new_name.upper() in self.Controler.GetProjectPouNames():
- message = "A pou with \"%s\" as name exists!"%new_name
- elif new_name.upper() in self.Controler.GetProjectPouVariables(pou_name):
- message = "A variable with \"%s\" as name already exists in this pou!"%new_name
- else:
- old_name = self.ProjectTree.GetItemText(item)
- self.Controler.ChangePouVariableName(pou_name, old_name, new_name)
- self.RefreshTabsOpenedTitles()
if message or abort:
if message:
messageDialog = wx.MessageDialog(self, message, "Error", wx.OK|wx.ICON_ERROR)
@@ -1122,6 +1108,7 @@
def OnAddPouMenu(self, event):
dialog = PouDialog(self)
dialog.SetPouNames(self.Controler.GetProjectPouNames())
+ dialog.SetPouElementNames(self.Controler.GetProjectPouVariables())
if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
@@ -1174,6 +1161,8 @@
pouname = self.ProjectTree.GetItemText(selected)
if self.Controler.GetPouBodyType(pouname) == "SFC":
dialog = PouTransitionDialog(self)
+ dialog.SetPouNames(self.Controler.GetProjectPouNames())
+ dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pouname))
if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
self.Controler.ProjectAddPouTransition(pouname, values["transitionName"], values["language"])
@@ -1201,6 +1190,8 @@
pouname = self.ProjectTree.GetItemText(selected)
if self.Controler.GetPouBodyType(pouname) == "SFC":
dialog = PouActionDialog(self)
+ dialog.SetPouNames(self.Controler.GetProjectPouNames())
+ dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(pouname))
if dialog.ShowModal() == wx.ID_OK:
values = dialog.GetValues()
self.Controler.ProjectAddPouAction(pouname, values["actionName"], values["language"])
@@ -1531,6 +1522,7 @@
self.RefreshLanguage()
self.PouNames = []
+ self.PouElementNames = []
def OnOK(self, event):
error = []
@@ -1565,6 +1557,12 @@
message = wx.MessageDialog(self, "\"%s\" pou already exists!"%pou_name, "Error", wx.OK|wx.ICON_ERROR)
message.ShowModal()
message.Destroy()
+ elif pou_name.upper() in self.PouElementNames:
+ message = wx.MessageDialog(self, "A pou has an element with \"%s\" for name. It can generate a conflict. Do you wish to continue?"%pou_name, "Warning", wx.YES_NO|wx.ICON_EXCLAMATION)
+ result = message.ShowModal()
+ message.Destroy()
+ if result == wx.ID_YES:
+ self.EndModal(wx.ID_OK)
else:
self.EndModal(wx.ID_OK)
@@ -1584,6 +1582,9 @@
def SetPouNames(self, pou_names):
self.PouNames = [pou_name.upper() for pou_name in pou_names]
+ def SetPouElementNames(self, element_names):
+ self.PouElementNames = [element_name.upper() for element_name in element_names]
+
def SetValues(self, values):
for item, value in values.items():
if item == "pouName":
@@ -1672,9 +1673,13 @@
for option in ["IL","ST","LD","FBD"]:
self.Language.Append(option)
+
+ self.PouNames = []
+ self.PouElementNames = []
def OnOK(self, event):
error = []
+ transition_name = self.TransitionName.GetValue()
if self.TransitionName.GetValue() == "":
error.append("Transition Name")
if self.Language.GetStringSelection() == "":
@@ -1691,9 +1696,31 @@
message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
message.ShowModal()
message.Destroy()
+ elif not TestIdentifier(transition_name):
+ message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%transition_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif transition_name.upper() in IEC_KEYWORDS:
+ message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%transition_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif transition_name.upper() in self.PouNames:
+ message = wx.MessageDialog(self, "A pou with \"%s\" for name exists!"%transition_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif transition_name.upper() in self.PouElementNames:
+ message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%transition_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
else:
self.EndModal(wx.ID_OK)
-
+
+ def SetPouNames(self, pou_names):
+ self.PouNames = [pou_name.upper() for pou_name in pou_names]
+
+ def SetPouElementNames(self, pou_names):
+ self.PouElementNames = [pou_name.upper() for pou_name in pou_names]
+
def SetValues(self, values):
for item, value in values.items():
if item == "transitionName":
@@ -1779,9 +1806,13 @@
for option in ["IL","ST","LD","FBD"]:
self.Language.Append(option)
+ self.PouNames = []
+ self.PouElementNames = []
+
def OnOK(self, event):
error = []
- if self.ActionName.GetValue() == "":
+ action_name = self.ActionName.GetValue()
+ if action_name == "":
error.append("Action Name")
if self.Language.GetStringSelection() == "":
error.append("Language")
@@ -1797,9 +1828,31 @@
message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
message.ShowModal()
message.Destroy()
+ elif not TestIdentifier(action_name):
+ message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%action_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif action_name.upper() in IEC_KEYWORDS:
+ message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%action_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif action_name.upper() in self.PouNames:
+ message = wx.MessageDialog(self, "A pou with \"%s\" for name exists!"%action_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ elif action_name.upper() in self.PouElementNames:
+ message = wx.MessageDialog(self, "\"%s\" element for this pou already exists!"%action_name, "Error", wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
else:
self.EndModal(wx.ID_OK)
-
+
+ def SetPouNames(self, pou_names):
+ self.PouNames = [pou_name.upper() for pou_name in pou_names]
+
+ def SetPouElementNames(self, element_names):
+ self.PouElementNames = [element_name.upper() for element_name in element_names]
+
def SetValues(self, values):
for item, value in values.items():
if item == "actionName":
@@ -2204,18 +2257,18 @@
self.DefaultTypes = {"All" : "Local", "Interface" : "Input", "Variables" : "Local"}
self.DefaultValue = {"Name" : "", "Class" : "", "Type" : "INT", "Location" : "", "Initial Value" : "", "Retain" : "No", "Constant" : "No", "Edit" : "True"}
if pou_type in ["config", "resource"] or pou_type == "program":
- self.Table = VariableTable(self, [], ["#", "Name", "Class", "Type", "Location", "Initial Value", "Retain", "Constant", "Edit"])
+ self.Table = VariableTable(self, [], ["#", "Name", "Class", "Type", "Location", "Initial Value", "Retain", "Constant"])
if pou_type not in ["config", "resource"]:
self.FilterChoices = ["All","Interface"," Input"," Output"," InOut"," External","Variables"," Local"," Temp","Global","Access"]
else:
self.FilterChoices = ["All","Global","Access"]
- self.ColSizes = [40, 80, 70, 80, 80, 80, 60, 70, 50]
- self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER, wx.ALIGN_LEFT]
- else:
- self.Table = VariableTable(self, [], ["#", "Name", "Class", "Type", "Initial Value", "Retain", "Constant", "Edit"])
+ self.ColSizes = [40, 80, 70, 80, 80, 80, 60, 70]
+ self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
+ else:
+ self.Table = VariableTable(self, [], ["#", "Name", "Class", "Type", "Initial Value", "Retain", "Constant"])
self.FilterChoices = ["All","Interface"," Input"," Output"," InOut"," External","Variables"," Local"," Temp"]
- self.ColSizes = [40, 120, 70, 80, 120, 60, 70, 50]
- self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER, wx.ALIGN_LEFT]
+ self.ColSizes = [40, 120, 70, 80, 120, 60, 70]
+ self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
for choice in self.FilterChoices:
self.ClassFilter.Append(choice)
reverse_transfer = {}
diff -r 8fbff50141f8 -r 0e48629c1e6d Viewer.py
--- a/Viewer.py Mon Aug 13 18:04:19 2007 +0200
+++ b/Viewer.py Mon Aug 13 18:06:50 2007 +0200
@@ -993,6 +993,8 @@
def AddNewBlock(self, bbox):
dialog = BlockPropertiesDialog(self.Parent)
dialog.SetBlockList(self.Controler.GetBlockTypes())
+ dialog.SetPouNames(self.Controler.GetProjectPouNames())
+ dialog.SetPouElementNames(self.Controler.GetCurrentElementEditingVariables())
dialog.SetMinBlockSize((bbox.width, bbox.height))
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1019,7 +1021,8 @@
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
for var in vars:
- varlist.append((var["Name"], var["Class"], var["Type"]))
+ if var["Edit"]:
+ varlist.append((var["Name"], var["Class"], var["Type"]))
returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType()
if returntype:
varlist.append((self.Controler.GetCurrentElementEditingName(), "Output", returntype))
@@ -1143,7 +1146,7 @@
dialog.Destroy()
def AddNewTransition(self, bbox):
- dialog = TransitionContentDialog(self.Parent)
+ dialog = TransitionContentDialog(self.Parent, self.GetDrawingMode() == FREEDRAWING_MODE)
dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1186,6 +1189,8 @@
def EditBlockContent(self, block):
dialog = BlockPropertiesDialog(self.Parent)
dialog.SetBlockList(self.Controler.GetBlockTypes())
+ dialog.SetPouNames(self.Controler.GetProjectPouNames())
+ dialog.SetPouElementNames(self.Controler.GetCurrentElementEditingVariables())
dialog.SetMinBlockSize(block.GetSize())
values = {"name" : block.GetName(), "type" : block.GetType(), "inputs" : block.GetInputTypes()}
values["extension"] = block.GetExtension()
@@ -1209,7 +1214,8 @@
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
for var in vars:
- varlist.append((var["Name"], var["Class"], var["Type"]))
+ if var["Edit"]:
+ varlist.append((var["Name"], var["Class"], var["Type"]))
returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType()
if returntype:
varlist.append((self.Controler.GetCurrentElementEditingName(), "Output", returntype))
diff -r 8fbff50141f8 -r 0e48629c1e6d examples/example.xml
--- a/examples/example.xml Mon Aug 13 18:04:19 2007 +0200
+++ b/examples/example.xml Mon Aug 13 18:06:50 2007 +0200
@@ -347,7 +347,7 @@
-
+