--- 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())