44 return wire |
44 return wire |
45 |
45 |
46 def CreateTransition(self, connector, next = None): |
46 def CreateTransition(self, connector, next = None): |
47 previous = connector.GetParentBlock() |
47 previous = connector.GetParentBlock() |
48 id = self.GetNewId() |
48 id = self.GetNewId() |
49 transition = SFC_Transition(self, "reference", "", id) |
49 transition = SFC_Transition(self, "reference", "", 0, id) |
50 pos = connector.GetPosition(False) |
50 pos = connector.GetPosition(False) |
51 transition.SetPosition(pos.x, pos.y + SFC_WIRE_MIN_SIZE) |
51 transition.SetPosition(pos.x, pos.y + SFC_WIRE_MIN_SIZE) |
52 transition_connectors = transition.GetConnectors() |
52 transition_connectors = transition.GetConnectors() |
53 wire = self.ConnectConnectors(transition_connectors["input"], connector) |
53 wire = self.ConnectConnectors(transition_connectors["input"], connector) |
54 if isinstance(previous, SFC_Divergence): |
54 if isinstance(previous, SFC_Divergence): |
382 width, height = step.GetSize() |
382 width, height = step.GetSize() |
383 step.SetSize(max(min_width, width), max(min_height, height)) |
383 step.SetSize(max(min_width, width), max(min_height, height)) |
384 self.AddBlock(step) |
384 self.AddBlock(step) |
385 self.Controler.AddCurrentElementEditingStep(id) |
385 self.Controler.AddCurrentElementEditingStep(id) |
386 self.RefreshStepModel(step) |
386 self.RefreshStepModel(step) |
387 self.Parent.RefreshProjectTree() |
|
388 self.RefreshBuffer() |
387 self.RefreshBuffer() |
389 self.RefreshScrollBars() |
388 self.RefreshScrollBars() |
390 self.Refresh() |
389 self.Refresh() |
391 dialog.Destroy() |
390 dialog.Destroy() |
392 |
391 |
437 self.SelectedElement.SetSelectedSegment(0) |
436 self.SelectedElement.SetSelectedSegment(0) |
438 else: |
437 else: |
439 self.SelectedElement.SetSelected(False) |
438 self.SelectedElement.SetSelected(False) |
440 self.SelectedElement = step |
439 self.SelectedElement = step |
441 self.SelectedElement.SetSelected(True) |
440 self.SelectedElement.SetSelected(True) |
442 self.Parent.RefreshProjectTree() |
|
443 self.RefreshBuffer() |
441 self.RefreshBuffer() |
444 self.RefreshScrollBars() |
442 self.RefreshScrollBars() |
445 self.Refresh() |
443 self.Refresh() |
446 dialog.Destroy() |
444 dialog.Destroy() |
447 |
445 |
670 self.Refresh() |
668 self.Refresh() |
671 dialog.Destroy() |
669 dialog.Destroy() |
672 |
670 |
673 def AddDivergenceBranch(self, divergence): |
671 def AddDivergenceBranch(self, divergence): |
674 if isinstance(divergence, SFC_Divergence): |
672 if isinstance(divergence, SFC_Divergence): |
675 type = divergence.GetType() |
673 if self.GetDrawingMode() == FREEDRAWING_MODE: |
676 if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]: |
|
677 divergence.AddBranch() |
674 divergence.AddBranch() |
678 divergence_connectors = divergence.GetConnectors() |
675 else: |
679 if type == SELECTION_DIVERGENCE: |
676 type = divergence.GetType() |
680 transition = self.CreateTransition(divergence_connectors["outputs"][-1]) |
677 if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]: |
681 transition_connectors = transition.GetConnectors() |
678 divergence.AddBranch() |
682 previous = transition_connectors["output"] |
679 divergence_connectors = divergence.GetConnectors() |
683 else: |
680 if type == SELECTION_DIVERGENCE: |
684 previous = divergence_connectors["outputs"][-1] |
681 transition = self.CreateTransition(divergence_connectors["outputs"][-1]) |
685 step = self.CreateStep("Step", previous) |
682 transition_connectors = transition.GetConnectors() |
|
683 previous = transition_connectors["output"] |
|
684 else: |
|
685 previous = divergence_connectors["outputs"][-1] |
|
686 step = self.CreateStep("Step", previous) |
|
687 self.RefreshBuffer() |
|
688 self.RefreshScrollBars() |
|
689 self.Refresh() |
|
690 |
|
691 def RemoveDivergenceBranch(self, divergence): |
|
692 if isinstance(divergence, SFC_Divergence): |
|
693 if self.GetDrawingMode() == FREEDRAWING_MODE: |
|
694 divergence.RemoveHandledBranch() |
686 self.RefreshBuffer() |
695 self.RefreshBuffer() |
687 self.RefreshScrollBars() |
696 self.RefreshScrollBars() |
688 self.Refresh() |
697 self.Refresh() |
689 |
698 |
690 def AddJump(self): |
699 def AddJump(self): |
842 next_block.RemoveBranch(next) |
851 next_block.RemoveBranch(next) |
843 if next_block.GetBranchNumber() < 2: |
852 if next_block.GetBranchNumber() < 2: |
844 self.DeleteDivergence(next_block) |
853 self.DeleteDivergence(next_block) |
845 else: |
854 else: |
846 self.RefreshDivergenceModel(next_block) |
855 self.RefreshDivergenceModel(next_block) |
847 self.Parent.RefreshProjectTree() |
856 |
848 |
|
849 def DeleteDivergence(self, divergence): |
857 def DeleteDivergence(self, divergence): |
850 if self.GetDrawingMode() == FREEDRAWING_MODE: |
858 if self.GetDrawingMode() == FREEDRAWING_MODE: |
851 Viewer.DeleteDivergence(self, divergence) |
859 Viewer.DeleteDivergence(self, divergence) |
852 else: |
860 else: |
853 connectors = divergence.GetConnectors() |
861 connectors = divergence.GetConnectors() |
938 wire.SetPoints([wx.Point(previous_pos.x, previous_pos.y + wire_size), |
946 wire.SetPoints([wx.Point(previous_pos.x, previous_pos.y + wire_size), |
939 wx.Point(previous_pos.x, previous_pos.y)]) |
947 wx.Point(previous_pos.x, previous_pos.y)]) |
940 if isinstance(next_block, SFC_Divergence): |
948 if isinstance(next_block, SFC_Divergence): |
941 next_block.RefreshPosition() |
949 next_block.RefreshPosition() |
942 previous_block.RefreshOutputModel(True) |
950 previous_block.RefreshOutputModel(True) |
943 self.Parent.RefreshProjectTree() |
951 |
944 |
|
945 def DeleteJump(self, jump): |
952 def DeleteJump(self, jump): |
946 if self.GetDrawingMode() == FREEDRAWING_MODE: |
953 if self.GetDrawingMode() == FREEDRAWING_MODE: |
947 Viewer.DeleteJump(self, jump) |
954 Viewer.DeleteJump(self, jump) |
948 else: |
955 else: |
949 previous = jump.GetPreviousConnector() |
956 previous = jump.GetPreviousConnector() |
974 previous_block.RemoveBranch(previous) |
981 previous_block.RemoveBranch(previous) |
975 if previous_block.GetBranchNumber() < 2: |
982 if previous_block.GetBranchNumber() < 2: |
976 self.DeleteDivergence(previous_block) |
983 self.DeleteDivergence(previous_block) |
977 else: |
984 else: |
978 previous_block.RefreshModel() |
985 previous_block.RefreshModel() |
979 self.Parent.RefreshProjectTree() |
986 |
980 |
|
981 def DeleteActionBlock(self, actionblock): |
987 def DeleteActionBlock(self, actionblock): |
982 if self.GetDrawingMode() == FREEDRAWING_MODE: |
988 if self.GetDrawingMode() == FREEDRAWING_MODE: |
983 Viewer.DeleteActionBlock(self, actionblock) |
989 Viewer.DeleteActionBlock(self, actionblock) |
984 else: |
990 else: |
985 connector = actionblock.GetConnector() |
991 connector = actionblock.GetConnector() |
995 self.Controler.RemoveCurrentElementEditingInstance(actionblock.GetId()) |
1001 self.Controler.RemoveCurrentElementEditingInstance(actionblock.GetId()) |
996 step.RemoveAction() |
1002 step.RemoveAction() |
997 self.RefreshStepModel(step) |
1003 self.RefreshStepModel(step) |
998 step.RefreshOutputPosition() |
1004 step.RefreshOutputPosition() |
999 step.RefreshOutputModel(True) |
1005 step.RefreshOutputModel(True) |
1000 self.Parent.RefreshProjectTree() |
1006 |
1001 |
|
1002 def DeleteWire(self, wire): |
1007 def DeleteWire(self, wire): |
1003 if self.GetDrawingMode() == FREEDRAWING_MODE: |
1008 if self.GetDrawingMode() == FREEDRAWING_MODE: |
1004 Viewer.DeleteWire(self, wire) |
1009 Viewer.DeleteWire(self, wire) |
1005 |
1010 |