SetArguments-demo.js 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  1. /**
  2. * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
  3. *
  4. * This file is part of the QCAD project.
  5. *
  6. * QCAD is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * QCAD is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with QCAD.
  18. */
  19. include("scripts/EAction.js");
  20. include("scripts/File/File.js");
  21. include("../PM/PM.js")
  22. include("../ZDM/ZDM.js")
  23. SetArguments.readmeFile = "readme.txt";
  24. function SetArguments(guiAction) {
  25. EAction.call(this, guiAction);
  26. this.pmsel = false;
  27. this.zdmsel = false;
  28. // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  29. // var lastOpenFileDir = SetArguments.includeBasePath + "/../../../project/" + lastOpenFile + "/para.ini";
  30. }
  31. SetArguments.prototype = new EAction();
  32. SetArguments.includeBasePath = includeBasePath;
  33. SetArguments.prototype.beginEvent = function () {
  34. EAction.prototype.beginEvent.call(this);
  35. // EAction.handleUserMessage("start show widget");
  36. var appWin = EAction.getMainWindow();
  37. if(RSettings.getStringValue("OpenProject/Current","") == ""){
  38. QMessageBox.critical(appWin,
  39. qsTr("提示"),
  40. qsTr("请先选择工程路径"));
  41. return;
  42. }
  43. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation()) + "/para.ini";
  44. // EAction.handleUserMessage(lastOpenFileDir);
  45. var file = new QFile(lastOpenFileDir);
  46. if(!file.exists()){
  47. QMessageBox.critical(EAction.getMainWindow(), qsTr("提示"),
  48. RSettings.getStringValue("OpenProject/Current","") + qsTr(" 工程下没有参数文件"));
  49. return;
  50. }
  51. this.iniFile = new QSettings(lastOpenFileDir, QSettings.IniFormat);
  52. // this.iniFile = new QSettings("D:/Project/para.ini", QSettings.IniFormat);
  53. this.standard_type = new Array();
  54. this.dialog = this.createWidget(SetArguments.includeBasePath + "/SetArgumentsDialog.ui", appWin);
  55. WidgetFactory.restoreState(this.dialog);
  56. this.resetClicked();
  57. //var iniConf = [];
  58. //iniConf = this.readNormalIniFile();
  59. //this.setNormalBox(iniConf);
  60. var childs = this.iniFile.childGroups();
  61. for(var i = 0; i < childs.length; i++){
  62. if(childs[i].indexOf("standard") != -1){
  63. this.standard_type.push(childs[i]);
  64. this.standard_type.push(this.iniFile.value("/" + childs[i].toString() + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  65. // EAction.handleUserMessage(this.iniFile.value("/" + childs[i] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  66. // EAction.handleUserMessage(childs[i]);
  67. }
  68. }
  69. // 速度
  70. this.select_type = this.standard_type[0];
  71. //this.resetClicked();
  72. // var design_speed = this.dialog.findChild("comboBox");
  73. // for(var i = 1; i < this.standard_type.length; i += 2){
  74. // design_speed.addItem(this.standard_type[i]);
  75. // }
  76. // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
  77. // var speedCfg = [];
  78. // speedCfg = this.readSpeedCfg();
  79. // this.setSpeedBox(speedCfg);
  80. // 恢复默认
  81. var resetBtn = this.dialog.findChild("resetBtn");
  82. resetBtn.clicked.connect(this, this.resetClicked);
  83. // 保存
  84. var saveBtn = this.dialog.findChild("saveBtn");
  85. saveBtn.clicked.connect(this, this.saveClicked);
  86. // 优化
  87. var optimizeBtn = this.dialog.findChild("optimizeBtn");
  88. optimizeBtn.clicked.connect(this, this.optimizeClicked);
  89. if (!this.dialog.exec()) {
  90. EAction.handleUserMessage("clicked~");
  91. destr(this.dialog);
  92. EAction.activateMainWindow();
  93. return undefined;
  94. }
  95. WidgetFactory.saveState(this.dialog);
  96. };
  97. SetArguments.prototype.optimizeClicked = function() {
  98. // 查找文件,显示出来
  99. // test:显示随便的数字
  100. var appWin = EAction.getMainWindow();
  101. var selectLineDialog = this.createWidget(SetArguments.includeBasePath + "/SelectLineDialog.ui", appWin);
  102. EAction.handleUserMessage("debug1");
  103. var radioWidget = selectLineDialog.findChild("widget");
  104. EAction.handleUserMessage("debug2");
  105. this.btngrp = new QButtonGroup(radioWidget);
  106. var r1 = new QRadioButton("aa", radioWidget);
  107. r1.setGeometry(10, 10, 100, 30);
  108. var r2 = new QRadioButton("cc", radioWidget);
  109. r2.setGeometry(10, 30, 100, 30);
  110. this.btngrp.addButton(r1, 0);
  111. this.btngrp.addButton(r2, 1);
  112. r1.clicked.connect(this,this.pmClicked);
  113. r2.clicked.connect(this,this.pmClicked);
  114. var rBtnMan = new QRadioButton("男", radioWidget);
  115. rBtnMan.setGeometry(30, 50, 100, 30);
  116. var rBtnWoman = new QRadioButton("111", radioWidget);
  117. rBtnWoman.setGeometry(30, 90, 100, 30);
  118. var rBtnUnknown = new QRadioButton("222", radioWidget);
  119. rBtnUnknown.setGeometry(30, 130, 100, 30);
  120. EAction.handleUserMessage("debug3");
  121. RSettings.setValue("ProjectImportFile/PMFile", ",aaa.pm");
  122. var tmp = RSettings.getStringValue("ProjectImportFile/PMFile", "");
  123. EAction.handleUserMessage(tmp);
  124. RSettings.setValue("ProjectImportFile/PMFile", tmp + ",bbb.pm");
  125. tmp = RSettings.getStringValue("ProjectImportFile/PMFile", "");
  126. EAction.handleUserMessage(tmp);
  127. var list = tmp.split(',');
  128. this.pms = new Array();
  129. // EAction.handleUserMessage(list);
  130. for(var i = 0; i < list.length; i++){
  131. if(list[i] == "") continue;
  132. this.pms.push(list[i]);
  133. EAction.handleUserMessage(list[i]);
  134. }
  135. if (!selectLineDialog.exec()) {
  136. EAction.handleUserMessage("clicked~");
  137. destr(selectLineDialog);
  138. EAction.activateMainWindow();
  139. return undefined;
  140. }
  141. }
  142. SetArguments.prototype.pmClicked = function() {
  143. var id = this.btngrp.checkedId();
  144. EAction.handleUserMessage(id.toString());
  145. EAction.handleUserMessage(this.pms[id]);
  146. }
  147. SetArguments.prototype.saveClicked = function() {
  148. this.iniFile.setValue("/parameter/batch_sizes",this.dialog.findChild("batch_sizes").text);
  149. this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
  150. this.iniFile.setValue("/parameter/learning_rate1",this.dialog.findChild("learning_rate1").text);
  151. this.iniFile.setValue("/parameter/iteration_times",this.dialog.findChild("iteration_times").text);
  152. this.iniFile.setValue("/parameter/discount_factor",this.dialog.findChild("discount_factor").text);
  153. this.iniFile.setValue("/parameter/d_k",this.dialog.findChild("d_k").text);
  154. this.iniFile.setValue("/parameter/d_line",this.dialog.findChild("d_line").text);
  155. this.iniFile.setValue("/parameter/forward_step",this.dialog.findChild("forward_step").text);
  156. this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
  157. this.iniFile.setValue("/parameter/range_p",this.dialog.findChild("range_p_x").text);
  158. this.iniFile.setValue("/parameter/range_g",this.dialog.findChild("range_g").text);
  159. this.iniFile.setValue("/parameter/range_k",this.dialog.findChild("range_k").text);
  160. this.iniFile.setValue("/parameter/range_c",this.dialog.findChild("range_c").text);
  161. this.iniFile.setValue("/parameter/range_v",this.dialog.findChild("range_v").text);
  162. this.iniFile.setValue("/parameter/range_e",this.dialog.findChild("range_e").text);
  163. this.iniFile.setValue("/weigth/hCostSlider",this.dialog.findChild("hCostSlider").text);
  164. this.iniFile.setValue("/weigth/hEcologySlider",this.dialog.findChild("hEcologySlider").text);
  165. this.iniFile.setValue("/weigth/vCostSlider",this.dialog.findChild("vCostSlider").text);
  166. EAction.handleUserMessage("Save File");
  167. };
  168. // 修改文件中的数据,保留注释
  169. SetArguments.prototype.saveData = function(){
  170. var file = new QFile(this.iniFile);
  171. var flags = makeQIODeviceOpenMode(QIODevice.WriteOnly, QIODevice.Text);
  172. if (file.open(flags)) {
  173. var textStream = new QTextStream(file);
  174. setUtf8Codec(textStream);
  175. // textStream.writeString(str);
  176. file.close();
  177. }
  178. };
  179. SetArguments.prototype.resetClicked = function(){
  180. var iniConf = [];
  181. iniConf = this.readNormalIniFile();
  182. this.setNormalBox(iniConf);
  183. // var speedCfg = [];
  184. // speedCfg = this.readSpeedCfg();
  185. // this.setSpeedBox(speedCfg);
  186. };
  187. SetArguments.prototype.selectSpeed = function(index){
  188. // EAction.handleUserMessage("index: " + index);
  189. // index*2 得到child的名字
  190. this.select_type = this.standard_type[index*2];
  191. // EAction.handleUserMessage("type:" + this.select_type);
  192. var special_speed = this.getStandardInfo(this.standard_type[index*2]);
  193. this.setSpeedBox(special_speed);
  194. }
  195. SetArguments.prototype.readNormalIniFile = function(){
  196. var ret = [];
  197. //#region 优化模型参数设置
  198. ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  199. ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  200. ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  201. ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  202. ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  203. ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  204. ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  205. ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  206. ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  207. ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  208. ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  209. ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  210. ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  211. ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  212. //#endregion
  213. //#region 铁路单位造价设置
  214. ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  215. ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  216. ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  217. ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  218. ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  219. ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  220. ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  221. ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  222. ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  223. ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  224. ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  225. ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  226. ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  227. // ret["farmland_layer_name"] = this.iniFile.value("/cost/farmland_layer_name").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  228. // ret["demolition_layer_name"] = this.iniFile.value("/cost/demolition_layer_name").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  229. ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  230. //#endregion
  231. //#region 生态
  232. ret["water"] = this.iniFile.value("/ecology/water").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  233. ret["voice"] = this.iniFile.value("/ecology/voice").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  234. ret["culture"] = this.iniFile.value("/ecology/culture").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  235. ret["animal"] = this.iniFile.value("/ecology/animal").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  236. ret["prewater"] = this.iniFile.value("/ecology/prewater").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  237. ret["traffic"] = this.iniFile.value("/ecology/traffic").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  238. ret["tree"] = this.iniFile.value("/ecology/tree").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  239. ret["air"] = this.iniFile.value("/ecology/air").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  240. ret["house"] = this.iniFile.value("/ecology/house").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  241. //#endregion
  242. //#region 速度
  243. ret["speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  244. ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  245. ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  246. ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  247. ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  248. ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  249. ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  250. ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  251. ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  252. ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  253. ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  254. //#endregion
  255. //#region 速度
  256. ret["hCostSlider"] = this.iniFile.value("/weigth/hCostSlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  257. ret["hEcologySlider"] = this.iniFile.value("/weigth/hEcologySlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  258. ret["vCostSlider"] = this.iniFile.value("/weigth/vCostSlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  259. //#endregion
  260. EAction.handleUserMessage("read ini finish");
  261. return ret;
  262. };
  263. SetArguments.prototype.setNormalBox = function(iniConf){
  264. var batch_sizes = this.dialog.findChild("batch_sizes");
  265. var learning_rate0 = this.dialog.findChild("learning_rate0");
  266. var learning_rate1 = this.dialog.findChild("learning_rate1");
  267. var iteration_times = this.dialog.findChild("iteration_times");
  268. var discount_factor = this.dialog.findChild("discount_factor");
  269. var range_p_x = this.dialog.findChild("range_p_x");
  270. var range_p_y = this.dialog.findChild("range_p_y");
  271. var range_g = this.dialog.findChild("range_g");
  272. var range_k = this.dialog.findChild("range_k");
  273. var range_c = this.dialog.findChild("range_c");
  274. var range_v = this.dialog.findChild("range_v");
  275. var range_e = this.dialog.findChild("range_e");
  276. var d_k= this.dialog.findChild("d_k");
  277. var d_line= this.dialog.findChild("d_line");
  278. var forward_step= this.dialog.findChild("forward_step");
  279. // slider
  280. var batchSlider = this.dialog.findChild("batchsizeSlider");
  281. var stepSlider = this.dialog.findChild("stepSlider");
  282. var iterationtimeSlider = this.dialog.findChild("iterationtimeSlider");
  283. var dkSlider = this.dialog.findChild("dkSlider");
  284. var rangecSlider = this.dialog.findChild("rangecSlider");
  285. var rangevSlider = this.dialog.findChild("rangevSlider");
  286. var rangeeSlider = this.dialog.findChild("rangeeSlider");
  287. // EAction.handleUserMessage("read ui");
  288. batch_sizes.textChanged.connect( function() {batchSlider.setValue(batch_sizes.text);} );
  289. forward_step.textChanged.connect( function() {stepSlider.setValue(forward_step.text);} );
  290. iteration_times.textChanged.connect( function() {iterationtimeSlider.setValue(iteration_times.text);} );
  291. d_k.textChanged.connect( function() {dkSlider.setValue(d_k.text);} );
  292. range_c.textChanged.connect( function() {rangecSlider.setValue(range_c.text);} );
  293. range_v.textChanged.connect( function() {rangevSlider.setValue(range_v.text);} );
  294. range_e.textChanged.connect( function() {rangeeSlider.setValue(range_e.text);} );
  295. batchSlider.valueChanged.connect( function() {batch_sizes.setText(batchSlider.value);} );
  296. stepSlider.valueChanged.connect( function() {forward_step.setText(stepSlider.value);} );
  297. iterationtimeSlider.valueChanged.connect( function() {iteration_times.setText(iterationtimeSlider.value);} );
  298. dkSlider.valueChanged.connect( function() {d_k.setText(dkSlider.value);} );
  299. rangecSlider.valueChanged.connect( function() {range_c.setText(rangecSlider.value);} );
  300. rangevSlider.valueChanged.connect( function() {range_v.setText(rangevSlider.value);} );
  301. rangeeSlider.valueChanged.connect( function() {range_e.setText(rangeeSlider.value);} );
  302. batch_sizes.setText(iniConf["batch_sizes"]);
  303. learning_rate0.setText(iniConf["learning_rate0"]);
  304. learning_rate1.setText(iniConf["learning_rate1"]);
  305. iteration_times.setText(iniConf["iteration_times"]);
  306. discount_factor.setText(iniConf["discount_factor"]);
  307. range_p_x.setText(iniConf["range_p"]);
  308. range_p_y.setText(iniConf["range_p"]);
  309. range_g.setText(iniConf["range_g"]);
  310. range_k.setText(iniConf["range_k"]);
  311. range_c.setText(iniConf["range_c"]);
  312. range_v.setText(iniConf["range_v"]);
  313. range_e.setText(iniConf["range_e"]);
  314. d_k.setText(iniConf["d_k"]);
  315. d_line.setText(iniConf["d_line"]);
  316. forward_step.setText(iniConf["forward_step"]);
  317. range_p_x.textChanged.connect(
  318. function(){
  319. range_p_y.setText(range_p_x.text);
  320. });
  321. range_p_y.textChanged.connect(
  322. function(){
  323. range_p_x.setText(range_p_y.text);
  324. });
  325. EAction.handleUserMessage("end set form");
  326. // range_g_x.textChanged.connect(
  327. // function(){
  328. // range_g_y.setText(range_g_x.text);
  329. // });
  330. // range_g_y.textChanged.connect(
  331. // function(){
  332. // range_g_x.setText(range_g_y.text);
  333. // });
  334. EAction.handleUserMessage("read ui");
  335. var beam0 = this.dialog.findChild("beam0");
  336. var beam1 = this.dialog.findChild("beam1");
  337. var bridge_pier = this.dialog.findChild("bridge_pier");
  338. var tunnel0 = this.dialog.findChild("tunnel0");
  339. var tunnel1 = this.dialog.findChild("tunnel1");
  340. var tunnel2 = this.dialog.findChild("tunnel2");
  341. var tunnel_entrance = this.dialog.findChild("tunnel_entrance");
  342. var railway_tracks = this.dialog.findChild("railway_tracks");
  343. var road_right_fee = this.dialog.findChild("road_right_fee");
  344. var filling_cost = this.dialog.findChild("filling_cost");
  345. var excavation_cost = this.dialog.findChild("excavation_cost");
  346. var arable_land_occupation = this.dialog.findChild("arable_land_occupation");
  347. var house_demolition = this.dialog.findChild("house_demolition");
  348. // var farmland_layer_name = this.dialog.findChild("farmland_layer_name");
  349. // var demolition_layer_name = this.dialog.findChild("demolition_layer_name");
  350. var replace_radio = this.dialog.findChild("replace_radio");
  351. var not_replace_radio = this.dialog.findChild("not_replace_radio");
  352. beam0.setText(iniConf["beam0"]);
  353. beam1.setText(iniConf["beam1"]);
  354. bridge_pier.setText(iniConf["bridge_pier"]);
  355. tunnel0.setText(iniConf["tunnel0"]);
  356. tunnel1.setText(iniConf["tunnel1"]);
  357. tunnel2.setText(iniConf["tunnel2"]);
  358. tunnel_entrance.setText(iniConf["tunnel_entrance"]);
  359. railway_tracks.setText(iniConf["railway_tracks"]);
  360. road_right_fee.setText(iniConf["road_right_fee"]);
  361. filling_cost.setText(iniConf["filling_cost"]);
  362. excavation_cost.setText(iniConf["excavation_cost"]);
  363. arable_land_occupation.setText(iniConf["arable_land_occupation"]);
  364. house_demolition.setText(iniConf["house_demolition"]);
  365. EAction.handleUserMessage("start set form");
  366. // farmland_layer_name.setText(iniConf["farmland_layer_name"]);
  367. // demolition_layer_name.setText(iniConf["demolition_layer_name"]);
  368. if(0 == iniConf["replace_railway_by_bridge"].toInt())
  369. {
  370. not_replace_radio.setChecked(1);
  371. }
  372. else
  373. {
  374. replace_radio.setChecked(1);
  375. }
  376. // 生态
  377. var water = this.dialog.findChild("water");
  378. var voice = this.dialog.findChild("voice");
  379. var culture = this.dialog.findChild("culture");
  380. var animal = this.dialog.findChild("animal");
  381. var prewater = this.dialog.findChild("prewater");
  382. var traffic = this.dialog.findChild("traffic");
  383. var tree = this.dialog.findChild("tree");
  384. var air = this.dialog.findChild("air");
  385. var house = this.dialog.findChild("house");
  386. var waterSlider = this.dialog.findChild("waterSlider");
  387. var voiceSlider = this.dialog.findChild("voiceSlider");
  388. var cultureSlider = this.dialog.findChild("cultureSlider");
  389. var animalSlider = this.dialog.findChild("animalSlider");
  390. var prewaterSlider = this.dialog.findChild("prewaterSlider");
  391. var trafficSlider = this.dialog.findChild("trafficSlider");
  392. var treeSlider = this.dialog.findChild("treeSlider");
  393. var airSlider = this.dialog.findChild("airSlider");
  394. var houseSlider = this.dialog.findChild("houseSlider");
  395. water.textChanged.connect( function() {waterSlider.setValue(water.text);} );
  396. voice.textChanged.connect( function() {voiceSlider.setValue(voice.text);} );
  397. culture.textChanged.connect( function() {cultureSlider.setValue(culture.text);} );
  398. animal.textChanged.connect( function() {animalSlider.setValue(animal.text);} );
  399. prewater.textChanged.connect( function() {prewaterSlider.setValue(prewater.text);} );
  400. traffic.textChanged.connect( function() {trafficSlider.setValue(traffic.text);} );
  401. tree.textChanged.connect( function() {treeSlider.setValue(tree.text);} );
  402. air.textChanged.connect( function() {airSlider.setValue(air.text);} );
  403. house.textChanged.connect( function() {houseSlider.setValue(house.text);} );
  404. water.setText(iniConf["water"]);
  405. voice.setText(iniConf["voice"]);
  406. culture.setText(iniConf["culture"]);
  407. animal.setText(iniConf["animal"]);
  408. prewater.setText(iniConf["prewater"]);
  409. traffic.setText(iniConf["traffic"]);
  410. tree.setText(iniConf["tree"]);
  411. air.setText(iniConf["air"]);
  412. house.setText(iniConf["house"]);
  413. // 速度
  414. var speed = this.dialog.findChild("speed");
  415. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  416. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  417. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  418. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  419. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  420. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  421. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  422. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  423. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  424. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  425. var speedSlider = this.dialog.findChild("speedSlider");
  426. var radiusSlider = this.dialog.findChild("radiusSlider");
  427. var lengthSlider = this.dialog.findChild("lengthSlider");
  428. var minloglenSlider = this.dialog.findChild("minloglenSlider");
  429. var gradientSlider = this.dialog.findChild("gradientSlider");
  430. var slopdiffSlider = this.dialog.findChild("slopdiffSlider");
  431. var convexSlider = this.dialog.findChild("convexSlider");
  432. var concaveSlider = this.dialog.findChild("concaveSlider");
  433. var transitionSlider = this.dialog.findChild("transitionSlider");
  434. var clipSlider = this.dialog.findChild("clipSlider");
  435. var verticalCurveSlider = this.dialog.findChild("verticalCurveSlider");
  436. speed.textChanged.connect( function() {speedSlider.setValue(speed.text);} );
  437. minimum_curve_radius.textChanged.connect( function() {radiusSlider.setValue(minimum_curve_radius.text);} );
  438. minimum_circular_length.textChanged.connect( function() {lengthSlider.setValue(minimum_circular_length.text);} );
  439. minimal_longitudinal_length.textChanged.connect( function() {minloglenSlider.setValue(minimal_longitudinal_length.text);} );
  440. maximum_gradient.textChanged.connect( function() {gradientSlider.setValue(maximum_gradient.text);} );
  441. maximum_slope_difference.textChanged.connect( function() {slopdiffSlider.setValue(maximum_slope_difference.text);} );
  442. minimum_radius_of_convex_vertical_curve.textChanged.connect( function() {convexSlider.setValue(minimum_radius_of_convex_vertical_curve.text);} );
  443. minimum_radius_of_concave_vertical_curve.textChanged.connect( function() {concaveSlider.setValue(minimum_radius_of_concave_vertical_curve.text);} );
  444. minimum_transition_curve_length.textChanged.connect( function() {transitionSlider.setValue(minimum_transition_curve_length.text);} );
  445. minimum_clip_line_length.textChanged.connect( function() {clipSlider.setValue(minimum_clip_line_length.text);} );
  446. minimum_length_of_vertical_curve.textChanged.connect( function() {verticalCurveSlider.setValue(minimum_length_of_vertical_curve.text);} );
  447. speed.setText(iniConf["speed"]);
  448. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  449. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  450. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  451. maximum_gradient.setText(iniConf["maximum_gradient"]);
  452. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  453. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  454. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  455. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  456. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  457. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  458. // 权重
  459. var hCostSlider = this.dialog.findChild("hCostSlider");
  460. var hEcologySlider = this.dialog.findChild("hEcologySlider");
  461. var vCostSlider = this.dialog.findChild("vCostSlider");
  462. hCostSlider.setValue(iniConf["hCostSlider"]);
  463. hEcologySlider.setValue(iniConf["hEcologySlider"]);
  464. vCostSlider.setValue(iniConf["vCostSlider"]);
  465. };
  466. SetArguments.prototype.readSpeedCfg = function(){
  467. // EAction.handleUserMessage(this.iniFile.value("/" + this.standard_type[0] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  468. // return this.getStandardInfo(this.standard_type[0]);
  469. return this.getStandardInfo(this.select_type);
  470. };
  471. SetArguments.prototype.setSpeedBox = function(iniConf){
  472. // var design_speed = this.dialog.findChild("comboBox");
  473. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  474. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  475. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  476. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  477. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  478. // var maximum_bridge_height = this.dialog.findChild("maximum_bridge_height");
  479. // var maximum_tunnel_length = this.dialog.findChild("maximum_tunnel_length");
  480. // var filling_height_lbb = this.dialog.findChild("filling_height_lbb");
  481. // var digging_deep_ltb = this.dialog.findChild("digging_deep_ltb");
  482. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  483. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  484. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  485. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  486. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  487. // var horizontal_containing_vertical = this.dialog.findChild("horizontal_containing_vertical");
  488. // for(var i = 1; i < this.standard_type.length; i += 2){
  489. // design_speed.addItem(this.standard_type[i]);
  490. // }
  491. // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
  492. // design_speed.setText(iniConf["design_speed"]);
  493. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  494. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  495. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  496. maximum_gradient.setText(iniConf["maximum_gradient"]);
  497. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  498. // maximum_bridge_height.setText(iniConf["maximum_bridge_height"]);
  499. // maximum_tunnel_length.setText(iniConf["maximum_tunnel_length"]);
  500. // filling_height_lbb.setText(iniConf["filling_height_lbb"]);
  501. // digging_deep_ltb.setText(iniConf["digging_deep_ltb"]);
  502. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  503. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  504. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  505. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  506. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  507. // if("1" == iniConf["horizontal_containing_vertical"])
  508. // {
  509. // horizontal_containing_vertical.setChecked(true);
  510. // }
  511. // else
  512. // {
  513. // horizontal_containing_vertical.setChecked(false);
  514. // }
  515. };
  516. SetArguments.prototype.getStandardInfo = function(childName){
  517. var speedInfo = [];
  518. speedInfo["design_speed"] = this.iniFile.value("/" + childName + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  519. speedInfo["minimum_curve_radius"] = this.iniFile.value("/" + childName + "/minimum_curve_radius").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  520. speedInfo["minimum_circular_length"] = this.iniFile.value("/" + childName + "/minimum_circular_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  521. speedInfo["minimal_longitudinal_length"] = this.iniFile.value("/" + childName + "/minimal_longitudinal_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  522. speedInfo["maximum_gradient"] = this.iniFile.value("/" + childName + "/maximum_gradient").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  523. speedInfo["maximum_slope_difference"] = this.iniFile.value("/" + childName + "/maximum_slope_difference").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  524. speedInfo["maximum_bridge_height"] = this.iniFile.value("/" + childName + "/maximum_bridge_height").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  525. speedInfo["maximum_tunnel_length"] = this.iniFile.value("/" + childName + "/maximum_tunnel_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  526. speedInfo["filling_height_lbb"] = this.iniFile.value("/" + childName + "/filling_height_lbb").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  527. speedInfo["digging_deep_ltb"] = this.iniFile.value("/" + childName + "/digging_deep_ltb").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  528. speedInfo["minimum_transition_curve_length"] = this.iniFile.value("/" + childName + "/minimum_transition_curve_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  529. speedInfo["minimum_clip_line_length"] = this.iniFile.value("/" + childName + "/minimum_clip_line_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  530. speedInfo["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/" + childName + "/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  531. speedInfo["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/" + childName + "/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  532. speedInfo["minimum_length_of_vertical_curve"] = this.iniFile.value("/" + childName + "/minimum_length_of_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  533. speedInfo["horizontal_containing_vertical"] = this.iniFile.value("/" + childName + "/horizontal_containing_vertical").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  534. return speedInfo;
  535. };