diff -r cdc6393705ce -r 6f0e10085df9 ProjectController.py --- a/ProjectController.py Mon Jun 25 20:05:29 2012 +0200 +++ b/ProjectController.py Thu Jun 28 12:07:21 2012 +0200 @@ -17,6 +17,7 @@ from util.misc import CheckPathPerm, GetClassImporter from util.MiniTextControler import MiniTextControler from util.ProcessLogger import ProcessLogger +from util.FileManagementPanel import FileManagementPanel from PLCControler import PLCControler from TextViewer import TextViewer from plcopen.structures import IEC_KEYWORDS @@ -24,6 +25,7 @@ from util.discovery import DiscoveryDialog from ConfigTreeNode import ConfigTreeNode from ProjectNodeEditor import ProjectNodeEditor +from utils.BitmapLibrary import GetBitmap base_folder = os.path.split(sys.path[0])[0] @@ -932,14 +934,18 @@ _IECRawCodeView = None def _editIECrawcode(self): self._OpenView("IEC raw code") - - def _OpenView(self, name=None): + + _ProjectFilesView = None + def _OpenProjectFiles(self): + self._OpenView("Project files") + + def _OpenView(self, name=None, onlyopened=False): if name == "IEC code": - if self._IEC_code_viewer is None: + if self._IECCodeView is None: plc_file = self._getIECcodepath() self._IECCodeView = TextViewer(self.AppFrame.TabsOpened, "", None, None, instancepath=name) - #self._IECCodeViewr.Enable(False) + #self._IECCodeView.Enable(False) self._IECCodeView.SetTextSyntax("ALL") self._IECCodeView.SetKeywords(IEC_KEYWORDS) try: @@ -947,29 +953,46 @@ except: text = '(* No IEC code have been generated at that time ! *)' self._IECCodeView.SetText(text = text) - self._IECCodeView.SetIcon(self.AppFrame.GenerateBitmap("ST")) - + self._IECCodeView.SetIcon(GetBitmap("ST")) + self.AppFrame.EditProjectElement(self._IECCodeView, name) - + + elif onlyopened: + self.AppFrame.EditProjectElement(self._IECCodeView, name, onlyopened) + return self._IECCodeView elif name == "IEC raw code": - if self.IEC_raw_code_viewer is None: + if self._IECRawCodeView is None: controler = MiniTextControler(self._getIECrawcodepath()) - self.IEC_raw_code_viewer = TextViewer(self.AppFrame.TabsOpened, "", None, controler, instancepath=name) - #self.IEC_raw_code_viewer.Enable(False) - self.IEC_raw_code_viewer.SetTextSyntax("ALL") - self.IEC_raw_code_viewer.SetKeywords(IEC_KEYWORDS) - self.IEC_raw_code_viewer.RefreshView() - self.IEC_raw_code_viewer.SetIcon(self.AppFrame.GenerateBitmap("ST")) + self._IECRawCodeView = TextViewer(self.AppFrame.TabsOpened, "", None, controler, instancepath=name) + #self._IECRawCodeView.Enable(False) + self._IECRawCodeView.SetTextSyntax("ALL") + self._IECRawCodeView.SetKeywords(IEC_KEYWORDS) + self._IECRawCodeView.RefreshView() + self._IECRawCodeView.SetIcon(GetBitmap("ST")) - self.AppFrame.EditProjectElement(self.IEC_raw_code_viewer, name) - - return self.IEC_raw_code_viewer - + self.AppFrame.EditProjectElement(self._IECRawCodeView, name) + + elif onlyopened: + self.AppFrame.EditProjectElement(self._IECRawCodeView, name, onlyopened) + + return self._IECRawCodeView + + elif name == "Project files": + if self._ProjectFilesView is None: + self._ProjectFilesView = FileManagementPanel(self.AppFrame.TabsOpened, self, name, self._getProjectFilesPath(), True) + + self.AppFrame.EditProjectElement(self._ProjectFilesView, name) + + elif onlyopened: + self.AppFrame.EditProjectElement(self._ProjectFilesView, name, onlyopened) + + return self._ProjectFilesView + else: - return ConfigTreeNode._OpenView(self, name) + return ConfigTreeNode._OpenView(self, name, onlyopened) def OnCloseEditor(self, view): ConfigTreeNode.OnCloseEditor(self, view) @@ -977,6 +1000,8 @@ self._IECCodeView = None if self._IECRawCodeView == view: self._IECRawCodeView = None + if self._ProjectFilesView == view: + self._ProjectFilesView = None def _Clean(self): self._CloseView(self._IECCodeView) @@ -1414,16 +1439,6 @@ wx.CallAfter(self.UpdateMethodsFromPLCStatus) - def _ImportProjectFile(self): - dialog = wx.FileDialog(self.AppFrame, _("Choose a file"), os.getcwd(), "", _("All files|*.*"), wx.OPEN) - if dialog.ShowModal() == wx.ID_OK: - filepath = dialog.GetPath() - if os.path.isfile(filepath): - shutil.copy(filepath, self._getProjectFilesPath()) - else: - self.logger.write_error(_("No such file: %s\n") % filepath) - dialog.Destroy() - StatusMethods = [ {"bitmap" : "Build", "name" : _("Build"), @@ -1470,10 +1485,10 @@ "name" : _("Raw IEC code"), "tooltip" : _("Edit raw IEC code added to code generated by PLCGenerator"), "method" : "_editIECrawcode"}, - {"bitmap" : "ImportFile", - "name" : _("Import file"), - "tooltip" : _("Import into project a file to be transfered with PLC"), - "method" : "_ImportProjectFile"}, + {"bitmap" : "ManageFolder", + "name" : _("Project Files"), + "tooltip" : _("Open a file explorer to manage project files"), + "method" : "_OpenProjectFiles"}, ]