36 #------------------------------------------------------------------------------- |
35 #------------------------------------------------------------------------------- |
37 # Graphic elements Viewer base class |
36 # Graphic elements Viewer base class |
38 #------------------------------------------------------------------------------- |
37 #------------------------------------------------------------------------------- |
39 |
38 |
40 # ID Constants for menu items |
39 # ID Constants for menu items |
41 [wxID_FBDVIEWERCONTEXTUALMENUITEMS0, wxID_FBDVIEWERCONTEXTUALMENUITEMS1, |
40 [ID_FBDVIEWERCONTEXTUALMENUITEMS0, ID_FBDVIEWERCONTEXTUALMENUITEMS1, |
42 wxID_FBDVIEWERCONTEXTUALMENUITEMS2, wxID_FBDVIEWERCONTEXTUALMENUITEMS3, |
41 ID_FBDVIEWERCONTEXTUALMENUITEMS2, ID_FBDVIEWERCONTEXTUALMENUITEMS3, |
43 wxID_FBDVIEWERCONTEXTUALMENUITEMS5, wxID_FBDVIEWERCONTEXTUALMENUITEMS6, |
42 ID_FBDVIEWERCONTEXTUALMENUITEMS5, ID_FBDVIEWERCONTEXTUALMENUITEMS6, |
44 wxID_FBDVIEWERCONTEXTUALMENUITEMS8, wxID_FBDVIEWERCONTEXTUALMENUITEMS9, |
43 ID_FBDVIEWERCONTEXTUALMENUITEMS8, ID_FBDVIEWERCONTEXTUALMENUITEMS9, |
45 wxID_FBDVIEWERCONTEXTUALMENUITEMS11, |
44 ID_FBDVIEWERCONTEXTUALMENUITEMS11, |
46 ] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(9)] |
45 ] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(9)] |
47 |
46 |
48 |
47 |
49 class ViewerDropTarget(wx.TextDropTarget): |
48 class ViewerDropTarget(wx.TextDropTarget): |
50 |
49 |
83 self.Parent.RefreshScrollBars() |
82 self.Parent.RefreshScrollBars() |
84 self.Parent.Refresh() |
83 self.Parent.Refresh() |
85 |
84 |
86 |
85 |
87 """ |
86 """ |
88 Class that implements a Viewer based on a wxScrolledWindow for drawing and |
87 Class that implements a Viewer based on a wx.ScrolledWindow for drawing and |
89 manipulating graphic elements |
88 manipulating graphic elements |
90 """ |
89 """ |
91 |
90 |
92 class Viewer(wx.ScrolledWindow): |
91 class Viewer(wx.ScrolledWindow): |
93 |
92 |
94 # Create Contextual Menu items |
93 # Create Contextual Menu items |
95 def _init_coll_ContextualMenu_Items(self, parent): |
94 def _init_coll_ContextualMenu_Items(self, parent): |
96 # Create menu items |
95 # Create menu items |
97 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS0, |
96 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS0, |
98 kind=wx.ITEM_RADIO, text=u'No Modifier') |
97 kind=wx.ITEM_RADIO, text=u'No Modifier') |
99 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS1, |
98 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS1, |
100 kind=wx.ITEM_RADIO, text=u'Negated') |
99 kind=wx.ITEM_RADIO, text=u'Negated') |
101 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS2, |
100 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS2, |
102 kind=wx.ITEM_RADIO, text=u'Rising Edge') |
101 kind=wx.ITEM_RADIO, text=u'Rising Edge') |
103 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS3, |
102 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS3, |
104 kind=wx.ITEM_RADIO, text=u'Falling Edge') |
103 kind=wx.ITEM_RADIO, text=u'Falling Edge') |
105 parent.AppendSeparator() |
104 parent.AppendSeparator() |
106 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS5, |
105 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS5, |
107 kind=wx.ITEM_NORMAL, text=u'Add Wire Segment') |
106 kind=wx.ITEM_NORMAL, text=u'Add Wire Segment') |
108 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS6, |
107 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS6, |
109 kind=wx.ITEM_NORMAL, text=u'Delete Wire Segment') |
108 kind=wx.ITEM_NORMAL, text=u'Delete Wire Segment') |
110 parent.AppendSeparator() |
109 parent.AppendSeparator() |
111 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS8, |
110 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS8, |
112 kind=wx.ITEM_NORMAL, text=u'Add Divergence Branch') |
111 kind=wx.ITEM_NORMAL, text=u'Add Divergence Branch') |
113 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS9, |
112 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS9, |
114 kind=wx.ITEM_NORMAL, text=u'Delete Divergence Branch') |
113 kind=wx.ITEM_NORMAL, text=u'Delete Divergence Branch') |
115 parent.AppendSeparator() |
114 parent.AppendSeparator() |
116 parent.Append(help='', id=wxID_FBDVIEWERCONTEXTUALMENUITEMS11, |
115 parent.Append(help='', id=ID_FBDVIEWERCONTEXTUALMENUITEMS11, |
117 kind=wx.ITEM_NORMAL, text=u'Delete') |
116 kind=wx.ITEM_NORMAL, text=u'Delete') |
118 # Link menu event to corresponding called functions |
117 # Link menu event to corresponding called functions |
119 self.Bind(wx.EVT_MENU, self.OnNoModifierMenu, |
118 self.Bind(wx.EVT_MENU, self.OnNoModifierMenu, |
120 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS0) |
119 id=ID_FBDVIEWERCONTEXTUALMENUITEMS0) |
121 self.Bind(wx.EVT_MENU, self.OnNegatedMenu, |
120 self.Bind(wx.EVT_MENU, self.OnNegatedMenu, |
122 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS1) |
121 id=ID_FBDVIEWERCONTEXTUALMENUITEMS1) |
123 self.Bind(wx.EVT_MENU, self.OnRisingEdgeMenu, |
122 self.Bind(wx.EVT_MENU, self.OnRisingEdgeMenu, |
124 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS2) |
123 id=ID_FBDVIEWERCONTEXTUALMENUITEMS2) |
125 self.Bind(wx.EVT_MENU, self.OnFallingEdgeMenu, |
124 self.Bind(wx.EVT_MENU, self.OnFallingEdgeMenu, |
126 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS3) |
125 id=ID_FBDVIEWERCONTEXTUALMENUITEMS3) |
127 self.Bind(wx.EVT_MENU, self.OnAddSegmentMenu, |
126 self.Bind(wx.EVT_MENU, self.OnAddSegmentMenu, |
128 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS5) |
127 id=ID_FBDVIEWERCONTEXTUALMENUITEMS5) |
129 self.Bind(wx.EVT_MENU, self.OnDeleteSegmentMenu, |
128 self.Bind(wx.EVT_MENU, self.OnDeleteSegmentMenu, |
130 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS6) |
129 id=ID_FBDVIEWERCONTEXTUALMENUITEMS6) |
131 self.Bind(wx.EVT_MENU, self.OnAddBranchMenu, |
130 self.Bind(wx.EVT_MENU, self.OnAddBranchMenu, |
132 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS8) |
131 id=ID_FBDVIEWERCONTEXTUALMENUITEMS8) |
133 self.Bind(wx.EVT_MENU, self.OnDeleteBranchMenu, |
132 self.Bind(wx.EVT_MENU, self.OnDeleteBranchMenu, |
134 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS9) |
133 id=ID_FBDVIEWERCONTEXTUALMENUITEMS9) |
135 self.Bind(wx.EVT_MENU, self.OnDeleteMenu, |
134 self.Bind(wx.EVT_MENU, self.OnDeleteMenu, |
136 id=wxID_FBDVIEWERCONTEXTUALMENUITEMS11) |
135 id=ID_FBDVIEWERCONTEXTUALMENUITEMS11) |
137 |
136 |
138 # Create and initialize Contextual Menu |
137 # Create and initialize Contextual Menu |
139 def _init_menus(self): |
138 def _init_menus(self): |
140 self.ContextualMenu = wx.Menu(title='') |
139 self.ContextualMenu = wx.Menu(title='') |
141 |
140 |
165 self.Controler = controler |
164 self.Controler = controler |
166 |
165 |
167 self.SetDropTarget(ViewerDropTarget(self)) |
166 self.SetDropTarget(ViewerDropTarget(self)) |
168 |
167 |
169 # Link Viewer event to corresponding methods |
168 # Link Viewer event to corresponding methods |
170 EVT_PAINT(self, self.OnPaint) |
169 self.Bind(wx.EVT_PAINT, self.OnPaint) |
171 EVT_LEFT_DOWN(self, self.OnViewerLeftDown) |
170 self.Bind(wx.EVT_LEFT_DOWN, self.OnViewerLeftDown) |
172 EVT_LEFT_UP(self, self.OnViewerLeftUp) |
171 self.Bind(wx.EVT_LEFT_UP, self.OnViewerLeftUp) |
173 EVT_LEFT_DCLICK(self, self.OnViewerLeftDClick) |
172 self.Bind(wx.EVT_LEFT_DCLICK, self.OnViewerLeftDClick) |
174 EVT_RIGHT_UP(self, self.OnViewerRightUp) |
173 self.Bind(wx.EVT_RIGHT_UP, self.OnViewerRightUp) |
175 EVT_MOTION(self, self.OnViewerMotion) |
174 self.Bind(wx.EVT_MOTION, self.OnViewerMotion) |
176 EVT_CHAR(self, self.OnChar) |
175 self.Bind(wx.EVT_CHAR, self.OnChar) |
177 EVT_SCROLLWIN(self, self.OnMoveWindow) |
176 self.Bind(wx.EVT_SCROLLWIN, self.OnMoveWindow) |
178 EVT_SIZE(self, self.OnMoveWindow) |
177 self.Bind(wx.EVT_SIZE, self.OnMoveWindow) |
179 |
178 |
180 # Returns a new id |
179 # Returns a new id |
181 def GetNewId(self): |
180 def GetNewId(self): |
182 self.current_id += 1 |
181 self.current_id += 1 |
183 return self.current_id |
182 return self.current_id |
326 variable = FBD_Variable(self, INPUT, instance["name"], instance["value_type"], instance["id"]) |
325 variable = FBD_Variable(self, INPUT, instance["name"], instance["value_type"], instance["id"]) |
327 variable.SetPosition(instance["x"], instance["y"]) |
326 variable.SetPosition(instance["x"], instance["y"]) |
328 variable.SetSize(instance["width"], instance["height"]) |
327 variable.SetSize(instance["width"], instance["height"]) |
329 self.AddBlock(variable) |
328 self.AddBlock(variable) |
330 connectors = variable.GetConnectors() |
329 connectors = variable.GetConnectors() |
331 connectors["output"].SetPosition(wxPoint(*instance["connector"]["position"])) |
330 connectors["output"].SetPosition(wx.Point(*instance["connector"]["position"])) |
332 if instance["connector"]["negated"]: |
331 if instance["connector"]["negated"]: |
333 connectors["output"].SetNegated(True) |
332 connectors["output"].SetNegated(True) |
334 if instance["connector"]["edge"]: |
333 if instance["connector"]["edge"]: |
335 connectors["output"].SetEdge(instance["connector"]["edge"]) |
334 connectors["output"].SetEdge(instance["connector"]["edge"]) |
336 elif instance["type"] == "output": |
335 elif instance["type"] == "output": |
337 variable = FBD_Variable(self, OUTPUT, instance["name"], instance["value_type"], instance["id"]) |
336 variable = FBD_Variable(self, OUTPUT, instance["name"], instance["value_type"], instance["id"]) |
338 variable.SetPosition(instance["x"], instance["y"]) |
337 variable.SetPosition(instance["x"], instance["y"]) |
339 variable.SetSize(instance["width"], instance["height"]) |
338 variable.SetSize(instance["width"], instance["height"]) |
340 self.AddBlock(variable) |
339 self.AddBlock(variable) |
341 connectors = variable.GetConnectors() |
340 connectors = variable.GetConnectors() |
342 connectors["input"].SetPosition(wxPoint(*instance["connector"]["position"])) |
341 connectors["input"].SetPosition(wx.Point(*instance["connector"]["position"])) |
343 if instance["connector"]["negated"]: |
342 if instance["connector"]["negated"]: |
344 connectors["input"].SetNegated(True) |
343 connectors["input"].SetNegated(True) |
345 if instance["connector"]["edge"]: |
344 if instance["connector"]["edge"]: |
346 connectors["input"].SetEdge(instance["connector"]["edge"]) |
345 connectors["input"].SetEdge(instance["connector"]["edge"]) |
347 self.CreateWires(connectors["input"], instance["connector"]["links"], ids) |
346 self.CreateWires(connectors["input"], instance["connector"]["links"], ids) |
349 variable = FBD_Variable(self, INOUT, instance["name"], instance["value_type"], instance["id"]) |
348 variable = FBD_Variable(self, INOUT, instance["name"], instance["value_type"], instance["id"]) |
350 variable.SetPosition(instance["x"], instance["y"]) |
349 variable.SetPosition(instance["x"], instance["y"]) |
351 variable.SetSize(instance["width"], instance["height"]) |
350 variable.SetSize(instance["width"], instance["height"]) |
352 self.AddBlock(variable) |
351 self.AddBlock(variable) |
353 connectors = variable.GetConnectors() |
352 connectors = variable.GetConnectors() |
354 connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"])) |
353 connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"])) |
355 connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"])) |
354 connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"])) |
356 if instance["connectors"]["output"]["negated"]: |
355 if instance["connectors"]["output"]["negated"]: |
357 connectors["output"].SetNegated(True) |
356 connectors["output"].SetNegated(True) |
358 if instance["connectors"]["output"]["edge"]: |
357 if instance["connectors"]["output"]["edge"]: |
359 connectors["output"].SetEdge(instance["connectors"]["output"]["edge"]) |
358 connectors["output"].SetEdge(instance["connectors"]["output"]["edge"]) |
360 if instance["connectors"]["input"]["negated"]: |
359 if instance["connectors"]["input"]["negated"]: |
366 connection = FBD_Connector(self, CONTINUATION, instance["name"], instance["id"]) |
365 connection = FBD_Connector(self, CONTINUATION, instance["name"], instance["id"]) |
367 connection.SetPosition(instance["x"], instance["y"]) |
366 connection.SetPosition(instance["x"], instance["y"]) |
368 connection.SetSize(instance["width"], instance["height"]) |
367 connection.SetSize(instance["width"], instance["height"]) |
369 self.AddBlock(connection) |
368 self.AddBlock(connection) |
370 connector = connection.GetConnector() |
369 connector = connection.GetConnector() |
371 connector.SetPosition(wxPoint(*instance["connector"]["position"])) |
370 connector.SetPosition(wx.Point(*instance["connector"]["position"])) |
372 elif instance["type"] == "connection": |
371 elif instance["type"] == "connection": |
373 connection = FBD_Connector(self, CONNECTOR, instance["name"], instance["id"]) |
372 connection = FBD_Connector(self, CONNECTOR, instance["name"], instance["id"]) |
374 connection.SetPosition(instance["x"], instance["y"]) |
373 connection.SetPosition(instance["x"], instance["y"]) |
375 connection.SetSize(instance["width"], instance["height"]) |
374 connection.SetSize(instance["width"], instance["height"]) |
376 self.AddBlock(connection) |
375 self.AddBlock(connection) |
377 connector = connection.GetConnector() |
376 connector = connection.GetConnector() |
378 connector.SetPosition(wxPoint(*instance["connector"]["position"])) |
377 connector.SetPosition(wx.Point(*instance["connector"]["position"])) |
379 self.CreateWires(connector, instance["connector"]["links"], ids) |
378 self.CreateWires(connector, instance["connector"]["links"], ids) |
380 elif instance["type"] == "comment": |
379 elif instance["type"] == "comment": |
381 comment = Comment(self, instance["content"], instance["id"]) |
380 comment = Comment(self, instance["content"], instance["id"]) |
382 comment.SetPosition(instance["x"], instance["y"]) |
381 comment.SetPosition(instance["x"], instance["y"]) |
383 comment.SetSize(instance["width"], instance["height"]) |
382 comment.SetSize(instance["width"], instance["height"]) |
386 leftpowerrail = LD_PowerRail(self, LEFTRAIL, instance["id"], [True for i in range(len(instance["connectors"]))]) |
385 leftpowerrail = LD_PowerRail(self, LEFTRAIL, instance["id"], [True for i in range(len(instance["connectors"]))]) |
387 leftpowerrail.SetPosition(instance["x"], instance["y"]) |
386 leftpowerrail.SetPosition(instance["x"], instance["y"]) |
388 self.AddBlock(leftpowerrail) |
387 self.AddBlock(leftpowerrail) |
389 connectors = leftpowerrail.GetConnectors() |
388 connectors = leftpowerrail.GetConnectors() |
390 for i, connector in enumerate(instance["connectors"]): |
389 for i, connector in enumerate(instance["connectors"]): |
391 connectors[i].SetPosition(wxPoint(*connector["position"])) |
390 connectors[i].SetPosition(wx.Point(*connector["position"])) |
392 elif instance["type"] == "rightPowerRail": |
391 elif instance["type"] == "rightPowerRail": |
393 rightpowerrail = LD_PowerRail(self, RIGHTRAIL, instance["id"], [True for i in range(len(instance["connectors"]))]) |
392 rightpowerrail = LD_PowerRail(self, RIGHTRAIL, instance["id"], [True for i in range(len(instance["connectors"]))]) |
394 rightpowerrail.SetPosition(instance["x"], instance["y"]) |
393 rightpowerrail.SetPosition(instance["x"], instance["y"]) |
395 self.AddBlock(rightpowerrail) |
394 self.AddBlock(rightpowerrail) |
396 connectors = rightpowerrail.GetConnectors() |
395 connectors = rightpowerrail.GetConnectors() |
397 for i, connector in enumerate(instance["connectors"]): |
396 for i, connector in enumerate(instance["connectors"]): |
398 connectors[i].SetPosition(wxPoint(*connector["position"])) |
397 connectors[i].SetPosition(wx.Point(*connector["position"])) |
399 self.CreateWires(connectors[i], connector["links"], ids) |
398 self.CreateWires(connectors[i], connector["links"], ids) |
400 elif instance["type"] == "contact": |
399 elif instance["type"] == "contact": |
401 if instance["negated"]: |
400 if instance["negated"]: |
402 negated = instance["negated"] |
401 negated = instance["negated"] |
403 else: |
402 else: |
416 contact_type = CONTACT_NORMAL |
415 contact_type = CONTACT_NORMAL |
417 contact = LD_Contact(self, contact_type, instance["name"], instance["id"]) |
416 contact = LD_Contact(self, contact_type, instance["name"], instance["id"]) |
418 contact.SetPosition(instance["x"], instance["y"]) |
417 contact.SetPosition(instance["x"], instance["y"]) |
419 self.AddBlock(contact) |
418 self.AddBlock(contact) |
420 connectors = contact.GetConnectors() |
419 connectors = contact.GetConnectors() |
421 connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"])) |
420 connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"])) |
422 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
421 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
423 connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"])) |
422 connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"])) |
424 elif instance["type"] == "coil": |
423 elif instance["type"] == "coil": |
425 if instance["negated"]: |
424 if instance["negated"]: |
426 negated = instance["negated"] |
425 negated = instance["negated"] |
427 else: |
426 else: |
428 negated = False |
427 negated = False |
458 step.AddOutput() |
457 step.AddOutput() |
459 if "action" in instance["connectors"]: |
458 if "action" in instance["connectors"]: |
460 step.AddAction() |
459 step.AddAction() |
461 connectors = step.GetConnectors() |
460 connectors = step.GetConnectors() |
462 if connectors["input"]: |
461 if connectors["input"]: |
463 connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"])) |
462 connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"])) |
464 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
463 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
465 if connectors["output"]: |
464 if connectors["output"]: |
466 connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"])) |
465 connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"])) |
467 if connectors["action"]: |
466 if connectors["action"]: |
468 connectors["action"].SetPosition(wxPoint(*instance["connectors"]["action"]["position"])) |
467 connectors["action"].SetPosition(wx.Point(*instance["connectors"]["action"]["position"])) |
469 elif instance["type"] == "transition": |
468 elif instance["type"] == "transition": |
470 transition = SFC_Transition(self, instance["condition_type"], instance["condition"], instance["id"]) |
469 transition = SFC_Transition(self, instance["condition_type"], instance["condition"], instance["id"]) |
471 transition.SetPosition(instance["x"], instance["y"]) |
470 transition.SetPosition(instance["x"], instance["y"]) |
472 self.AddBlock(transition) |
471 self.AddBlock(transition) |
473 connectors = transition.GetConnectors() |
472 connectors = transition.GetConnectors() |
474 connectors["input"].SetPosition(wxPoint(*instance["connectors"]["input"]["position"])) |
473 connectors["input"].SetPosition(wx.Point(*instance["connectors"]["input"]["position"])) |
475 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
474 self.CreateWires(connectors["input"], instance["connectors"]["input"]["links"], ids) |
476 connectors["output"].SetPosition(wxPoint(*instance["connectors"]["output"]["position"])) |
475 connectors["output"].SetPosition(wx.Point(*instance["connectors"]["output"]["position"])) |
|
476 if instance["condition_type"] == "connection": |
|
477 self.CreateWires(connectors["connection"], instance["connectors"]["connection"]["links"], ids) |
477 elif instance["type"] in ["selectionDivergence", "selectionConvergence", "simultaneousDivergence", "simultaneousConvergence"]: |
478 elif instance["type"] in ["selectionDivergence", "selectionConvergence", "simultaneousDivergence", "simultaneousConvergence"]: |
478 if instance["type"] == "selectionDivergence": |
479 if instance["type"] == "selectionDivergence": |
479 divergence = SFC_Divergence(self, SELECTION_DIVERGENCE, |
480 divergence = SFC_Divergence(self, SELECTION_DIVERGENCE, |
480 len(instance["connectors"]["outputs"]), instance["id"]) |
481 len(instance["connectors"]["outputs"]), instance["id"]) |
481 elif instance["type"] == "selectionConvergence": |
482 elif instance["type"] == "selectionConvergence": |
491 divergence.SetSize(instance["width"], instance["height"]) |
492 divergence.SetSize(instance["width"], instance["height"]) |
492 self.AddBlock(divergence) |
493 self.AddBlock(divergence) |
493 connectors = divergence.GetConnectors() |
494 connectors = divergence.GetConnectors() |
494 for i, input_connector in enumerate(instance["connectors"]["inputs"]): |
495 for i, input_connector in enumerate(instance["connectors"]["inputs"]): |
495 connector = connectors["inputs"][i] |
496 connector = connectors["inputs"][i] |
496 connector.SetPosition(wxPoint(*input_connector["position"])) |
497 connector.SetPosition(wx.Point(*input_connector["position"])) |
497 self.CreateWires(connector, input_connector["links"], ids) |
498 self.CreateWires(connector, input_connector["links"], ids) |
498 for i, output_connector in enumerate(instance["connectors"]["outputs"]): |
499 for i, output_connector in enumerate(instance["connectors"]["outputs"]): |
499 connector = connectors["outputs"][i] |
500 connector = connectors["outputs"][i] |
500 connector.SetPosition(wxPoint(*output_connector["position"])) |
501 connector.SetPosition(wx.Point(*output_connector["position"])) |
501 elif instance["type"] == "jump": |
502 elif instance["type"] == "jump": |
502 jump = SFC_Jump(self, instance["target"], instance["id"]) |
503 jump = SFC_Jump(self, instance["target"], instance["id"]) |
503 jump.SetPosition(instance["x"], instance["y"]) |
504 jump.SetPosition(instance["x"], instance["y"]) |
504 self.AddBlock(jump) |
505 self.AddBlock(jump) |
505 connector = jump.GetConnector() |
506 connector = jump.GetConnector() |
506 connector.SetPosition(wxPoint(*instance["connector"]["position"])) |
507 connector.SetPosition(wx.Point(*instance["connector"]["position"])) |
507 self.CreateWires(connector, instance["connector"]["links"], ids) |
508 self.CreateWires(connector, instance["connector"]["links"], ids) |
508 elif instance["type"] == "actionBlock": |
509 elif instance["type"] == "actionBlock": |
509 actionBlock = SFC_ActionBlock(self, instance["actions"], instance["id"]) |
510 actionBlock = SFC_ActionBlock(self, instance["actions"], instance["id"]) |
510 actionBlock.SetPosition(instance["x"], instance["y"]) |
511 actionBlock.SetPosition(instance["x"], instance["y"]) |
511 actionBlock.SetSize(instance["width"], instance["height"]) |
512 actionBlock.SetSize(instance["width"], instance["height"]) |
512 self.AddBlock(actionBlock) |
513 self.AddBlock(actionBlock) |
513 connector = actionBlock.GetConnector() |
514 connector = actionBlock.GetConnector() |
514 connector.SetPosition(wxPoint(*instance["connector"]["position"])) |
515 connector.SetPosition(wx.Point(*instance["connector"]["position"])) |
515 self.CreateWires(connector, instance["connector"]["links"], ids) |
516 self.CreateWires(connector, instance["connector"]["links"], ids) |
516 else: |
517 else: |
517 if instance["name"] != None: |
518 if instance["name"] != None: |
518 block = FBD_Block(self, instance["type"], instance["name"], instance["id"], len(instance["connectors"]["inputs"])) |
519 block = FBD_Block(self, instance["type"], instance["name"], instance["id"], len(instance["connectors"]["inputs"])) |
519 else: |
520 else: |
680 self.ContextualMenu.FindItemByPosition(8).Enable(False) |
681 self.ContextualMenu.FindItemByPosition(8).Enable(False) |
681 self.ContextualMenu.FindItemByPosition(9).Enable(False) |
682 self.ContextualMenu.FindItemByPosition(9).Enable(False) |
682 self.PopupMenu(self.ContextualMenu) |
683 self.PopupMenu(self.ContextualMenu) |
683 |
684 |
684 def EditCommentContent(self, comment): |
685 def EditCommentContent(self, comment): |
685 dialog = wxTextEntryDialog(self.Parent, "Edit comment", "Please enter comment text", comment.GetContent(), wxOK|wxCANCEL|wxTE_MULTILINE) |
686 dialog = wx.TextEntryDialog(self.Parent, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE) |
686 if dialog.ShowModal() == wxID_OK: |
687 if dialog.ShowModal() == wx.ID_OK: |
687 value = dialog.GetValue() |
688 value = dialog.GetValue() |
688 comment.SetContent(value) |
689 comment.SetContent(value) |
689 infos = {"content" : value} |
690 infos = {"content" : value} |
690 infos["width"], infos["height"] = comment.GetSize() |
691 infos["width"], infos["height"] = comment.GetSize() |
691 self.Controler.SetCurrentElementEditingCommentInfos(comment.GetId(), infos) |
692 self.Controler.SetCurrentElementEditingCommentInfos(comment.GetId(), infos) |
788 elif self.Mode == MODE_WIRE: |
789 elif self.Mode == MODE_WIRE: |
789 pos = GetScaledEventPosition(event, self.GetLogicalDC(), self.Scaling) |
790 pos = GetScaledEventPosition(event, self.GetLogicalDC(), self.Scaling) |
790 connector = self.FindBlockConnector(pos) |
791 connector = self.FindBlockConnector(pos) |
791 if connector: |
792 if connector: |
792 if (connector.GetDirection() == EAST): |
793 if (connector.GetDirection() == EAST): |
793 wire = Wire(self, [wxPoint(pos.x, pos.y), EAST], [wxPoint(pos.x, pos.y), WEST]) |
794 wire = Wire(self, [wx.Point(pos.x, pos.y), EAST], [wx.Point(pos.x, pos.y), WEST]) |
794 else: |
795 else: |
795 wire = Wire(self, [wxPoint(pos.x, pos.y), WEST], [wxPoint(pos.x, pos.y), EAST]) |
796 wire = Wire(self, [wx.Point(pos.x, pos.y), WEST], [wx.Point(pos.x, pos.y), EAST]) |
796 wire.oldPos = pos |
797 wire.oldPos = pos |
797 wire.Handle = (HANDLE_POINT, 0) |
798 wire.Handle = (HANDLE_POINT, 0) |
798 wire.ProcessDragging(0, 0) |
799 wire.ProcessDragging(0, 0) |
799 wire.Handle = (HANDLE_POINT, 1) |
800 wire.Handle = (HANDLE_POINT, 1) |
800 self.AddWire(wire) |
801 self.AddWire(wire) |
819 self.Refresh() |
820 self.Refresh() |
820 else: |
821 else: |
821 bbox = self.rubberBand.GetCurrentExtent() |
822 bbox = self.rubberBand.GetCurrentExtent() |
822 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
823 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
823 if self.Mode == MODE_BLOCK: |
824 if self.Mode == MODE_BLOCK: |
824 wxCallAfter(self.AddNewBlock, bbox) |
825 wx.CallAfter(self.AddNewBlock, bbox) |
825 elif self.Mode == MODE_VARIABLE: |
826 elif self.Mode == MODE_VARIABLE: |
826 wxCallAfter(self.AddNewVariable, bbox) |
827 wx.CallAfter(self.AddNewVariable, bbox) |
827 elif self.Mode == MODE_CONNECTION: |
828 elif self.Mode == MODE_CONNECTION: |
828 wxCallAfter(self.AddNewConnection, bbox) |
829 wx.CallAfter(self.AddNewConnection, bbox) |
829 elif self.Mode == MODE_COMMENT: |
830 elif self.Mode == MODE_COMMENT: |
830 wxCallAfter(self.AddNewComment, bbox) |
831 wx.CallAfter(self.AddNewComment, bbox) |
831 elif self.Mode == MODE_CONTACT: |
832 elif self.Mode == MODE_CONTACT: |
832 wxCallAfter(self.AddNewContact, bbox) |
833 wx.CallAfter(self.AddNewContact, bbox) |
833 elif self.Mode == MODE_COIL: |
834 elif self.Mode == MODE_COIL: |
834 wxCallAfter(self.AddNewContact, bbox) |
835 wx.CallAfter(self.AddNewContact, bbox) |
835 elif self.Mode == MODE_POWERRAIL: |
836 elif self.Mode == MODE_POWERRAIL: |
836 wxCallAfter(self.AddNewPowerRail, bbox) |
837 wx.CallAfter(self.AddNewPowerRail, bbox) |
837 elif self.Mode == MODE_INITIALSTEP: |
838 elif self.Mode == MODE_INITIALSTEP: |
838 wxCallAfter(self.AddNewInitialStep, bbox) |
839 wx.CallAfter(self.AddNewInitialStep, bbox) |
839 elif self.Mode == MODE_STEP: |
840 elif self.Mode == MODE_STEP: |
840 wxCallAfter(self.AddNewStep, bbox) |
841 wx.CallAfter(self.AddNewStep, bbox) |
841 elif self.Mode == MODE_TRANSITION: |
842 elif self.Mode == MODE_TRANSITION: |
842 wxCallAfter(self.AddNewTransition, bbox) |
843 wx.CallAfter(self.AddNewTransition, bbox) |
843 elif self.Mode == MODE_DIVERGENCE: |
844 elif self.Mode == MODE_DIVERGENCE: |
844 wxCallAfter(self.AddNewDivergence, bbox) |
845 wx.CallAfter(self.AddNewDivergence, bbox) |
845 elif self.Mode == MODE_JUMP: |
846 elif self.Mode == MODE_JUMP: |
846 wxCallAfter(self.AddNewJump, bbox) |
847 wx.CallAfter(self.AddNewJump, bbox) |
847 elif self.Mode == MODE_ACTION: |
848 elif self.Mode == MODE_ACTION: |
848 wxCallAfter(self.AddNewActionBlock, bbox) |
849 wx.CallAfter(self.AddNewActionBlock, bbox) |
849 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
850 elif self.Mode == MODE_SELECTION and self.SelectedElement: |
850 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
851 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling) |
851 wxCallAfter(self.SetCursor, wxNullCursor) |
852 wx.CallAfter(self.SetCursor, wx.NullCursor) |
852 self.ReleaseMouse() |
853 self.ReleaseMouse() |
853 self.Refresh() |
854 self.Refresh() |
854 elif self.Mode == MODE_WIRE and self.SelectedElement: |
855 elif self.Mode == MODE_WIRE and self.SelectedElement: |
855 if self.SelectedElement.EndConnected != None: |
856 if self.SelectedElement.EndConnected != None: |
856 self.SelectedElement.ResetPoints() |
857 self.SelectedElement.ResetPoints() |
923 #------------------------------------------------------------------------------- |
924 #------------------------------------------------------------------------------- |
924 # Keyboard event functions |
925 # Keyboard event functions |
925 #------------------------------------------------------------------------------- |
926 #------------------------------------------------------------------------------- |
926 |
927 |
927 def OnChar(self, event): |
928 def OnChar(self, event): |
928 xpos, ypos = self.GetScrollPos(wxHORIZONTAL), self.GetScrollPos(wxVERTICAL) |
929 xpos, ypos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL) |
929 xmax = self.GetScrollRange(wxHORIZONTAL) - self.GetScrollThumb(wxHORIZONTAL) |
930 xmax = self.GetScrollRange(wx.HORIZONTAL) - self.GetScrollThumb(wx.HORIZONTAL) |
930 ymax = self.GetScrollRange(wxVERTICAL) - self.GetScrollThumb(wxVERTICAL) |
931 ymax = self.GetScrollRange(wx.VERTICAL) - self.GetScrollThumb(wx.VERTICAL) |
931 keycode = event.GetKeyCode() |
932 keycode = event.GetKeyCode() |
932 if self.Scaling: |
933 if self.Scaling: |
933 scaling = self.Scaling |
934 scaling = self.Scaling |
934 else: |
935 else: |
935 scaling = (8, 8) |
936 scaling = (8, 8) |
936 if keycode == WXK_DELETE and self.SelectedElement: |
937 if keycode == wx.WXK_DELETE and self.SelectedElement: |
937 self.SelectedElement.Clean() |
938 self.SelectedElement.Clean() |
938 self.SelectedElement.Delete() |
939 self.SelectedElement.Delete() |
939 self.SelectedElement = None |
940 self.SelectedElement = None |
940 self.RefreshBuffer() |
941 self.RefreshBuffer() |
941 self.RefreshScrollBars() |
942 self.RefreshScrollBars() |
942 self.Refresh() |
943 self.Refresh() |
943 elif keycode == WXK_LEFT: |
944 elif keycode == wx.WXK_LEFT: |
944 if event.ControlDown() and event.ShiftDown(): |
945 if event.ControlDown() and event.ShiftDown(): |
945 self.Scroll(0, ypos) |
946 self.Scroll(0, ypos) |
946 elif event.ControlDown(): |
947 elif event.ControlDown(): |
947 self.Scroll(max(0, xpos - 1), ypos) |
948 self.Scroll(max(0, xpos - 1), ypos) |
948 elif self.SelectedElement: |
949 elif self.SelectedElement: |
949 self.SelectedElement.Move(-scaling[0], 0) |
950 self.SelectedElement.Move(-scaling[0], 0) |
950 self.RefreshBuffer() |
951 self.RefreshBuffer() |
951 self.RefreshScrollBars() |
952 self.RefreshScrollBars() |
952 self.Refresh() |
953 self.Refresh() |
953 elif keycode == WXK_RIGHT: |
954 elif keycode == wx.WXK_RIGHT: |
954 if event.ControlDown() and event.ShiftDown(): |
955 if event.ControlDown() and event.ShiftDown(): |
955 self.Scroll(xmax, ypos) |
956 self.Scroll(xmax, ypos) |
956 elif event.ControlDown(): |
957 elif event.ControlDown(): |
957 self.Scroll(min(xpos + 1, xmax), ypos) |
958 self.Scroll(min(xpos + 1, xmax), ypos) |
958 elif self.SelectedElement: |
959 elif self.SelectedElement: |
959 self.SelectedElement.Move(scaling[0], 0) |
960 self.SelectedElement.Move(scaling[0], 0) |
960 self.RefreshBuffer() |
961 self.RefreshBuffer() |
961 self.RefreshScrollBars() |
962 self.RefreshScrollBars() |
962 self.Refresh() |
963 self.Refresh() |
963 elif keycode == WXK_UP: |
964 elif keycode == wx.WXK_UP: |
964 if event.ControlDown() and event.ShiftDown(): |
965 if event.ControlDown() and event.ShiftDown(): |
965 self.Scroll(xpos, 0) |
966 self.Scroll(xpos, 0) |
966 elif event.ControlDown(): |
967 elif event.ControlDown(): |
967 self.Scroll(xpos, max(0, ypos - 1)) |
968 self.Scroll(xpos, max(0, ypos - 1)) |
968 elif self.SelectedElement: |
969 elif self.SelectedElement: |
969 self.SelectedElement.Move(0, -scaling[1]) |
970 self.SelectedElement.Move(0, -scaling[1]) |
970 self.RefreshBuffer() |
971 self.RefreshBuffer() |
971 self.RefreshScrollBars() |
972 self.RefreshScrollBars() |
972 self.Refresh() |
973 self.Refresh() |
973 elif keycode == WXK_DOWN: |
974 elif keycode == wx.WXK_DOWN: |
974 if event.ControlDown() and event.ShiftDown(): |
975 if event.ControlDown() and event.ShiftDown(): |
975 self.Scroll(xpos, ymax) |
976 self.Scroll(xpos, ymax) |
976 elif event.ControlDown(): |
977 elif event.ControlDown(): |
977 self.Scroll(xpos, min(ypos + 1, ymax)) |
978 self.Scroll(xpos, min(ypos + 1, ymax)) |
978 elif self.SelectedElement: |
979 elif self.SelectedElement: |
1016 varlist.append((var["Name"], var["Class"], var["Type"])) |
1017 varlist.append((var["Name"], var["Class"], var["Type"])) |
1017 returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType() |
1018 returntype = self.Controler.GetCurrentElementEditingInterfaceReturnType() |
1018 if returntype: |
1019 if returntype: |
1019 varlist.append((self.Controler.GetCurrentElementEditingName(), "Output", returntype)) |
1020 varlist.append((self.Controler.GetCurrentElementEditingName(), "Output", returntype)) |
1020 dialog.SetVariables(varlist) |
1021 dialog.SetVariables(varlist) |
1021 if dialog.ShowModal() == wxID_OK: |
1022 if dialog.ShowModal() == wx.ID_OK: |
1022 id = self.GetNewId() |
1023 id = self.GetNewId() |
1023 values = dialog.GetValues() |
1024 values = dialog.GetValues() |
1024 variable = FBD_Variable(self, values["type"], values["name"], values["value_type"], id) |
1025 variable = FBD_Variable(self, values["type"], values["name"], values["value_type"], id) |
1025 variable.SetPosition(bbox.x, bbox.y) |
1026 variable.SetPosition(bbox.x, bbox.y) |
1026 variable.SetSize(values["width"], values["height"]) |
1027 variable.SetSize(values["width"], values["height"]) |
1283 varlist.append(self.Controler.GetCurrentElementEditingName()) |
1284 varlist.append(self.Controler.GetCurrentElementEditingName()) |
1284 dialog.SetVariables(varlist) |
1285 dialog.SetVariables(varlist) |
1285 values = {"name" : coil.GetName(), "type" : coil.GetType()} |
1286 values = {"name" : coil.GetName(), "type" : coil.GetType()} |
1286 dialog.SetValues(values) |
1287 dialog.SetValues(values) |
1287 dialog.SetElementSize(coil.GetSize()) |
1288 dialog.SetElementSize(coil.GetSize()) |
1288 if dialog.ShowModal() == wxID_OK: |
1289 if dialog.ShowModal() == wx.ID_OK: |
1289 values = dialog.GetValues() |
1290 values = dialog.GetValues() |
1290 coil.SetName(values["name"]) |
1291 coil.SetName(values["name"]) |
1291 coil.SetType(values["type"]) |
1292 coil.SetType(values["type"]) |
1292 coil.SetSize(values["width"], values["height"]) |
1293 coil.SetSize(values["width"], values["height"]) |
1293 self.RefreshContactModel(coil) |
1294 self.RefreshCoilModel(coil) |
1294 self.RefreshBuffer() |
1295 self.RefreshBuffer() |
1295 self.RefreshScrollBars() |
1296 self.RefreshScrollBars() |
1296 self.Refresh() |
1297 self.Refresh() |
1297 dialog.Destroy() |
1298 dialog.Destroy() |
1298 |
1299 |
1299 def EditPowerRailContent(self, powerrail): |
1300 def EditPowerRailContent(self, powerrail): |
1300 dialog = LDPowerRailDialog(self.Parent, powerrail.GetType(), len(powerrail.GetConnectors())) |
1301 dialog = LDPowerRailDialog(self.Parent, powerrail.GetType(), len(powerrail.GetConnectors())) |
1301 dialog.SetMinSize(powerrail.GetSize()) |
1302 dialog.SetMinSize(powerrail.GetSize()) |
1302 if dialog.ShowModal() == wxID_OK: |
1303 if dialog.ShowModal() == wx.ID_OK: |
1303 old_type = powerrail.GetType() |
1304 old_type = powerrail.GetType() |
1304 values = dialog.GetValues() |
1305 values = dialog.GetValues() |
1305 powerrail.SetType(values["type"], [True for i in xrange(values["number"])]) |
1306 powerrail.SetType(values["type"], [True for i in xrange(values["number"])]) |
1306 powerrail.SetSize(values["width"], values["height"]) |
1307 powerrail.SetSize(values["width"], values["height"]) |
1307 if old_type != values["type"]: |
1308 if old_type != values["type"]: |
1311 self.RefreshPowerRailModel(powerrail) |
1312 self.RefreshPowerRailModel(powerrail) |
1312 self.RefreshBuffer() |
1313 self.RefreshBuffer() |
1313 self.RefreshScrollBars() |
1314 self.RefreshScrollBars() |
1314 self.Refresh() |
1315 self.Refresh() |
1315 dialog.Destroy() |
1316 dialog.Destroy() |
1316 ## |
1317 |
1317 ## |
1318 |
1318 ## def AddNewTransition(self, bbox): |
1319 def EditTransitionContent(self, transition): |
1319 ## dialog = TransitionContentDialog(self.Parent) |
1320 dialog = TransitionContentDialog(self.Parent, self.GetDrawingMode() == FREEDRAWING_MODE) |
1320 ## dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions()) |
1321 dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions()) |
1321 ## if dialog.ShowModal() == wxID_OK: |
1322 dialog.SetValues({"type":transition.GetType(),"value":transition.GetCondition()}) |
1322 ## id = self.GetNewId() |
1323 dialog.SetElementSize(transition.GetSize()) |
1323 ## values = dialog.GetValues() |
1324 if dialog.ShowModal() == wx.ID_OK: |
1324 ## transition = SFC_Transition(self, values["type"], values["value"], id) |
1325 values = dialog.GetValues() |
1325 ## transition.SetPosition(bbox.x, bbox.y) |
1326 transition.SetType(values["type"],values["value"]) |
1326 ## min_width, min_height = transition.GetMinSize() |
1327 transition.RefreshModel() |
1327 ## transition.SetSize(max(bbox.width, min_width), max(bbox.height, min_height)) |
1328 self.RefreshBuffer() |
1328 ## self.Blocks.append(transition) |
1329 self.RefreshScrollBars() |
1329 ## self.Elements.append(transition) |
1330 self.Refresh() |
1330 ## self.Controler.AddCurrentElementEditingTransition(id) |
1331 dialog.Destroy() |
1331 ## self.RefreshTransitionModel(transition) |
1332 |
1332 ## self.RefreshScrollBars() |
1333 def EditJumpContent(self, jump): |
1333 ## self.Refresh() |
1334 choices = [] |
1334 ## dialog.Destroy() |
1335 for block in self.Blocks: |
1335 ## |
1336 if isinstance(block, SFC_Step): |
1336 ## def AddNewDivergence(self, bbox): |
1337 choices.append(block.GetName()) |
1337 ## dialog = DivergenceCreateDialog(self.Parent) |
1338 dialog = wx.SingleChoiceDialog(self.Parent, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL) |
1338 ## dialog.SetMinSize((bbox.width, bbox.height)) |
1339 dialog.SetSelection(choices.index(jump.GetTarget())) |
1339 ## if dialog.ShowModal() == wxID_OK: |
1340 if dialog.ShowModal() == wx.ID_OK: |
1340 ## id = self.GetNewId() |
1341 value = dialog.GetStringSelection() |
1341 ## values = dialog.GetValues() |
1342 jump.SetTarget(value) |
1342 ## divergence = SFC_Divergence(self, values["type"], values["number"], id) |
1343 jump.RefreshModel() |
1343 ## divergence.SetPosition(bbox.x, bbox.y) |
1344 self.RefreshBuffer() |
1344 ## min_width, min_height = divergence.GetMinSize() |
1345 self.RefreshScrollBars() |
1345 ## divergence.SetSize(max(bbox.width, min_width), max(bbox.height, min_height)) |
1346 self.Refresh() |
1346 ## self.Blocks.append(divergence) |
1347 dialog.Destroy() |
1347 ## self.Elements.append(divergence) |
1348 |
1348 ## self.Controler.AddCurrentElementEditingDivergence(id, values["type"]) |
1349 def EditActionBlockContent(self, actionblock): |
1349 ## self.RefreshDivergenceModel(divergence) |
1350 dialog = ActionBlockDialog(self.Parent) |
1350 ## self.RefreshScrollBars() |
1351 dialog.SetQualifierList(self.Controler.GetQualifierTypes()) |
1351 ## self.Refresh() |
1352 dialog.SetActionList(self.Controler.GetCurrentElementEditingActions()) |
1352 ## dialog.Destroy() |
1353 dialog.SetVariableList(self.Controler.GetCurrentElementEditingInterfaceVars()) |
|
1354 dialog.SetValues(actionblock.GetActions()) |
|
1355 if dialog.ShowModal() == wx.ID_OK: |
|
1356 actions = dialog.GetValues() |
|
1357 actionblock.SetActions(actions) |
|
1358 actionblock.RefreshModel() |
|
1359 self.RefreshBuffer() |
|
1360 self.RefreshScrollBars() |
|
1361 self.Refresh() |
|
1362 dialog.Destroy() |
1353 |
1363 |
1354 #------------------------------------------------------------------------------- |
1364 #------------------------------------------------------------------------------- |
1355 # Model update functions |
1365 # Model update functions |
1356 #------------------------------------------------------------------------------- |
1366 #------------------------------------------------------------------------------- |
1357 |
1367 |