VariablePanel.py
changeset 561 5c8fa95eb834
parent 556 69214983dd03
child 564 5024d42e1050
equal deleted inserted replaced
560:3757f0de0d07 561:5c8fa95eb834
   683             self.AddButton.Enable(not self.PouIsUsed or self.Filter not in ["Interface", "Input", "Output", "InOut"])
   683             self.AddButton.Enable(not self.PouIsUsed or self.Filter not in ["Interface", "Input", "Output", "InOut"])
   684             self.DeleteButton.Enable(table_length > 0 and row_edit and row_class not in ["Input", "Output", "InOut"])
   684             self.DeleteButton.Enable(table_length > 0 and row_edit and row_class not in ["Input", "Output", "InOut"])
   685             self.UpButton.Enable(table_length > 0 and row > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
   685             self.UpButton.Enable(table_length > 0 and row > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
   686             self.DownButton.Enable(table_length > 0 and row < table_length - 1 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
   686             self.DownButton.Enable(table_length > 0 and row < table_length - 1 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
   687 
   687 
       
   688     def CloseVariablesGridEditControl(self):
       
   689         row = self.VariablesGrid.GetGridCursorRow()
       
   690         col = self.VariablesGrid.GetGridCursorCol()
       
   691         self.VariablesGrid.SetGridCursor(row, col)
       
   692 
   688     def OnAddButton(self, event):
   693     def OnAddButton(self, event):
       
   694         self.CloseVariablesGridEditControl()
   689         new_row = self.DefaultValue.copy()
   695         new_row = self.DefaultValue.copy()
   690         if self.Filter in self.DefaultTypes:
   696         if self.Filter in self.DefaultTypes:
   691             new_row["Class"] = self.DefaultTypes[self.Filter]
   697             new_row["Class"] = self.DefaultTypes[self.Filter]
   692         else:
   698         else:
   693             new_row["Class"] = self.Filter
   699             new_row["Class"] = self.Filter
   701         self.RefreshValues(row_index)
   707         self.RefreshValues(row_index)
   702         self.RefreshButtons()
   708         self.RefreshButtons()
   703         event.Skip()
   709         event.Skip()
   704 
   710 
   705     def OnDeleteButton(self, event):
   711     def OnDeleteButton(self, event):
   706         row = self.Table.GetRow(self.VariablesGrid.GetGridCursorRow())
   712         self.CloseVariablesGridEditControl()
   707         self.Values.remove(row)
   713         row_index = self.Table.GetRow(self.VariablesGrid.GetGridCursorRow())
       
   714         self.Values.remove(row_index)
   708         self.SaveValues()
   715         self.SaveValues()
   709         self.RefreshValues()
   716         self.RefreshValues(row_index)
   710         self.RefreshButtons()
   717         self.RefreshButtons()
   711         event.Skip()
   718         event.Skip()
   712 
   719 
   713     def OnUpButton(self, event):
   720     def OnUpButton(self, event):
       
   721         self.CloseVariablesGridEditControl()
   714         self.MoveValue(self.VariablesGrid.GetGridCursorRow(), -1)
   722         self.MoveValue(self.VariablesGrid.GetGridCursorRow(), -1)
   715         self.RefreshButtons()
   723         self.RefreshButtons()
   716         event.Skip()
   724         event.Skip()
   717 
   725 
   718     def OnDownButton(self, event):
   726     def OnDownButton(self, event):
       
   727         self.CloseVariablesGridEditControl()
   719         self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1)
   728         self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1)
   720         self.RefreshButtons()
   729         self.RefreshButtons()
   721         event.Skip()
   730         event.Skip()
   722 
   731 
   723     def OnVariablesGridCellChange(self, event):
   732     def OnVariablesGridCellChange(self, event):
   878             self.SaveValues()
   887             self.SaveValues()
   879             self.RefreshValues()
   888             self.RefreshValues()
   880             self.VariablesGrid.SetGridCursor(new_index, self.VariablesGrid.GetGridCursorCol())
   889             self.VariablesGrid.SetGridCursor(new_index, self.VariablesGrid.GetGridCursorCol())
   881         
   890         
   882     def RefreshValues(self, select=0):
   891     def RefreshValues(self, select=0):
   883         if len(self.Table.data) > 0:
       
   884             self.VariablesGrid.SetGridCursor(0, 1)
       
   885         data = []
   892         data = []
   886         for num, variable in enumerate(self.Values):
   893         for num, variable in enumerate(self.Values):
   887             if variable["Class"] in self.ClassList:
   894             if variable["Class"] in self.ClassList:
   888                 variable["Number"] = num + 1
   895                 variable["Number"] = num + 1
   889                 data.append(variable)
   896                 data.append(variable)
   890         self.Table.SetData(data)
   897         self.Table.SetData(data)
       
   898         self.Table.ResetView(self.VariablesGrid)
   891         if len(self.Table.data) > 0:
   899         if len(self.Table.data) > 0:
   892             if select == -1:
   900             if select == -1:
   893                 select = len(self.Table.data) - 1
   901                 select = len(self.Table.data) - 1
   894             self.VariablesGrid.SetGridCursor(select, 1)
   902             else:
   895             self.VariablesGrid.MakeCellVisible(select, 1)
   903                 select = min(select, len(self.Table.data) - 1)
   896         self.Table.ResetView(self.VariablesGrid)
   904             col = max(1, self.VariablesGrid.GetGridCursorCol())
   897 
   905             self.VariablesGrid.SetGridCursor(select, col)
       
   906             self.VariablesGrid.MakeCellVisible(select, col)
       
   907             self.VariablesGrid.SetFocus()
       
   908         
   898     def SaveValues(self, buffer = True):
   909     def SaveValues(self, buffer = True):
   899         words = self.TagName.split("::")
   910         words = self.TagName.split("::")
   900         if self.ElementType == "config":
   911         if self.ElementType == "config":
   901             self.Controler.SetConfigurationGlobalVars(words[1], self.Values)
   912             self.Controler.SetConfigurationGlobalVars(words[1], self.Values)
   902         elif self.ElementType == "resource":
   913         elif self.ElementType == "resource":