2197 return width, height |
2197 return width, height |
2198 |
2198 |
2199 def AddNewBlock(self, bbox): |
2199 def AddNewBlock(self, bbox): |
2200 dialog = FBDBlockDialog(self.ParentWindow, self.Controler, self.TagName) |
2200 dialog = FBDBlockDialog(self.ParentWindow, self.Controler, self.TagName) |
2201 dialog.SetPreviewFont(self.GetFont()) |
2201 dialog.SetPreviewFont(self.GetFont()) |
2202 dialog.SetMinBlockSize((bbox.width, bbox.height)) |
2202 dialog.SetMinElementSize((bbox.width, bbox.height)) |
2203 if dialog.ShowModal() == wx.ID_OK: |
2203 if dialog.ShowModal() == wx.ID_OK: |
2204 id = self.GetNewId() |
2204 id = self.GetNewId() |
2205 values = dialog.GetValues() |
2205 values = dialog.GetValues() |
2206 values.setdefault("name", "") |
2206 values.setdefault("name", "") |
2207 block = FBD_Block(self, values["type"], values["name"], id, |
2207 block = FBD_Block(self, values["type"], values["name"], id, |
2220 self.ParentWindow.RefreshPouInstanceVariablesPanel() |
2220 self.ParentWindow.RefreshPouInstanceVariablesPanel() |
2221 block.Refresh() |
2221 block.Refresh() |
2222 dialog.Destroy() |
2222 dialog.Destroy() |
2223 |
2223 |
2224 def AddNewVariable(self, bbox): |
2224 def AddNewVariable(self, bbox): |
2225 words = self.TagName.split("::") |
2225 dialog = FBDVariableDialog(self.ParentWindow, self.Controler, self.TagName) |
2226 if words[0] == "T": |
|
2227 dialog = FBDVariableDialog(self.ParentWindow, self.Controler, words[2]) |
|
2228 else: |
|
2229 dialog = FBDVariableDialog(self.ParentWindow, self.Controler) |
|
2230 dialog.SetPreviewFont(self.GetFont()) |
2226 dialog.SetPreviewFont(self.GetFont()) |
2231 dialog.SetMinVariableSize((bbox.width, bbox.height)) |
2227 dialog.SetMinElementSize((bbox.width, bbox.height)) |
2232 varlist = [] |
|
2233 vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug) |
|
2234 if vars: |
|
2235 for var in vars: |
|
2236 if var["Edit"]: |
|
2237 varlist.append((var["Name"], var["Class"], var["Type"])) |
|
2238 returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, self.Debug) |
|
2239 if returntype: |
|
2240 varlist.append((self.Controler.GetEditedElementName(self.TagName), "Output", returntype)) |
|
2241 dialog.SetVariables(varlist) |
|
2242 if dialog.ShowModal() == wx.ID_OK: |
2228 if dialog.ShowModal() == wx.ID_OK: |
2243 id = self.GetNewId() |
2229 id = self.GetNewId() |
2244 values = dialog.GetValues() |
2230 values = dialog.GetValues() |
2245 variable = FBD_Variable(self, values["type"], values["name"], values["value_type"], id) |
2231 variable = FBD_Variable(self, values["class"], values["expression"], values["vr_type"], id) |
2246 variable.SetPosition(bbox.x, bbox.y) |
2232 variable.SetPosition(bbox.x, bbox.y) |
2247 variable.SetSize(*self.GetScaledSize(values["width"], values["height"])) |
2233 variable.SetSize(*self.GetScaledSize(values["width"], values["height"])) |
2248 self.AddBlock(variable) |
2234 self.AddBlock(variable) |
2249 self.Controler.AddEditedElementVariable(self.TagName, id, values["type"]) |
2235 self.Controler.AddEditedElementVariable(self.TagName, id, values["class"]) |
2250 self.RefreshVariableModel(variable) |
2236 self.RefreshVariableModel(variable) |
2251 self.RefreshBuffer() |
2237 self.RefreshBuffer() |
2252 self.RefreshScrollBars() |
2238 self.RefreshScrollBars() |
2253 self.RefreshVisibleElements() |
2239 self.RefreshVisibleElements() |
2254 variable.Refresh() |
2240 variable.Refresh() |
2498 #------------------------------------------------------------------------------- |
2484 #------------------------------------------------------------------------------- |
2499 |
2485 |
2500 def EditBlockContent(self, block): |
2486 def EditBlockContent(self, block): |
2501 dialog = FBDBlockDialog(self.ParentWindow, self.Controler, self.TagName) |
2487 dialog = FBDBlockDialog(self.ParentWindow, self.Controler, self.TagName) |
2502 dialog.SetPreviewFont(self.GetFont()) |
2488 dialog.SetPreviewFont(self.GetFont()) |
2503 dialog.SetMinBlockSize(block.GetSize()) |
2489 dialog.SetMinElementSize(block.GetSize()) |
2504 old_values = {"name" : block.GetName(), |
2490 old_values = {"name" : block.GetName(), |
2505 "type" : block.GetType(), |
2491 "type" : block.GetType(), |
2506 "extension" : block.GetExtension(), |
2492 "extension" : block.GetExtension(), |
2507 "inputs" : block.GetInputTypes(), |
2493 "inputs" : block.GetInputTypes(), |
2508 "executionControl" : block.GetExecutionControl(), |
2494 "executionControl" : block.GetExecutionControl(), |
2530 self.RefreshVariablePanel() |
2516 self.RefreshVariablePanel() |
2531 self.ParentWindow.RefreshPouInstanceVariablesPanel() |
2517 self.ParentWindow.RefreshPouInstanceVariablesPanel() |
2532 dialog.Destroy() |
2518 dialog.Destroy() |
2533 |
2519 |
2534 def EditVariableContent(self, variable): |
2520 def EditVariableContent(self, variable): |
2535 words = self.TagName.split("::") |
2521 dialog = FBDVariableDialog(self.ParentWindow, self.Controler, self.TagName) |
2536 if words[0] == "T": |
|
2537 dialog = FBDVariableDialog(self.ParentWindow, self.Controler, words[2]) |
|
2538 else: |
|
2539 dialog = FBDVariableDialog(self.ParentWindow, self.Controler) |
|
2540 dialog.SetPreviewFont(self.GetFont()) |
2522 dialog.SetPreviewFont(self.GetFont()) |
2541 dialog.SetMinVariableSize(variable.GetSize()) |
2523 dialog.SetMinElementSize(variable.GetSize()) |
2542 varlist = [] |
2524 old_values = {"expression" : variable.GetName(), "class" : variable.GetType(), |
2543 vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug) |
2525 "executionOrder" : variable.GetExecutionOrder()} |
2544 if vars: |
|
2545 for var in vars: |
|
2546 if var["Edit"]: |
|
2547 varlist.append((var["Name"], var["Class"], var["Type"])) |
|
2548 returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, self.Debug) |
|
2549 if returntype: |
|
2550 varlist.append((self.Controler.GetEditedElementName(self.TagName), "Output", returntype)) |
|
2551 dialog.SetVariables(varlist) |
|
2552 old_values = {"name" : variable.GetName(), "type" : variable.GetType(), |
|
2553 "executionOrder" : variable.GetExecutionOrder()} |
|
2554 dialog.SetValues(old_values) |
2526 dialog.SetValues(old_values) |
2555 if dialog.ShowModal() == wx.ID_OK: |
2527 if dialog.ShowModal() == wx.ID_OK: |
2556 new_values = dialog.GetValues() |
2528 new_values = dialog.GetValues() |
2557 rect = variable.GetRedrawRect(1, 1) |
2529 rect = variable.GetRedrawRect(1, 1) |
2558 variable.SetName(new_values["name"]) |
2530 variable.SetName(new_values["expression"]) |
2559 variable.SetType(new_values["type"], new_values["value_type"]) |
2531 variable.SetType(new_values["class"], new_values["var_type"]) |
2560 variable.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"])) |
2532 variable.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"])) |
2561 variable.SetExecutionOrder(new_values["executionOrder"]) |
2533 variable.SetExecutionOrder(new_values["executionOrder"]) |
2562 rect = rect.Union(variable.GetRedrawRect()) |
2534 rect = rect.Union(variable.GetRedrawRect()) |
2563 if old_values["type"] != new_values["type"]: |
2535 if old_values["class"] != new_values["class"]: |
2564 id = variable.GetId() |
2536 id = variable.GetId() |
2565 self.Controler.RemoveEditedElementInstance(self.TagName, id) |
2537 self.Controler.RemoveEditedElementInstance(self.TagName, id) |
2566 self.Controler.AddEditedElementVariable(self.TagName, id, new_values["type"]) |
2538 self.Controler.AddEditedElementVariable(self.TagName, id, new_values["class"]) |
2567 self.RefreshVariableModel(variable) |
2539 self.RefreshVariableModel(variable) |
2568 self.RefreshBuffer() |
2540 self.RefreshBuffer() |
2569 if old_values["executionOrder"] != new_values["executionOrder"]: |
2541 if old_values["executionOrder"] != new_values["executionOrder"]: |
2570 self.RefreshView(selection=({variable.GetId(): True}, {})) |
2542 self.RefreshView(selection=({variable.GetId(): True}, {})) |
2571 else: |
2543 else: |