ZDMOptimize.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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/OptimizeConvert.js")
  6. include("scripts/Common/FileZDM.js")
  7. include("scripts/Common/DrawZdmAll.js");
  8. function ZDMOptimize(guiAction) {
  9. EAction.call(this, guiAction);
  10. this.zdmsel = false;
  11. this.ratio = 10.0;
  12. this.selectLineDialog = undefined;
  13. }
  14. ZDMOptimize.prototype = new EAction();
  15. ZDMOptimize.includeBasePath = includeBasePath;
  16. ZDMOptimize.prototype.beginEvent = function () {
  17. EAction.prototype.beginEvent.call(this);
  18. var appWin = EAction.getMainWindow();
  19. this.selectLineDialog = this.createWidget(ZDMOptimize.includeBasePath + "/SelectLineDialog.ui", appWin);
  20. var zdmWidget = this.selectLineDialog.findChild("zdmWidget");
  21. var opBtn = this.selectLineDialog.findChild("opBtn");
  22. var exitBtn = this.selectLineDialog.findChild("exitBtn");
  23. opBtn.clicked.connect(this, this.opBtnClicked);
  24. exitBtn.clicked.connect(this, this.exitBtnClicked);
  25. this.btngrp2 = new QButtonGroup(zdmWidget);
  26. var allZDMFile = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
  27. var zdmList = allZDMFile.split(',');
  28. this.zdms = new Array();
  29. for (var i = 0; i < zdmList.length; i++) {
  30. if (zdmList[i] == "") continue;
  31. if (this.zdms.length > 0) {
  32. if (this.zdms.find(zdmList[i])) continue;
  33. }
  34. this.zdms.push(zdmList[i]);
  35. }
  36. if(this.zdms.length == 0) {
  37. opBtn.setEnabled(false);
  38. }
  39. for (var i = 0; i < this.zdms.length; i++) {
  40. var zdmFile = new QRadioButton(this.zdms[i], zdmWidget);
  41. zdmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  42. this.btngrp2.addButton(zdmFile, i);
  43. zdmFile.clicked.connect(this, this.zdmClicked);
  44. }
  45. if (!this.selectLineDialog.exec()) {
  46. EAction.handleUserMessage("clicked~");
  47. destr(this.selectLineDialog);
  48. EAction.activateMainWindow();
  49. return undefined;
  50. }
  51. };
  52. ZDMOptimize.prototype.zdmClicked = function () {
  53. this.zdmsel = true;
  54. this.zdmid = this.btngrp2.checkedId();
  55. EAction.handleUserMessage(this.zdms[this.zdmid]);
  56. };
  57. ZDMOptimize.prototype.opBtnClicked = function () {
  58. try {
  59. if (!this.zdmsel) {
  60. var appWin = EAction.getMainWindow();
  61. QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
  62. return;
  63. }
  64. // 模拟优化过程
  65. var optimize = new OptimizeConvert("纵断面");
  66. optimize.exec();
  67. // 图层
  68. var layername = "ZDM-OPTIMIZE" + Math.floor(Math.random() * 100); // getLayername("ZDM-OPTIMIZE", "");
  69. // 开始绘画
  70. var path = RSettings.getStringValue("OpenProject/Current", "");
  71. var convert = new CsvToZdmConvert(path + "/Output_data/最优纵断面参数.csv");
  72. convert.convert();
  73. var zdmFile = convert.getZdmFileName();
  74. var drawZdmAll = new DrawZdmAll(this.ratio);
  75. var dmxFile = path + "/Output_data/DMX.csv"
  76. var ctrFile = dmxFile.replace(/.\w+$/i, ".CTR");
  77. drawZdmAll.applyPainting(layername, dmxFile, zdmFile, ctrFile, false);
  78. // 关闭弹框
  79. this.exitBtnClicked();
  80. } catch (error) {
  81. EAction.handleUserMessage("ZDMOptimize.js, ERROR: " + error.toString());
  82. }
  83. };
  84. ZDMOptimize.prototype.exitBtnClicked = function () {
  85. if (this.selectLineDialog) {
  86. destr(this.selectLineDialog);
  87. }
  88. };