SFCViewer.py
changeset 155 b695f7459ef6
parent 145 4fb225afddf4
child 165 e464a4e4e06d
equal deleted inserted replaced
154:203c4acdaf27 155:b695f7459ef6
   279     def OnViewerLeftDClick(self, event):
   279     def OnViewerLeftDClick(self, event):
   280         if self.GetDrawingMode() == FREEDRAWING_MODE:
   280         if self.GetDrawingMode() == FREEDRAWING_MODE:
   281             Viewer.OnViewerLeftDClick(self, event)
   281             Viewer.OnViewerLeftDClick(self, event)
   282         elif self.Mode == MODE_SELECTION and self.SelectedElement:
   282         elif self.Mode == MODE_SELECTION and self.SelectedElement:
   283             self.SelectedElement.OnLeftDClick(event, self.GetLogicalDC(), self.Scaling)
   283             self.SelectedElement.OnLeftDClick(event, self.GetLogicalDC(), self.Scaling)
   284             self.Refresh()
   284             self.Refresh(False)
   285         event.Skip()
   285         event.Skip()
   286     
   286     
   287     def OnViewerMotion(self, event):
   287     def OnViewerMotion(self, event):
   288         if self.GetDrawingMode() == FREEDRAWING_MODE:
   288         if self.GetDrawingMode() == FREEDRAWING_MODE:
   289             Viewer.OnViewerMotion(self, event)
   289             Viewer.OnViewerMotion(self, event)
   318         if keycode == wx.WXK_DELETE and self.SelectedElement:
   318         if keycode == wx.WXK_DELETE and self.SelectedElement:
   319             self.SelectedElement.Delete()
   319             self.SelectedElement.Delete()
   320             self.SelectedElement = None
   320             self.SelectedElement = None
   321             self.RefreshBuffer()
   321             self.RefreshBuffer()
   322             self.RefreshScrollBars()
   322             self.RefreshScrollBars()
   323             self.Refresh()
   323             self.Refresh(False)
   324         elif keycode == wx.WXK_LEFT:
   324         elif keycode == wx.WXK_LEFT:
   325             if event.ControlDown() and event.ShiftDown():
   325             if event.ControlDown() and event.ShiftDown():
   326                 self.Scroll(0, ypos)
   326                 self.Scroll(0, ypos)
   327             elif event.ControlDown():
   327             elif event.ControlDown():
   328                 event.Skip()
   328                 event.Skip()
   329             elif self.SelectedElement:
   329             elif self.SelectedElement:
   330                 self.SelectedElement.Move(-scaling[0], 0)
   330                 self.SelectedElement.Move(-scaling[0], 0)
   331                 self.SelectedElement.RefreshModel()
   331                 self.SelectedElement.RefreshModel()
   332                 self.RefreshBuffer()
   332                 self.RefreshBuffer()
   333                 self.RefreshScrollBars()
   333                 self.RefreshScrollBars()
   334                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)))
   334                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)), False)
   335         elif keycode == wx.WXK_RIGHT:
   335         elif keycode == wx.WXK_RIGHT:
   336             if event.ControlDown() and event.ShiftDown():
   336             if event.ControlDown() and event.ShiftDown():
   337                 self.Scroll(xmax, ypos)
   337                 self.Scroll(xmax, ypos)
   338             elif event.ControlDown():
   338             elif event.ControlDown():
   339                 event.Skip()
   339                 event.Skip()
   340             elif self.SelectedElement:
   340             elif self.SelectedElement:
   341                 self.SelectedElement.Move(scaling[0], 0)
   341                 self.SelectedElement.Move(scaling[0], 0)
   342                 self.SelectedElement.RefreshModel()
   342                 self.SelectedElement.RefreshModel()
   343                 self.RefreshBuffer()
   343                 self.RefreshBuffer()
   344                 self.RefreshScrollBars()
   344                 self.RefreshScrollBars()
   345                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)))
   345                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)), False)
   346         elif keycode == wx.WXK_UP:
   346         elif keycode == wx.WXK_UP:
   347             if event.ControlDown() and event.ShiftDown():
   347             if event.ControlDown() and event.ShiftDown():
   348                 self.Scroll(xpos, 0)
   348                 self.Scroll(xpos, 0)
   349             elif event.ControlDown():
   349             elif event.ControlDown():
   350                 event.Skip()
   350                 event.Skip()
   351             elif self.SelectedElement:
   351             elif self.SelectedElement:
   352                 self.SelectedElement.Move(0, -scaling[1])
   352                 self.SelectedElement.Move(0, -scaling[1])
   353                 self.SelectedElement.RefreshModel()
   353                 self.SelectedElement.RefreshModel()
   354                 self.RefreshBuffer()
   354                 self.RefreshBuffer()
   355                 self.RefreshScrollBars()
   355                 self.RefreshScrollBars()
   356                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])))
   356                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])), False)
   357         elif keycode == wx.WXK_DOWN:
   357         elif keycode == wx.WXK_DOWN:
   358             if event.ControlDown() and event.ShiftDown():
   358             if event.ControlDown() and event.ShiftDown():
   359                 self.Scroll(xpos, ymax)
   359                 self.Scroll(xpos, ymax)
   360             elif event.ControlDown():
   360             elif event.ControlDown():
   361                 event.Skip()
   361                 event.Skip()
   362             elif self.SelectedElement:
   362             elif self.SelectedElement:
   363                 self.SelectedElement.Move(0, scaling[1])
   363                 self.SelectedElement.Move(0, scaling[1])
   364                 self.SelectedElement.RefreshModel()
   364                 self.SelectedElement.RefreshModel()
   365                 self.RefreshBuffer()
   365                 self.RefreshBuffer()
   366                 self.RefreshScrollBars()
   366                 self.RefreshScrollBars()
   367                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])))
   367                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])), False)
   368         else:
   368         else:
   369             event.Skip()
   369             event.Skip()
   370         
   370         
   371 #-------------------------------------------------------------------------------
   371 #-------------------------------------------------------------------------------
   372 #                          Adding element functions
   372 #                          Adding element functions
   388             self.AddBlock(step)
   388             self.AddBlock(step)
   389             self.Controler.AddEditedElementStep(self.TagName, id)
   389             self.Controler.AddEditedElementStep(self.TagName, id)
   390             self.RefreshStepModel(step)
   390             self.RefreshStepModel(step)
   391             self.RefreshBuffer()
   391             self.RefreshBuffer()
   392             self.RefreshScrollBars()
   392             self.RefreshScrollBars()
   393             self.Refresh()
   393             self.Refresh(False)
   394         dialog.Destroy()
   394         dialog.Destroy()
   395 
   395 
   396     def AddStep(self):
   396     def AddStep(self):
   397         if self.SelectedElement in self.Wires or isinstance(self.SelectedElement, SFC_Step):
   397         if self.SelectedElement in self.Wires or isinstance(self.SelectedElement, SFC_Step):
   398             dialog = StepNameDialog(self.ParentWindow, "Add a new step", "Please enter step name", "", wx.OK|wx.CANCEL)
   398             dialog = StepNameDialog(self.ParentWindow, "Add a new step", "Please enter step name", "", wx.OK|wx.CANCEL)
   442                     self.SelectedElement.SetSelected(False)
   442                     self.SelectedElement.SetSelected(False)
   443                     self.SelectedElement = step
   443                     self.SelectedElement = step
   444                     self.SelectedElement.SetSelected(True)
   444                     self.SelectedElement.SetSelected(True)
   445                 self.RefreshBuffer()
   445                 self.RefreshBuffer()
   446                 self.RefreshScrollBars()
   446                 self.RefreshScrollBars()
   447                 self.Refresh()
   447                 self.Refresh(False)
   448             dialog.Destroy()
   448             dialog.Destroy()
   449     
   449     
   450     def AddStepAction(self):
   450     def AddStepAction(self):
   451         if isinstance(self.SelectedElement, SFC_Step):
   451         if isinstance(self.SelectedElement, SFC_Step):
   452             connectors = self.SelectedElement.GetConnectors()
   452             connectors = self.SelectedElement.GetConnectors()
   471                     self.AddBlock(actionblock)
   471                     self.AddBlock(actionblock)
   472                     self.Controler.AddEditedElementActionBlock(self.TagName, id)
   472                     self.Controler.AddEditedElementActionBlock(self.TagName, id)
   473                     self.RefreshActionBlockModel(actionblock)
   473                     self.RefreshActionBlockModel(actionblock)
   474                     self.RefreshBuffer()
   474                     self.RefreshBuffer()
   475                     self.RefreshScrollBars()
   475                     self.RefreshScrollBars()
   476                     self.Refresh()
   476                     self.Refresh(False)
   477                 dialog.Destroy()
   477                 dialog.Destroy()
   478     
   478     
   479     def AddDivergence(self):
   479     def AddDivergence(self):
   480         if self.SelectedElement in self.Wires or isinstance(self.SelectedElement, Graphic_Group) or isinstance(self.SelectedElement, SFC_Step):        
   480         if self.SelectedElement in self.Wires or isinstance(self.SelectedElement, Graphic_Group) or isinstance(self.SelectedElement, SFC_Step):        
   481             dialog = DivergenceCreateDialog(self.ParentWindow)
   481             dialog = DivergenceCreateDialog(self.ParentWindow)
   667                             transition_connectors = transition.GetConnectors()
   667                             transition_connectors = transition.GetConnectors()
   668                             previous = transition_connectors["output"]
   668                             previous = transition_connectors["output"]
   669                         self.CreateStep("Step", previous)
   669                         self.CreateStep("Step", previous)
   670                 self.RefreshBuffer()
   670                 self.RefreshBuffer()
   671                 self.RefreshScrollBars()
   671                 self.RefreshScrollBars()
   672                 self.Refresh()
   672                 self.Refresh(False)
   673             dialog.Destroy()
   673             dialog.Destroy()
   674     
   674     
   675     def AddDivergenceBranch(self, divergence):
   675     def AddDivergenceBranch(self, divergence):
   676         if isinstance(divergence, SFC_Divergence):
   676         if isinstance(divergence, SFC_Divergence):
   677             if self.GetDrawingMode() == FREEDRAWING_MODE:
   677             if self.GetDrawingMode() == FREEDRAWING_MODE:
   688                     else:
   688                     else:
   689                         previous = divergence_connectors["outputs"][-1]
   689                         previous = divergence_connectors["outputs"][-1]
   690                     step = self.CreateStep("Step", previous)
   690                     step = self.CreateStep("Step", previous)
   691             self.RefreshBuffer()
   691             self.RefreshBuffer()
   692             self.RefreshScrollBars()
   692             self.RefreshScrollBars()
   693             self.Refresh()
   693             self.Refresh(False)
   694     
   694     
   695     def RemoveDivergenceBranch(self, divergence):
   695     def RemoveDivergenceBranch(self, divergence):
   696         if isinstance(divergence, SFC_Divergence):
   696         if isinstance(divergence, SFC_Divergence):
   697             if self.GetDrawingMode() == FREEDRAWING_MODE:
   697             if self.GetDrawingMode() == FREEDRAWING_MODE:
   698                 divergence.RemoveHandledBranch()
   698                 divergence.RemoveHandledBranch()
   699                 self.RefreshBuffer()
   699                 self.RefreshBuffer()
   700                 self.RefreshScrollBars()
   700                 self.RefreshScrollBars()
   701                 self.Refresh()
   701                 self.Refresh(False)
   702     
   702     
   703     def AddJump(self):
   703     def AddJump(self):
   704         if isinstance(self.SelectedElement, SFC_Step) and not self.SelectedElement.Output:
   704         if isinstance(self.SelectedElement, SFC_Step) and not self.SelectedElement.Output:
   705             choices = []
   705             choices = []
   706             for block in self.Blocks:
   706             for block in self.Blocks:
   725                 transition.RefreshOutputPosition()
   725                 transition.RefreshOutputPosition()
   726                 wire.SetPoints([wx.Point(pos.x, pos.y + SFC_WIRE_MIN_SIZE), wx.Point(pos.x, pos.y)])
   726                 wire.SetPoints([wx.Point(pos.x, pos.y + SFC_WIRE_MIN_SIZE), wx.Point(pos.x, pos.y)])
   727                 self.RefreshJumpModel(jump)
   727                 self.RefreshJumpModel(jump)
   728                 self.RefreshBuffer()
   728                 self.RefreshBuffer()
   729                 self.RefreshScrollBars()
   729                 self.RefreshScrollBars()
   730                 self.Refresh()
   730                 self.Refresh(False)
   731             dialog.Destroy()
   731             dialog.Destroy()
   732 
   732 
   733     def EditStepContent(self, step):
   733     def EditStepContent(self, step):
   734         if self.GetDrawingMode() == FREEDRAWING_MODE:
   734         if self.GetDrawingMode() == FREEDRAWING_MODE:
   735             Viewer.EditStepContent(self, step)
   735             Viewer.EditStepContent(self, step)
   745                 size = step.GetSize()
   745                 size = step.GetSize()
   746                 step.UpdateSize(max(min_size[0], size[0]), max(min_size[1], size[1]))
   746                 step.UpdateSize(max(min_size[0], size[0]), max(min_size[1], size[1]))
   747                 step.RefreshModel()
   747                 step.RefreshModel()
   748                 self.RefreshBuffer()
   748                 self.RefreshBuffer()
   749                 self.RefreshScrollBars()
   749                 self.RefreshScrollBars()
   750                 self.Refresh()
   750                 self.Refresh(False)
   751             dialog.Destroy()
   751             dialog.Destroy()
   752 
   752 
   753 #-------------------------------------------------------------------------------
   753 #-------------------------------------------------------------------------------
   754 #                          Delete element functions
   754 #                          Delete element functions
   755 #-------------------------------------------------------------------------------
   755 #-------------------------------------------------------------------------------