--- a/LDViewer.py Tue Nov 13 17:21:30 2007 +0100
+++ b/LDViewer.py Fri Nov 16 17:43:32 2007 +0100
@@ -159,14 +159,32 @@
# Ladder Diagram Graphic elements Viewer class
#-------------------------------------------------------------------------------
+if wx.VERSION >= (2, 8, 0):
+ import wx.aui
+
+ class LD_MDIViewer(wx.aui.AuiMDIChildFrame):
+ def __init__(self, parent, tagname, window, controler):
+ wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = "")
+
+ sizer = wx.BoxSizer(wx.HORIZONTAL)
+
+ self.Viewer = LD_Viewer(self, tagname, window, controler)
+
+ sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW)
+
+ self.SetSizer(sizer)
+
+ def GetViewer(self):
+ return self.Viewer
+
"""
Class derived from Viewer class that implements a Viewer of Ladder Diagram
"""
class LD_Viewer(Viewer):
- def __init__(self, parent, window, controler):
- Viewer.__init__(self, parent, window, controler)
+ def __init__(self, parent, tagname, window, controler):
+ Viewer.__init__(self, parent, tagname, window, controler)
self.Rungs = []
self.RungComments = []
self.CurrentLanguage = "LD"
@@ -452,14 +470,14 @@
def AddLadderRung(self):
dialog = LDElementDialog(self.ParentWindow, "coil")
varlist = []
- vars = self.Controler.GetCurrentElementEditingInterfaceVars()
+ vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
if vars:
for var in vars:
if var["Class"] != "Input" and var["Type"] == "BOOL":
varlist.append(var["Name"])
- returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType()
+ returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
if returntype == "BOOL":
- varlist.append(self.Controler.GetCurrentElementEditingName())
+ varlist.append(self.Controler.GetEditedElementName(self.TagName))
dialog.SetVariables(varlist)
dialog.SetValues({"name":"","type":COIL_NORMAL})
if dialog.ShowModal() == wx.ID_OK:
@@ -477,7 +495,7 @@
comment.SetSize(LD_COMMENT_DEFAULTSIZE[0], LD_COMMENT_DEFAULTSIZE[1])
self.AddComment(comment)
self.RungComments.append(comment)
- self.Controler.AddCurrentElementEditingComment(id)
+ self.Controler.AddEditedElementComment(self.TagName, id)
self.RefreshCommentModel(comment)
starty += LD_COMMENT_DEFAULTSIZE[1] + LD_OFFSET[1]
# Create LeftPowerRail
@@ -486,7 +504,7 @@
leftpowerrail.SetPosition(startx, starty)
self.AddBlock(leftpowerrail)
rung.SelectElement(leftpowerrail)
- self.Controler.AddCurrentElementEditingPowerRail(id, LEFTRAIL)
+ self.Controler.AddEditedElementPowerRail(self.TagName, id, LEFTRAIL)
self.RefreshPowerRailModel(leftpowerrail)
# Create Coil
id = self.GetNewId()
@@ -494,7 +512,7 @@
coil.SetPosition(startx, starty + (LD_LINE_SIZE - LD_ELEMENT_SIZE[1]) / 2)
self.AddBlock(coil)
rung.SelectElement(coil)
- self.Controler.AddCurrentElementEditingCoil(id)
+ self.Controler.AddEditedElementCoil(self.TagName, id)
# Create Wire between LeftPowerRail and Coil
wire = Wire(self)
start_connector = coil.GetConnectors()["input"]
@@ -511,7 +529,7 @@
rightpowerrail.SetPosition(startx, starty)
self.AddBlock(rightpowerrail)
rung.SelectElement(rightpowerrail)
- self.Controler.AddCurrentElementEditingPowerRail(id, RIGHTRAIL)
+ self.Controler.AddEditedElementPowerRail(self.TagName, id, RIGHTRAIL)
# Create Wire between LeftPowerRail and Coil
wire = Wire(self)
start_connector = rightpowerrail.GetConnectors()[0]
@@ -541,7 +559,7 @@
if len(wires) > 0:
dialog = LDElementDialog(self.ParentWindow, "contact")
varlist = []
- vars = self.Controler.GetCurrentElementEditingInterfaceVars()
+ vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
if vars:
for var in vars:
if var["Class"] != "Output" and var["Type"] == "BOOL":
@@ -555,7 +573,7 @@
contact = LD_Contact(self, values["type"], values["name"], id)
contact.SetPosition(0, points[0].y - (LD_ELEMENT_SIZE[1] + 1) / 2)
self.AddBlock(contact)
- self.Controler.AddCurrentElementEditingContact(id)
+ self.Controler.AddEditedElementContact(self.TagName, id)
rungindex = self.FindRung(wires[0])
rung = self.Rungs[rungindex]
old_bbox = rung.GetBoundingBox()
@@ -762,14 +780,14 @@
elif right_powerrail:
dialog = LDElementDialog(self.ParentWindow, "coil")
varlist = []
- vars = self.Controler.GetCurrentElementEditingInterfaceVars()
+ vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
if vars:
for var in vars:
if var["Class"] != "Input" and var["Type"] == "BOOL":
varlist.append(var["Name"])
- returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType()
+ returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
if returntype == "BOOL":
- varlist.append(self.Controler.GetCurrentElementEditingName())
+ varlist.append(self.Controler.GetEditedElementName(self.TagName))
dialog.SetVariables(varlist)
dialog.SetValues({"name":"","type":COIL_NORMAL})
if dialog.ShowModal() == wx.ID_OK:
@@ -790,7 +808,7 @@
coil.SetPosition(pos[0], pos[1] + LD_LINE_SIZE)
self.AddBlock(coil)
rung.SelectElement(coil)
- self.Controler.AddCurrentElementEditingCoil(id)
+ self.Controler.AddEditedElementCoil(self.TagName, id)
coil_connectors = coil.GetConnectors()
# Create Wire between LeftPowerRail and Coil
wire = Wire(self)
@@ -916,7 +934,7 @@
for right_element, right_index in right_elements:
self.RefreshPosition(right_element.GetParentBlock())
self.RemoveBlock(contact)
- self.Controler.RemoveCurrentElementEditingInstance(contact.GetId())
+ self.Controler.RemoveEditedElementInstance(self.TagName, contact.GetId())
rung.RefreshBoundingBox()
new_bbox = rung.GetBoundingBox()
self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
@@ -933,7 +951,7 @@
self.RemoveWire(wire)
rung.SelectElement(wire)
self.RemoveBlock(element)
- self.Controler.RemoveCurrentElementEditingInstance(element.GetId())
+ self.Controler.RemoveEditedElementInstance(self.TagName, element.GetId())
for left_element in left_elements:
block = left_element.GetParentBlock()
if len(left_element.GetWires()) == 0:
@@ -983,9 +1001,9 @@
self.RemoveWire(element)
for element in rung.GetElements():
if self.IsBlock(element):
- self.Controler.RemoveCurrentElementEditingInstance(element.GetId())
+ self.Controler.RemoveEditedElementInstance(self.TagName, element.GetId())
self.RemoveBlock(element)
- self.Controler.RemoveCurrentElementEditingInstance(self.Comments[rungindex].GetId())
+ self.Controler.RemoveEditedElementInstance(self.TagName, self.Comments[rungindex].GetId())
self.RemoveComment(self.RungComments[rungindex])
self.RungComments.pop(rungindex)
self.Rungs.pop(rungindex)
@@ -1183,7 +1201,7 @@
else:
dialog = LDElementDialog(self.ParentWindow, "contact")
varlist = []
- vars = self.Controler.GetCurrentElementEditingInterfaceVars()
+ vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
if vars:
for var in vars:
if var["Class"] != "Output" and var["Type"] == "BOOL":
@@ -1206,14 +1224,14 @@
else:
dialog = LDElementDialog(self.ParentWindow, "coil")
varlist = []
- vars = self.Controler.GetCurrentElementEditingInterfaceVars()
+ vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
if vars:
for var in vars:
if var["Class"] != "Input" and var["Type"] == "BOOL":
varlist.append(var["Name"])
- returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType()
+ returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
if returntype == "BOOL":
- varlist.append(self.Controler.GetCurrentElementEditingName())
+ varlist.append(self.Controler.GetEditedElementName(self.TagName))
dialog.SetVariables(varlist)
dialog.SetValues({"name":coil.GetName(),"type":coil.GetType()})
if dialog.ShowModal() == wx.ID_OK: