799 self.RefreshProjectTree() |
799 self.RefreshProjectTree() |
800 dialog.Destroy() |
800 dialog.Destroy() |
801 elif data == ITEM_CLASS: |
801 elif data == ITEM_CLASS: |
802 item = self.ProjectTree.GetItemParent(selected) |
802 item = self.ProjectTree.GetItemParent(selected) |
803 item_type = self.ProjectTree.GetPyData(item) |
803 item_type = self.ProjectTree.GetPyData(item) |
804 while item_type != ITEM_POU: |
804 while item_type not in [ITEM_POU, ITEM_RESOURCE, ITEM_CONFIGURATION] and item.IsOk(): |
805 item = self.ProjectTree.GetItemParent(item) |
805 item = self.ProjectTree.GetItemParent(item) |
806 item_type = self.ProjectTree.GetPyData(item) |
806 item_type = self.ProjectTree.GetPyData(item) |
807 pou_name = self.ProjectTree.GetItemText(item) |
807 item_name = self.ProjectTree.GetItemText(item) |
808 dialog = EditVariableDialog(self, pou_name, self.Controler.GetPouType(pou_name), name) |
808 if item_type == ITEM_POU: |
809 dialog.SetPouNames(self.Controler.GetProjectPouNames()) |
809 dialog = EditVariableDialog(self, item_name, self.Controler.GetPouType(item_name), name) |
810 values = {} |
810 dialog.SetPouNames(self.Controler.GetProjectPouNames()) |
811 values["returnType"] = self.Controler.GetPouInterfaceReturnTypeByName(pou_name) |
811 values = {} |
812 values["data"] = self.Controler.GetPouInterfaceVarsByName(pou_name) |
812 values["returnType"] = self.Controler.GetPouInterfaceReturnTypeByName(item_name) |
813 dialog.SetValues(values) |
813 values["data"] = self.Controler.GetPouInterfaceVarsByName(item_name) |
814 if dialog.ShowModal() == wxID_OK: |
814 dialog.SetValues(values) |
815 if not self.Controler.PouIsUsed(pou_name): |
815 if dialog.ShowModal() == wxID_OK: |
816 new_values = dialog.GetValues() |
816 if not self.Controler.PouIsUsed(item_name): |
817 if "returnType" in new_values: |
817 new_values = dialog.GetValues() |
818 self.Controler.SetPouInterfaceReturnType(pou_name, new_values["returnType"]) |
818 if "returnType" in new_values: |
819 self.Controler.SetPouInterfaceVars(pou_name, new_values["data"]) |
819 self.Controler.SetPouInterfaceReturnType(item_name, new_values["returnType"]) |
820 pou_names = self.Controler.GetElementsOpenedNames() |
820 self.Controler.SetPouInterfaceVars(item_name, new_values["data"]) |
821 if pou_name in pou_names: |
821 pou_names = self.Controler.GetElementsOpenedNames() |
822 window = self.TabsOpened.GetPage(pou_names.index(pou_name)) |
822 if pou_name in pou_names: |
823 if isinstance(window, TextViewer): |
823 window = self.TabsOpened.GetPage(pou_names.index(item_name)) |
824 varlist = [] |
824 if isinstance(window, TextViewer): |
825 if "returnType" in new_values: |
825 varlist = [] |
826 varlist.append(name) |
826 if "returnType" in new_values: |
827 for var in new_values["data"]: |
827 varlist.append(name) |
828 varlist.append(var["Name"]) |
828 for var in new_values["data"]: |
829 window.SetVariables(varlist) |
829 varlist.append(var["Name"]) |
830 else: |
830 window.SetVariables(varlist) |
831 message = wxMessageDialog(self, "\"%s\" is used by one or more POUs. Its interface can't be changed!"%pou_name, "Error", wxOK|wxICON_ERROR) |
831 else: |
832 message.ShowModal() |
832 message = wxMessageDialog(self, "\"%s\" is used by one or more POUs. Its interface can't be changed!"%pou_name, "Error", wxOK|wxICON_ERROR) |
833 message.Destroy() |
833 message.ShowModal() |
834 dialog.Destroy() |
834 message.Destroy() |
835 self.RefreshProjectTree() |
835 dialog.Destroy() |
836 elif name == "Global Vars": |
836 self.RefreshProjectTree() |
837 parent = self.ProjectTree.GetItemParent(selected) |
837 elif item_type == ITEM_CONFIGURATION: |
838 parent_name = self.ProjectTree.GetItemText(parent) |
838 dialog = EditVariableDialog(self, item_name, None, name) |
839 dialog = EditVariableDialog(self, parent_name, None) |
839 dialog.SetPouNames(self.Controler.GetProjectPouNames()) |
840 dialog.SetPouNames(self.Controler.GetProjectPouNames()) |
840 values = {"data" : self.Controler.GetConfigurationGlobalVars(item_name)} |
841 if self.ProjectTree.GetPyData(parent) == ITEM_CONFIGURATION: |
|
842 values = {"data" : self.Controler.GetConfigurationGlobalVars(parent_name)} |
|
843 dialog.SetValues(values) |
841 dialog.SetValues(values) |
844 if dialog.ShowModal() == wxID_OK: |
842 if dialog.ShowModal() == wxID_OK: |
845 new_values = dialog.GetValues() |
843 new_values = dialog.GetValues() |
846 self.Controler.SetConfigurationGlobalVars(parent_name, new_values["data"]) |
844 self.Controler.SetConfigurationGlobalVars(item_name, new_values["data"]) |
847 else: |
845 dialog.Destroy() |
848 config = self.ProjectTree.GetItemParent(parent) |
846 self.RefreshProjectTree() |
849 config_name = self.ProjectTree.GetItemText(config) |
847 elif item_type == ITEM_RESOURCE: |
850 values = {"data" : self.Controler.GetConfigurationResourceGlobalVars(config_name, parent_name)} |
848 config = self.ProjectTree.GetItemParent(item) |
851 dialog.SetValues(values) |
849 config_type = self.ProjectTree.GetPyData(config) |
852 if dialog.ShowModal() == wxID_OK: |
850 while config_type != ITEM_CONFIGURATION and config.IsOk(): |
853 new_values = dialog.GetValues() |
851 config = self.ProjectTree.GetItemParent(config) |
854 self.Controler.SetConfigurationResourceGlobalVars(config_name, parent_name, new_values["data"]) |
852 config_type = self.ProjectTree.GetPyData(config) |
855 self.RefreshProjectTree() |
853 if config.IsOk(): |
|
854 config_name = self.ProjectTree.GetItemText(config) |
|
855 dialog = EditVariableDialog(self, item_name, None, name) |
|
856 values = {"data" : self.Controler.GetConfigurationResourceGlobalVars(config_name, item_name)} |
|
857 dialog.SetValues(values) |
|
858 if dialog.ShowModal() == wxID_OK: |
|
859 new_values = dialog.GetValues() |
|
860 self.Controler.SetConfigurationResourceGlobalVars(config_name, item_name, new_values["data"]) |
|
861 dialog.Destroy() |
|
862 self.RefreshProjectTree() |
856 elif data in [ITEM_POU, ITEM_TRANSITION, ITEM_ACTION]: |
863 elif data in [ITEM_POU, ITEM_TRANSITION, ITEM_ACTION]: |
857 if data == ITEM_POU: |
864 if data == ITEM_POU: |
858 idx = self.Controler.OpenElementEditing(name) |
865 idx = self.Controler.OpenElementEditing(name) |
859 language = self.Controler.GetPouBodyType(name) |
866 language = self.Controler.GetPouBodyType(name) |
860 varlist = [] |
867 varlist = [] |