PMCsvImport.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. include("scripts/EAction.js");
  2. include("scripts/simple.js");
  3. include("scripts/Common/DrawPM.js")
  4. function PMCsvImport(guiAction) {
  5. EAction.call(this, guiAction);
  6. this.ratio = 1.0;
  7. }
  8. PMCsvImport.prototype = new EAction();
  9. PMCsvImport.includeBasePath = includeBasePath;
  10. PMCsvImport.prototype.beginEvent = function () {
  11. EAction.prototype.beginEvent.call(this);
  12. var appWin = EAction.getMainWindow();
  13. if (RSettings.getStringValue("OpenProject/Current", "") == "") {
  14. QMessageBox.critical(appWin, qsTr("提示"), qsTr("请先选择工程路径"));
  15. return;
  16. }
  17. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  18. EAction.handleUserMessage("current project:" + lastOpenFileDir);
  19. var filterAll = qsTr("csv文件") + " (*.csv);";
  20. var fileDialog = new QFileDialog(appWin, qsTr("请选择平面表格文件"), lastOpenFileDir, "");
  21. fileDialog.setNameFilters([filterAll]);
  22. fileDialog.selectNameFilter(filterAll);
  23. fileDialog.setOption(QFileDialog.DontUseNativeDialog, getDontUseNativeDialog());
  24. fileDialog.fileMode = QFileDialog.ExistingFiles;
  25. if (!fileDialog.exec()) {
  26. destr(fileDialog);
  27. EAction.activateMainWindow();
  28. this.terminate();
  29. return;
  30. }
  31. var files = fileDialog.selectedFiles();
  32. if (files.length === 0) {
  33. destr(fileDialog);
  34. EAction.activateMainWindow();
  35. this.terminate();
  36. return;
  37. }
  38. destr(fileDialog);
  39. EAction.activateMainWindow();
  40. try {
  41. for (var i = 0; i < files.length; i++) {
  42. this.convert(files[i]);
  43. var fileName = files[i].substring(0, files[i].lastIndexOf(".")) + ".pm";
  44. var filePM = new DrawPM(fileName, this.ratio, 2);
  45. filePM.applyDrawing();
  46. if (true) {
  47. var tmp = RSettings.getStringValue("OpenDisplayFile/PMFile", "");
  48. RSettings.setValue("OpenDisplayFile/PMFile", tmp + "," + fileName);
  49. }
  50. }
  51. } catch (error) {
  52. EAction.handleUserMessage("load PM file, ERROR: " + error.toString());
  53. }
  54. };
  55. PMCsvImport.prototype.convert = function (filename) {
  56. var process = new QProcess;
  57. // EAction.handleUserMessage(PMCsvImport.includeBasePath + "/csv2pm.exe");
  58. process.setProgram(PMCsvImport.includeBasePath + "/csv2pm.exe");
  59. var args = [];
  60. args.push(filename);
  61. process.setArguments(args);
  62. process.start();
  63. process.waitForStarted(); //等待程序启动
  64. process.waitForFinished(-1);//等待程序关闭
  65. // EAction.handleUserMessage(PMCsvImport.includeBasePath + "/csv2pm.exe");
  66. return true;
  67. };