PLCOpenEditor.py
changeset 311 3e22e53878b8
parent 309 aef88ffa5fbc
child 313 9266d1e6e3d4
equal deleted inserted replaced
310:ccb47adebe80 311:3e22e53878b8
  1655                 new_id = wx.NewId()
  1655                 new_id = wx.NewId()
  1656                 AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Program")
  1656                 AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Program")
  1657                 self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), id=new_id)
  1657                 self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), id=new_id)
  1658                 menu.AppendMenu(wx.NewId(), "Change POU Type To", change_menu)
  1658                 menu.AppendMenu(wx.NewId(), "Change POU Type To", change_menu)
  1659             new_id = wx.NewId()
  1659             new_id = wx.NewId()
       
  1660             AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Rename")
       
  1661             self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, id=new_id)
       
  1662             self.PopupMenu(menu)
       
  1663             new_id = wx.NewId()
  1660             AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Delete")
  1664             AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Delete")
  1661             self.Bind(wx.EVT_MENU, self.OnRemovePouMenu, id=new_id)
  1665             self.Bind(wx.EVT_MENU, self.OnRemovePouMenu, id=new_id)
  1662             self.PopupMenu(menu)
  1666             self.PopupMenu(menu)
  1663         elif type == ITEM_CONFIGURATION:
  1667         elif type == ITEM_CONFIGURATION:
  1664             menu = wx.Menu(title='')
  1668             menu = wx.Menu(title='')
  2210             dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug))
  2214             dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug))
  2211             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(debug = self.Debug))
  2215             dialog.SetPouElementNames(self.Controler.GetProjectPouVariables(debug = self.Debug))
  2212             if dialog.ShowModal() == wx.ID_OK:
  2216             if dialog.ShowModal() == wx.ID_OK:
  2213                 values = dialog.GetValues()
  2217                 values = dialog.GetValues()
  2214                 self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
  2218                 self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
       
  2219                 selected = self.TabsOpened.GetSelection()
       
  2220                 if selected != -1:
       
  2221                     self.TabsOpened.GetPage(selected).RefreshView()
  2215                 self.RefreshTitle()
  2222                 self.RefreshTitle()
  2216                 self.RefreshEditMenu()
  2223                 self.RefreshEditMenu()
  2217                 self.RefreshTypesTree()
  2224                 self.RefreshTypesTree()
  2218                 self.RefreshLibraryTree()
  2225                 self.RefreshLibraryTree()
  2219             dialog.Destroy()
  2226             dialog.Destroy()
  2327                 self.RefreshToolBar()
  2334                 self.RefreshToolBar()
  2328             else:
  2335             else:
  2329                 message = wx.MessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wx.OK|wx.ICON_ERROR)
  2336                 message = wx.MessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wx.OK|wx.ICON_ERROR)
  2330                 message.ShowModal()
  2337                 message.ShowModal()
  2331                 message.Destroy()
  2338                 message.Destroy()
       
  2339         event.Skip()
       
  2340 
       
  2341     def OnRenamePouMenu(self, event):
       
  2342         selected = self.TypesTree.GetSelection()
       
  2343         if self.TypesTree.GetPyData(selected) == ITEM_POU: 
       
  2344             wx.CallAfter(self.TypesTree.EditLabel, selected)
  2332         event.Skip()
  2345         event.Skip()
  2333 
  2346 
  2334     def OnRemovePouMenu(self, event):
  2347     def OnRemovePouMenu(self, event):
  2335         selected = self.TypesTree.GetSelection()
  2348         selected = self.TypesTree.GetSelection()
  2336         if self.TypesTree.GetPyData(selected) == ITEM_POU: 
  2349         if self.TypesTree.GetPyData(selected) == ITEM_POU: 
  4148 
  4161 
  4149     def RefreshButtons(self):
  4162     def RefreshButtons(self):
  4150         if getattr(self, "Table", None):
  4163         if getattr(self, "Table", None):
  4151             table_length = len(self.Table.data)
  4164             table_length = len(self.Table.data)
  4152             row_class = None
  4165             row_class = None
  4153             if table_length and self.PouIsUsed:
  4166             row_edit = True
       
  4167             if table_length > 0:
  4154                 row = self.VariablesGrid.GetGridCursorRow()
  4168                 row = self.VariablesGrid.GetGridCursorRow()
  4155                 row_class = self.Table.GetValueByName(row, "Class")
  4169                 row_edit = self.Table.GetValueByName(row, "Edit")
       
  4170                 if self.PouIsUsed:
       
  4171                     row_class = self.Table.GetValueByName(row, "Class")
  4156             self.AddButton.Enable(not self.PouIsUsed or self.Filter not in ["Interface", "Input", "Output", "InOut"])
  4172             self.AddButton.Enable(not self.PouIsUsed or self.Filter not in ["Interface", "Input", "Output", "InOut"])
  4157             self.DeleteButton.Enable(table_length > 0 and row_class not in ["Input", "Output", "InOut"])
  4173             self.DeleteButton.Enable(table_length > 0 and row_edit and row_class not in ["Input", "Output", "InOut"])
  4158             self.UpButton.Enable(table_length > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
  4174             self.UpButton.Enable(table_length > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
  4159             self.DownButton.Enable(table_length > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
  4175             self.DownButton.Enable(table_length > 0 and self.Filter == "All" and row_class not in ["Input", "Output", "InOut"])
  4160 
  4176 
  4161     def OnAddButton(self, event):
  4177     def OnAddButton(self, event):
  4162         new_row = self.DefaultValue.copy()
  4178         new_row = self.DefaultValue.copy()