ProjectController.py
changeset 757 3151495ae5bb
parent 754 a8c258f7bdcf
child 758 699a7bad5a8c
equal deleted inserted replaced
756:35cd28825be7 757:3151495ae5bb
   227                 self.AppFrame.RefreshTitle()
   227                 self.AppFrame.RefreshTitle()
   228                 self.AppFrame.RefreshFileMenu()
   228                 self.AppFrame.RefreshFileMenu()
   229                 self.AppFrame.RefreshPageTitles()
   229                 self.AppFrame.RefreshPageTitles()
   230                 return True
   230                 return True
   231         return False
   231         return False
       
   232     
       
   233     def _getProjectFilesPath(self):
       
   234         projectfiles_path = os.path.join(self.GetProjectPath(), "project_files")
       
   235         if not os.path.exists(projectfiles_path):
       
   236             os.mkdir(projectfiles_path)
       
   237         return projectfiles_path
   232     
   238     
   233     def NewProject(self, ProjectPath, BuildPath=None):
   239     def NewProject(self, ProjectPath, BuildPath=None):
   234         """
   240         """
   235         Create a new project in an empty folder
   241         Create a new project in an empty folder
   236         @param ProjectPath: path of the folder where project have to be created
   242         @param ProjectPath: path of the folder where project have to be created
  1356         if self._connector.MatchMD5(MD5):
  1362         if self._connector.MatchMD5(MD5):
  1357             self.logger.write(
  1363             self.logger.write(
  1358                 _("Latest build already matches current target. Transfering anyway...\n"))
  1364                 _("Latest build already matches current target. Transfering anyway...\n"))
  1359 
  1365 
  1360         # Get temprary directory path
  1366         # Get temprary directory path
  1361         extrafilespath = self._getExtraFilesPath()
  1367         extrafiles = []
  1362         extrafiles = [(name, open(os.path.join(extrafilespath, name), 
  1368         for extrafilespath in [self._getExtraFilesPath(),
       
  1369                                self._getProjectFilesPath()]:
       
  1370         
       
  1371             extrafiles.extend(
       
  1372                      [(name, open(os.path.join(extrafilespath, name), 
  1363                                   'rb').read()) \
  1373                                   'rb').read()) \
  1364                       for name in os.listdir(extrafilespath) \
  1374                       for name in os.listdir(extrafilespath)])
  1365                       if not name=="CVS"]
  1375         
  1366 
       
  1367         # Send PLC on target
  1376         # Send PLC on target
  1368         builder = self.GetBuilder()
  1377         builder = self.GetBuilder()
  1369         if builder is not None:
  1378         if builder is not None:
  1370             data = builder.GetBinaryCode()
  1379             data = builder.GetBinaryCode()
  1371             if data is not None :
  1380             if data is not None :
  1380                     self.logger.write_error(_("Transfer failed\n"))
  1389                     self.logger.write_error(_("Transfer failed\n"))
  1381             else:
  1390             else:
  1382                 self.logger.write_error(_("No PLC to transfer (did build succeed ?)\n"))
  1391                 self.logger.write_error(_("No PLC to transfer (did build succeed ?)\n"))
  1383 
  1392 
  1384         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1393         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
       
  1394 
       
  1395     def _ImportProjectFile(self):
       
  1396         dialog = wx.FileDialog(self.AppFrame, _("Choose a file"), os.getcwd(), "",  _("All files|*.*"), wx.OPEN)
       
  1397         if dialog.ShowModal() == wx.ID_OK:
       
  1398             filepath = dialog.GetPath()
       
  1399             if os.path.isfile(filepath):
       
  1400                 shutil.copy(filepath, self._getProjectFilesPath())
       
  1401             else:
       
  1402                 self.logger.write_error(_("No such file: %s\n") % filepath)
       
  1403         dialog.Destroy()  
  1385 
  1404 
  1386     StatusMethods = [
  1405     StatusMethods = [
  1387         {"bitmap" : "Build",
  1406         {"bitmap" : "Build",
  1388          "name" : _("Build"),
  1407          "name" : _("Build"),
  1389          "tooltip" : _("Build project into build folder"),
  1408          "tooltip" : _("Build project into build folder"),
  1427     ConfNodeMethods = [
  1446     ConfNodeMethods = [
  1428         {"bitmap" : "editIECrawcode",
  1447         {"bitmap" : "editIECrawcode",
  1429          "name" : _("Raw IEC code"),
  1448          "name" : _("Raw IEC code"),
  1430          "tooltip" : _("Edit raw IEC code added to code generated by PLCGenerator"),
  1449          "tooltip" : _("Edit raw IEC code added to code generated by PLCGenerator"),
  1431          "method" : "_editIECrawcode"},
  1450          "method" : "_editIECrawcode"},
       
  1451         {"bitmap" : "ImportFile",
       
  1452          "name" : _("Import file"),
       
  1453          "tooltip" : _("Import into project a file to be transfered with PLC"),
       
  1454          "method" : "_ImportProjectFile"},
  1432     ]
  1455     ]
  1433 
  1456 
  1434 
  1457 
  1435     def EnableMethod(self, method, value):
  1458     def EnableMethod(self, method, value):
  1436         for d in self.StatusMethods:
  1459         for d in self.StatusMethods: