331 for consumer, iec_path in self.DataConsumers.iteritems(): |
331 for consumer, iec_path in self.DataConsumers.iteritems(): |
332 consumer.Inhibit(inhibit) |
332 consumer.Inhibit(inhibit) |
333 |
333 |
334 def AddDataConsumer(self, iec_path, consumer): |
334 def AddDataConsumer(self, iec_path, consumer): |
335 if self.DataProducer is None: |
335 if self.DataProducer is None: |
336 return False |
336 return None |
337 result = self.DataProducer.SubscribeDebugIECVariable(iec_path, consumer) is not None |
337 result = self.DataProducer.SubscribeDebugIECVariable(iec_path, consumer) |
338 if result is not None and consumer != self: |
338 if result is not None and consumer != self: |
339 self.DataConsumers[consumer] = iec_path |
339 self.DataConsumers[consumer] = iec_path |
340 consumer.SetDataType(self.GetDataType(iec_path)) |
340 consumer.SetDataType(self.GetDataType(iec_path)) |
341 return result |
341 return result |
342 |
342 |
1918 rect = Graphic_Element.GetRedrawRect(self, movex, movey) |
1918 rect = Graphic_Element.GetRedrawRect(self, movex, movey) |
1919 if self.StartConnected: |
1919 if self.StartConnected: |
1920 rect = rect.Union(self.StartConnected.GetRedrawRect(movex, movey)) |
1920 rect = rect.Union(self.StartConnected.GetRedrawRect(movex, movey)) |
1921 if self.EndConnected: |
1921 if self.EndConnected: |
1922 rect = rect.Union(self.EndConnected.GetRedrawRect(movex, movey)) |
1922 rect = rect.Union(self.EndConnected.GetRedrawRect(movex, movey)) |
|
1923 if self.ValueSize is None and isinstance(self.ComputedValue, (StringType, UnicodeType)): |
|
1924 self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue) |
1923 if self.ValueSize is not None: |
1925 if self.ValueSize is not None: |
1924 width, height = self.ValueSize |
1926 width, height = self.ValueSize |
1925 if self.BoundingBox[2] > width * 4 or self.BoundingBox[3] > height * 4: |
1927 if self.BoundingBox[2] > width * 4 or self.BoundingBox[3] > height * 4: |
1926 x = self.Points[0].x + width * self.StartPoint[1][0] / 2 |
1928 x = self.Points[0].x + width * self.StartPoint[1][0] / 2 |
1927 y = self.Points[0].y + height * (self.StartPoint[1][1] - 1) |
1929 y = self.Points[0].y + height * (self.StartPoint[1][1] - 1) |
2061 if self.StartConnected: |
2063 if self.StartConnected: |
2062 self.StartConnected.RefreshForced() |
2064 self.StartConnected.RefreshForced() |
2063 if self.EndConnected: |
2065 if self.EndConnected: |
2064 self.EndConnected.RefreshForced() |
2066 self.EndConnected.RefreshForced() |
2065 if self.Visible: |
2067 if self.Visible: |
2066 self.Parent.UpdateRefreshRect(self.GetRedrawRect()) |
2068 self.Parent.ElementNeedRefresh(self) |
2067 |
2069 |
2068 def SetValue(self, value): |
2070 def SetValue(self, value): |
2069 if self.Value != value: |
2071 if self.Value != value: |
2070 self.Value = value |
2072 self.Value = value |
2071 if value is not None and not isinstance(value, BooleanType): |
2073 if value is not None and not isinstance(value, BooleanType): |
2075 self.ComputedValue = str(value) |
2077 self.ComputedValue = str(value) |
2076 if self.ToolTip is not None: |
2078 if self.ToolTip is not None: |
2077 self.ToolTip.SetTip(self.ComputedValue) |
2079 self.ToolTip.SetTip(self.ComputedValue) |
2078 if len(self.ComputedValue) > 4: |
2080 if len(self.ComputedValue) > 4: |
2079 self.ComputedValue = self.ComputedValue[:4] + "..." |
2081 self.ComputedValue = self.ComputedValue[:4] + "..." |
2080 if isinstance(self.ComputedValue, (StringType, UnicodeType)): |
2082 self.ValueSize = None |
2081 self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue) |
|
2082 else: |
|
2083 self.ValueSize = None |
|
2084 if self.StartConnected: |
2083 if self.StartConnected: |
2085 self.StartConnected.RefreshValue() |
2084 self.StartConnected.RefreshValue() |
2086 if self.EndConnected: |
2085 if self.EndConnected: |
2087 self.EndConnected.RefreshValue() |
2086 self.EndConnected.RefreshValue() |
2088 if self.Visible: |
2087 if self.Visible: |
2089 self.Parent.UpdateRefreshRect(self.GetRedrawRect()) |
2088 self.Parent.ElementNeedRefresh(self) |
2090 if isinstance(value, BooleanType) and self.StartConnected is not None: |
2089 if isinstance(value, BooleanType) and self.StartConnected is not None: |
2091 block = self.StartConnected.GetParentBlock() |
2090 block = self.StartConnected.GetParentBlock() |
2092 block.SpreadCurrent() |
2091 block.SpreadCurrent() |
2093 |
2092 |
2094 # Unconnect the start and end points |
2093 # Unconnect the start and end points |
2999 dc.DrawLine(self.Points[self.SelectedSegment].x - 1, self.Points[self.SelectedSegment].y, |
2998 dc.DrawLine(self.Points[self.SelectedSegment].x - 1, self.Points[self.SelectedSegment].y, |
3000 self.Points[self.SelectedSegment + 1].x + end, self.Points[self.SelectedSegment + 1].y) |
2999 self.Points[self.SelectedSegment + 1].x + end, self.Points[self.SelectedSegment + 1].y) |
3001 if self.Value is not None and not isinstance(self.Value, BooleanType) and self.Value != "undefined": |
3000 if self.Value is not None and not isinstance(self.Value, BooleanType) and self.Value != "undefined": |
3002 dc.SetFont(self.Parent.GetMiniFont()) |
3001 dc.SetFont(self.Parent.GetMiniFont()) |
3003 dc.SetTextForeground(wx.NamedColour("purple")) |
3002 dc.SetTextForeground(wx.NamedColour("purple")) |
|
3003 if self.ValueSize is None and isinstance(self.ComputedValue, (StringType, UnicodeType)): |
|
3004 self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue) |
3004 if self.ValueSize is not None: |
3005 if self.ValueSize is not None: |
3005 width, height = self.ValueSize |
3006 width, height = self.ValueSize |
3006 if self.BoundingBox[2] > width * 4 or self.BoundingBox[3] > height * 4: |
3007 if self.BoundingBox[2] > width * 4 or self.BoundingBox[3] > height * 4: |
3007 x = self.Points[0].x + width * (self.StartPoint[1][0] - 1) / 2 |
3008 x = self.Points[0].x + width * (self.StartPoint[1][0] - 1) / 2 |
3008 y = self.Points[0].y + height * (self.StartPoint[1][1] - 1) |
3009 y = self.Points[0].y + height * (self.StartPoint[1][1] - 1) |