ZDMCsvImport.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. include("scripts/EAction.js");
  2. include("scripts/simple.js");
  3. include("scripts/Common/DrawingUtils.js");
  4. include("scripts/Common/CsvToZdmConvert.js")
  5. include("scripts/Common/DrawZdmAll.js");
  6. /**
  7. * \ingroup ecma_misc_examples_ioexamples
  8. * \class ExTxtImport
  9. * This action reads an XML file and outputs information to stderr.
  10. * This can be used as starting point for XML importers.
  11. */
  12. function ZDMCsvImport(guiAction) {
  13. EAction.call(this, guiAction);
  14. // 绘图比例
  15. this.ratio = 10.0;
  16. }
  17. ZDMCsvImport.prototype = new EAction();
  18. ZDMCsvImport.includeBasePath = includeBasePath;
  19. ZDMCsvImport.prototype.beginEvent = function () {
  20. EAction.prototype.beginEvent.call(this);
  21. try {
  22. var appWin = EAction.getMainWindow();
  23. if (RSettings.getStringValue("OpenProject/Current", "") == "") {
  24. QMessageBox.critical(appWin, qsTr("提示"), qsTr("请先选择工程路径"));
  25. return;
  26. }
  27. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  28. var filterAll = qsTr("csv文件") + " (*.csv);"; //+ qsTr("All Files") + " (*)";
  29. var fileDialog = new QFileDialog(appWin, qsTr("请选择纵断面表格文件"), lastOpenFileDir, "");
  30. fileDialog.setNameFilters([filterAll]);
  31. fileDialog.selectNameFilter(filterAll);
  32. fileDialog.setOption(QFileDialog.DontUseNativeDialog, getDontUseNativeDialog());
  33. fileDialog.fileMode = QFileDialog.ExistingFiles;
  34. if (!fileDialog.exec()) {
  35. destr(fileDialog);
  36. EAction.activateMainWindow();
  37. this.terminate();
  38. return;
  39. }
  40. var files = fileDialog.selectedFiles();
  41. if (files.length === 0) {
  42. destr(fileDialog);
  43. EAction.activateMainWindow();
  44. this.terminate();
  45. return;
  46. }
  47. destr(fileDialog);
  48. EAction.activateMainWindow();
  49. var fileName = files[0];
  50. EAction.handleUserMessage("Starting to load file: " + fileName);
  51. this.convert(fileName);
  52. } catch (error) {
  53. EAction.handleUserMessage("ZDMCsvImport.js, ERROR: " + error.toString());
  54. }
  55. };
  56. ZDMCsvImport.prototype.convert = function (csvFile) {
  57. try {
  58. // CSV => ZDM
  59. var convert = new CsvToZdmConvert(csvFile);
  60. convert.convert();
  61. var zdmFile = convert.getZdmFileName();
  62. // 图层
  63. var layername = getLayername("CSV>ZDM", csvFile);
  64. // 绘制ZDM
  65. var drawZdmAll = new DrawZdmAll(this.ratio);
  66. var path = RSettings.getStringValue("OpenProject/Current", "");
  67. var dmxFile = path + "/诸城南-五莲北.DMX";
  68. var ctrFile = dmxFile.replace(/.\w+$/i, ".CTR");
  69. drawZdmAll.applyPainting(layername, dmxFile, zdmFile, ctrFile, false);
  70. if (true) {
  71. var tmp = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
  72. RSettings.setValue("OpenDisplayFile/ZDMFile", tmp + "," + zdmFile);
  73. }
  74. } catch (error) {
  75. EAction.handleUserMessage("ZDMCsvImport.js, ERROR: " + error.toString());
  76. }
  77. return true;
  78. };