diff -r add8e391e00c -r 40b91ba978db LDViewer.py --- 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: