Viewer.py
changeset 178 a9035374eb05
parent 174 97bbbaa54964
child 195 d9084f6eecfd
equal deleted inserted replaced
177:a3f6670949ba 178:a9035374eb05
  2200 #-------------------------------------------------------------------------------
  2200 #-------------------------------------------------------------------------------
  2201 #                            Editing functions
  2201 #                            Editing functions
  2202 #-------------------------------------------------------------------------------
  2202 #-------------------------------------------------------------------------------
  2203     
  2203     
  2204     def Cut(self):
  2204     def Cut(self):
  2205         if self.IsBlock(self.SelectedElement):
  2205         if self.IsBlock(self.SelectedElement) or self.IsComment(self.SelectedElement):
  2206             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone(self))
  2206             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone(self))
  2207             rect = self.SelectedElement.GetRedrawRect(1, 1)
  2207             rect = self.SelectedElement.GetRedrawRect(1, 1)
  2208             self.SelectedElement.Delete()
  2208             self.SelectedElement.Delete()
  2209             self.SelectedElement = None
  2209             self.SelectedElement = None
  2210             self.RefreshBuffer()
  2210             self.RefreshBuffer()
  2211             self.RefreshScrollBars()
  2211             self.RefreshScrollBars()
  2212             self.RefreshRect(self.GetScrolledRect(rect), False)
  2212             self.RefreshRect(self.GetScrolledRect(rect), False)
  2213         
  2213         
  2214     def Copy(self):
  2214     def Copy(self):
  2215         if self.IsBlock(self.SelectedElement):
  2215         if self.IsBlock(self.SelectedElement) or self.IsComment(self.SelectedElement):
  2216             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone(self))
  2216             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone(self))
  2217             
  2217             
  2218     def Paste(self):
  2218     def Paste(self):
  2219         element = self.ParentWindow.GetCopyBuffer()
  2219         element = self.ParentWindow.GetCopyBuffer()
  2220         if element is not None and self.CanAddBlock(element):
  2220         if element is not None and self.CanAddBlock(element):
  2251             name = format%i
  2251             name = format%i
  2252             block = element.Clone(self, id, name, pos)
  2252             block = element.Clone(self, id, name, pos)
  2253         else:
  2253         else:
  2254             name = None
  2254             name = None
  2255             block = element.Clone(self, id, pos=pos)
  2255             block = element.Clone(self, id, pos=pos)
  2256         self.AddBlock(block)
       
  2257         if isinstance(block, Comment):
  2256         if isinstance(block, Comment):
       
  2257             self.AddComment(block)
  2258             self.Controler.AddEditedElementComment(self.TagName, id)
  2258             self.Controler.AddEditedElementComment(self.TagName, id)
  2259             self.RefreshCommentModel(block)
  2259             self.RefreshCommentModel(block)
  2260         elif isinstance(block, FBD_Block):
  2260         else:
  2261             self.Controler.AddEditedElementBlock(self.TagName, id, block.GetType(), name)
  2261             self.AddBlock(block)
  2262             self.RefreshBlockModel(block)
  2262             if isinstance(block, FBD_Block):
  2263         elif isinstance(block, FBD_Variable):
  2263                 self.Controler.AddEditedElementBlock(self.TagName, id, block.GetType(), name)
  2264             self.Controler.AddEditedElementVariable(self.TagName, id, block.GetType())
  2264                 self.RefreshBlockModel(block)
  2265             self.RefreshVariableModel(block)
  2265             elif isinstance(block, FBD_Variable):
  2266         elif isinstance(block, FBD_Connector):
  2266                 self.Controler.AddEditedElementVariable(self.TagName, id, block.GetType())
  2267             self.Controler.AddEditedElementConnection(self.TagName, id, block.GetType())
  2267                 self.RefreshVariableModel(block)
  2268             self.RefreshConnectionModel(block)
  2268             elif isinstance(block, FBD_Connector):
  2269         elif isinstance(block, LD_Contact):
  2269                 self.Controler.AddEditedElementConnection(self.TagName, id, block.GetType())
  2270             self.Controler.AddEditedElementContact(self.TagName, id)
  2270                 self.RefreshConnectionModel(block)
  2271             self.RefreshContactModel(block)
  2271             elif isinstance(block, LD_Contact):
  2272         elif isinstance(block, LD_Coil):
  2272                 self.Controler.AddEditedElementContact(self.TagName, id)
  2273             self.Controler.AddEditedElementCoil(self.TagName, id)
  2273                 self.RefreshContactModel(block)
  2274             self.RefreshCoilModel(block)
  2274             elif isinstance(block, LD_Coil):
  2275         elif isinstance(block, LD_PowerRail):
  2275                 self.Controler.AddEditedElementCoil(self.TagName, id)
  2276             self.Controler.AddEditedElementPowerRail(self.TagName, id, block.GetType())
  2276                 self.RefreshCoilModel(block)
  2277             self.RefreshPowerRailModel(block)
  2277             elif isinstance(block, LD_PowerRail):
  2278         elif isinstance(block, SFC_Step):
  2278                 self.Controler.AddEditedElementPowerRail(self.TagName, id, block.GetType())
  2279             self.Controler.AddEditedElementStep(self.TagName, id)
  2279                 self.RefreshPowerRailModel(block)
  2280             self.RefreshStepModel(block)    
  2280             elif isinstance(block, SFC_Step):
  2281         elif isinstance(block, SFC_Transition):
  2281                 self.Controler.AddEditedElementStep(self.TagName, id)
  2282             self.Controler.AddEditedElementTransition(self.TagName, id)
  2282                 self.RefreshStepModel(block)    
  2283             self.RefreshTransitionModel(block)       
  2283             elif isinstance(block, SFC_Transition):
  2284         elif isinstance(block, SFC_Divergence):
  2284                 self.Controler.AddEditedElementTransition(self.TagName, id)
  2285             self.Controler.AddEditedElementDivergence(self.TagName, id, block.GetType())
  2285                 self.RefreshTransitionModel(block)       
  2286             self.RefreshActionDivergenceModel(block)
  2286             elif isinstance(block, SFC_Divergence):
  2287         elif isinstance(block, SFC_Jump):
  2287                 self.Controler.AddEditedElementDivergence(self.TagName, id, block.GetType())
  2288             self.Controler.AddEditedElementJump(self.TagName, id)
  2288                 self.RefreshActionDivergenceModel(block)
  2289             self.RefreshJumpModel(block)       
  2289             elif isinstance(block, SFC_Jump):
  2290         elif isinstance(block, SFC_ActionBlock):
  2290                 self.Controler.AddEditedElementJump(self.TagName, id)
  2291             self.Controler.AddEditedElementActionBlock(self.TagName, id)
  2291                 self.RefreshJumpModel(block)       
  2292             self.RefreshActionBlockModel(block)
  2292             elif isinstance(block, SFC_ActionBlock):
       
  2293                 self.Controler.AddEditedElementActionBlock(self.TagName, id)
       
  2294                 self.RefreshActionBlockModel(block)
  2293         return block
  2295         return block
  2294             
  2296             
  2295 
  2297 
  2296 #-------------------------------------------------------------------------------
  2298 #-------------------------------------------------------------------------------
  2297 #                            Drawing functions
  2299 #                            Drawing functions