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 |