graphics/FBD_Objects.py
changeset 379 e4c26ee9c998
parent 289 151e73a02caf
child 383 25ffba02b6a8
equal deleted inserted replaced
377:c41acb1465ee 379:e4c26ee9c998
   238                     for i in xrange(self.Extension - len(blocktype["inputs"])):
   238                     for i in xrange(self.Extension - len(blocktype["inputs"])):
   239                         start += 1
   239                         start += 1
   240                         inputs.append(("IN%d"%start, inputs[-1][1], inputs[-1][2]))
   240                         inputs.append(("IN%d"%start, inputs[-1][1], inputs[-1][2]))
   241             else:
   241             else:
   242                 self.Colour = wx.RED
   242                 self.Colour = wx.RED
   243                 if "inputs" in connectors:
   243                 inputs = connectors.get("inputs", [])
   244                     inputs = connectors["inputs"]
   244                 outputs = connectors.get("outputs", [])
   245                 else:
       
   246                     inputs = []
       
   247                 if "outputs" in connectors:
       
   248                     outputs = connectors["outputs"]
       
   249                 else:
       
   250                     outputs = []
       
   251             if self.ExecutionControl:
   245             if self.ExecutionControl:
   252                 inputs.insert(0, ("EN","BOOL","none"))
   246                 inputs.insert(0, ("EN","BOOL","none"))
   253                 outputs.insert(0, ("ENO","BOOL","none"))
   247                 outputs.insert(0, ("ENO","BOOL","none"))
   254             self.Pen = wx.Pen(self.Colour)
   248             self.Pen = wx.Pen(self.Colour)
   255             self.Clean()
   249             self.Clean()
   419             output.Draw(dc)
   413             output.Draw(dc)
   420         if self.ExecutionOrder != 0:
   414         if self.ExecutionOrder != 0:
   421             # Draw block execution order
   415             # Draw block execution order
   422             dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0],
   416             dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0],
   423                     self.Pos.y + self.Size[1] + 2)
   417                     self.Pos.y + self.Size[1] + 2)
   424         if "name" in self.Errors:
   418         if self.Errors.has_key("name"):
   425             HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1])
   419             HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1])
   426         if "type" in self.Errors:
   420         if self.Errors.has_key("type"):
   427             HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1])    
   421             HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1])    
   428         dc.SetTextForeground(wx.BLACK)
   422         dc.SetTextForeground(wx.BLACK)
   429         
   423         
   430 
   424 
   431 #-------------------------------------------------------------------------------
   425 #-------------------------------------------------------------------------------
   854         if getattr(dc, "printing", False):
   848         if getattr(dc, "printing", False):
   855             name_size = dc.GetTextExtent(self.Name)
   849             name_size = dc.GetTextExtent(self.Name)
   856         else:
   850         else:
   857             name_size = self.NameSize
   851             name_size = self.NameSize
   858         
   852         
   859         # Draw a rectangle with the connection size with arrows in 
   853         # Draw a rectangle with the connection size with arrows inside
   860         dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1)
   854         dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1)
   861         arrowsize = min(self.Size[1] / 2, (self.Size[0] - name_size[0] - 10) / 2)
   855         arrowsize = min(self.Size[1] / 2, (self.Size[0] - name_size[0] - 10) / 2)
   862         dc.DrawLine(self.Pos.x, self.Pos.y, self.Pos.x + arrowsize, 
   856         dc.DrawLine(self.Pos.x, self.Pos.y, self.Pos.x + arrowsize, 
   863                 self.Pos.y + self.Size[1] / 2)
   857                 self.Pos.y + self.Size[1] / 2)
   864         dc.DrawLine(self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2, 
   858         dc.DrawLine(self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2,