LDViewer.py
changeset 121 40b91ba978db
parent 112 317148fc1225
child 122 e6faee0c271b
--- 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: