PLCOpenEditor.py
changeset 411 9ab97d517ae8
parent 407 0a324a874981
child 431 c1c92d068ac5
equal deleted inserted replaced
410:e1d4e9a93186 411:9ab97d517ae8
   883 #                            File Menu Functions
   883 #                            File Menu Functions
   884 #-------------------------------------------------------------------------------
   884 #-------------------------------------------------------------------------------
   885 
   885 
   886     def RefreshFileMenu(self):
   886     def RefreshFileMenu(self):
   887         pass
   887         pass
       
   888 
       
   889     def ResetView(self):
       
   890         self.DeleteAllPages()
       
   891         self.VariablePanelIndexer.RemoveAllPanels()
       
   892         self.TypesTree.DeleteAllItems()
       
   893         self.InstancesTree.DeleteAllItems()
       
   894         self.LibraryTree.DeleteAllItems()
       
   895         self.Controler = None
   888 
   896 
   889     def OnCloseTabMenu(self, event):
   897     def OnCloseTabMenu(self, event):
   890         selected = self.TabsOpened.GetSelection()
   898         selected = self.TabsOpened.GetSelection()
   891         if selected >= 0:
   899         if selected >= 0:
   892             window = self.TabsOpened.GetPage(selected)
   900             window = self.TabsOpened.GetPage(selected)
  2476         # Open the filepath if defined
  2484         # Open the filepath if defined
  2477         if fileOpen is not None:
  2485         if fileOpen is not None:
  2478             # Create a new controller
  2486             # Create a new controller
  2479             self.Controler = PLCControler()
  2487             self.Controler = PLCControler()
  2480             self.Controler.OpenXMLFile(fileOpen)
  2488             self.Controler.OpenXMLFile(fileOpen)
       
  2489             self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
  2481         
  2490         
  2482         # Define PLCOpenEditor icon
  2491         # Define PLCOpenEditor icon
  2483         self.SetIcon(wx.Icon(os.path.join(CWD,"Images", "poe.ico"),wx.BITMAP_TYPE_ICO))
  2492         self.SetIcon(wx.Icon(os.path.join(CWD,"Images", "poe.ico"),wx.BITMAP_TYPE_ICO))
  2484 
  2493 
  2485         self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
  2494         self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
  2545         if self.Controler is not None and not self.CheckSaveBeforeClosing():
  2554         if self.Controler is not None and not self.CheckSaveBeforeClosing():
  2546             return
  2555             return
  2547         dialog = ProjectDialog(self)
  2556         dialog = ProjectDialog(self)
  2548         if dialog.ShowModal() == wx.ID_OK:
  2557         if dialog.ShowModal() == wx.ID_OK:
  2549             properties = dialog.GetValues()
  2558             properties = dialog.GetValues()
       
  2559             self.ResetView()
  2550             self.Controler = PLCControler()
  2560             self.Controler = PLCControler()
  2551             self.Controler.CreateNewProject(properties)
  2561             self.Controler.CreateNewProject(properties)
  2552             self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, 
  2562             self._Refresh(TITLE, FILEMENU, EDITMENU, TYPESTREE, INSTANCESTREE, 
  2553                           LIBRARYTREE)
  2563                           LIBRARYTREE)
  2554         event.Skip()
  2564         event.Skip()
  2565             directory = os.getcwd()
  2575             directory = os.getcwd()
  2566         dialog = wx.FileDialog(self, _("Choose a file"), directory, "",  _("PLCOpen files (*.xml)|*.xml|All files|*.*"), wx.OPEN)
  2576         dialog = wx.FileDialog(self, _("Choose a file"), directory, "",  _("PLCOpen files (*.xml)|*.xml|All files|*.*"), wx.OPEN)
  2567         if dialog.ShowModal() == wx.ID_OK:
  2577         if dialog.ShowModal() == wx.ID_OK:
  2568             filepath = dialog.GetPath()
  2578             filepath = dialog.GetPath()
  2569             if os.path.isfile(filepath):
  2579             if os.path.isfile(filepath):
  2570                 self.DeleteAllPages()
  2580                 self.ResetView()
  2571                 self.VariablePanelIndexer.RemoveAllPanels()
       
  2572                 self.Controler = PLCControler()
  2581                 self.Controler = PLCControler()
  2573                 self.Controler.OpenXMLFile(filepath)
  2582                 self.Controler.OpenXMLFile(filepath)
  2574                 self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
  2583                 self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
  2575             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  2584             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  2576         dialog.Destroy()
  2585         dialog.Destroy()
  2577         event.Skip()
  2586         event.Skip()
  2578     
  2587     
  2579     def OnCloseProjectMenu(self, event):
  2588     def OnCloseProjectMenu(self, event):
  2580         if not self.CheckSaveBeforeClosing():
  2589         if not self.CheckSaveBeforeClosing():
  2581             return
  2590             return
  2582         self.DeleteAllPages()
  2591         self.ResetView()
  2583         self.VariablePanelIndexer.RemoveAllPanels()
       
  2584         self.TypesTree.DeleteAllItems()
       
  2585         self.InstancesTree.DeleteAllItems()
       
  2586         self.LibraryTree.DeleteAllItems()
       
  2587         self.Controler = None
       
  2588         self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  2592         self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  2589         event.Skip()
  2593         event.Skip()
  2590 
  2594 
  2591     def OnSaveProjectMenu(self, event):
  2595     def OnSaveProjectMenu(self, event):
  2592         self.SaveProject()
  2596         self.SaveProject()