diff -r ec5d7af033d8 -r 2b18a72dcaf0 graphics/GraphicCommons.py --- a/graphics/GraphicCommons.py Wed Sep 19 15:20:59 2007 +0200 +++ b/graphics/GraphicCommons.py Wed Sep 19 17:23:15 2007 +0200 @@ -24,7 +24,7 @@ import wx from math import * -from plcopen.structures import IsOfType +from plcopen.structures import IsOfType, IsEndType #------------------------------------------------------------------------------- # Common constants @@ -703,13 +703,25 @@ def GetParentBlock(self): return self.ParentBlock - # Returns the connector name + # Returns the connector type def GetType(self): + if IsEndType(self.Type): + return self.Type + else: + return self.ParentBlock.GetConnectionResultType(self) + + # Returns the connector type + def GetConnectedType(self): + if IsEndType(self.Type): + return self.Type + elif len(self.Wires) == 1: + return self.Wires[0][0].GetOtherConnectedType(self.Wires[0][1]) return self.Type # Returns if connector type is compatible with type given def IsCompatible(self, type): - return IsOfType(type, self.Type) or IsOfType(self.Type, type) + reference = self.GetType() + return IsOfType(type, reference) or IsOfType(reference, type) # Changes the connector name def SetType(self, type): @@ -988,6 +1000,12 @@ return self.EndConnected.GetType() return None + def GetOtherConnectedType(self, handle): + if handle == 0: + return self.GetEndConnectedType() + else: + return self.GetStartConnectedType() + def IsConnectedCompatible(self): if self.StartConnected: return self.StartConnected.IsCompatible(self.GetEndConnectedType())