graphics/GraphicCommons.py
changeset 634 cc3335911c01
parent 633 3536f4469cde
child 645 41782a92c2de
equal deleted inserted replaced
633:3536f4469cde 634:cc3335911c01
   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)