--- a/SFCViewer.py Thu Aug 23 09:50:35 2007 +0200
+++ b/SFCViewer.py Mon Aug 27 17:37:50 2007 +0200
@@ -46,7 +46,7 @@
def CreateTransition(self, connector, next = None):
previous = connector.GetParentBlock()
id = self.GetNewId()
- transition = SFC_Transition(self, "reference", "", id)
+ transition = SFC_Transition(self, "reference", "", 0, id)
pos = connector.GetPosition(False)
transition.SetPosition(pos.x, pos.y + SFC_WIRE_MIN_SIZE)
transition_connectors = transition.GetConnectors()
@@ -384,7 +384,6 @@
self.AddBlock(step)
self.Controler.AddCurrentElementEditingStep(id)
self.RefreshStepModel(step)
- self.Parent.RefreshProjectTree()
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
@@ -439,7 +438,6 @@
self.SelectedElement.SetSelected(False)
self.SelectedElement = step
self.SelectedElement.SetSelected(True)
- self.Parent.RefreshProjectTree()
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
@@ -672,17 +670,28 @@
def AddDivergenceBranch(self, divergence):
if isinstance(divergence, SFC_Divergence):
- type = divergence.GetType()
- if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]:
+ if self.GetDrawingMode() == FREEDRAWING_MODE:
divergence.AddBranch()
- divergence_connectors = divergence.GetConnectors()
- if type == SELECTION_DIVERGENCE:
- transition = self.CreateTransition(divergence_connectors["outputs"][-1])
- transition_connectors = transition.GetConnectors()
- previous = transition_connectors["output"]
- else:
- previous = divergence_connectors["outputs"][-1]
- step = self.CreateStep("Step", previous)
+ else:
+ type = divergence.GetType()
+ if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]:
+ divergence.AddBranch()
+ divergence_connectors = divergence.GetConnectors()
+ if type == SELECTION_DIVERGENCE:
+ transition = self.CreateTransition(divergence_connectors["outputs"][-1])
+ transition_connectors = transition.GetConnectors()
+ previous = transition_connectors["output"]
+ else:
+ previous = divergence_connectors["outputs"][-1]
+ step = self.CreateStep("Step", previous)
+ self.RefreshBuffer()
+ self.RefreshScrollBars()
+ self.Refresh()
+
+ def RemoveDivergenceBranch(self, divergence):
+ if isinstance(divergence, SFC_Divergence):
+ if self.GetDrawingMode() == FREEDRAWING_MODE:
+ divergence.RemoveHandledBranch()
self.RefreshBuffer()
self.RefreshScrollBars()
self.Refresh()
@@ -844,8 +853,7 @@
self.DeleteDivergence(next_block)
else:
self.RefreshDivergenceModel(next_block)
- self.Parent.RefreshProjectTree()
-
+
def DeleteDivergence(self, divergence):
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.DeleteDivergence(self, divergence)
@@ -940,8 +948,7 @@
if isinstance(next_block, SFC_Divergence):
next_block.RefreshPosition()
previous_block.RefreshOutputModel(True)
- self.Parent.RefreshProjectTree()
-
+
def DeleteJump(self, jump):
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.DeleteJump(self, jump)
@@ -976,8 +983,7 @@
self.DeleteDivergence(previous_block)
else:
previous_block.RefreshModel()
- self.Parent.RefreshProjectTree()
-
+
def DeleteActionBlock(self, actionblock):
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.DeleteActionBlock(self, actionblock)
@@ -997,8 +1003,7 @@
self.RefreshStepModel(step)
step.RefreshOutputPosition()
step.RefreshOutputModel(True)
- self.Parent.RefreshProjectTree()
-
+
def DeleteWire(self, wire):
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.DeleteWire(self, wire)