StylePanel.js 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. /**
  2. *
  3. * Class: SuperMap.Plotting.StylePanel
  4. * 属性面板类。
  5. *
  6. */
  7. SuperMap.Plotting.StylePanel = new SuperMap.Class({
  8. /**
  9. * Property: editLayers
  10. * {<SuperMap.Layer.PlottingLayer>} 标绘图层数组
  11. */
  12. editLayers: [],
  13. /**
  14. * Property: selectFeatures
  15. * {<SuperMap.Feature.Vector>} 要修改的要素
  16. */
  17. selectFeatures:[],
  18. groupIndex:0,
  19. /**
  20. * Constructor: SuperMap.Plotting.StylePanel
  21. * 标号库管理类。
  22. *
  23. * Parameters:
  24. * div - {String} 属性面板div
  25. *
  26. * Returns:
  27. * {<SuperMap.Plotting.StylePanel>} 结果类型对象。
  28. */
  29. initialize : function(div){
  30. function afterModifySelectFeature(rowIndex, rowData, changes){
  31. var updated = $('#pg').propertygrid('getChanges', "updated");
  32. if(updated.length !== 0){
  33. //var groups = $('#pg').propertygrid("groups");
  34. //for(var i=0;i<groups.length;i++){
  35. // if(updated[0].group === groups[i].value){me.groupIndex = i;}
  36. //}
  37. me.updateSelectFeature(updated[0], me.selectFeatures);
  38. var SF = me.selectFeatures;
  39. if(me.selectFeatures ===null){
  40. return;
  41. }
  42. if(updated[0].name == "对象可见性"){
  43. while(me.selectFeatures.length !== 0){
  44. me.selectFeatures[0].layer.drawFeature(me.selectFeatures[0]);
  45. }
  46. }else{
  47. for(var i=0;i<me.selectFeatures.length;i++){
  48. if(me.selectFeatures[i].layer.renderer.CLASS_NAME === "SuperMap.Renderer.PlotCanvas2"){
  49. me.selectFeatures[i].layer.redraw();
  50. }else{
  51. me.selectFeatures[i].layer.drawFeature(me.selectFeatures[i]);
  52. }
  53. if(me.selectFeatures[i] !==undefined ){
  54. if(me.selectFeatures[i].graphicsLayer !== undefined){
  55. me.selectFeatures[i].graphicsLayer.updateGraphics(me.selectFeatures[i]);
  56. }
  57. }
  58. }
  59. }
  60. var rows = collectionPropertyGridRows(me.selectFeatures);
  61. $('#pg').propertygrid('loadData', rows);
  62. //$('#pg').propertygrid('collapseGroup');
  63. //$('#pg').propertygrid('expandGroup',0);
  64. //$('#pg').propertygrid('expandGroup',me.groupIndex);
  65. }
  66. }
  67. var stylePanel = document.getElementById(div);
  68. var pg = document.createElement("table");
  69. pg.id = "pg";
  70. pg.className = "easyui-propertygrid";
  71. stylePanel.appendChild(pg);
  72. $('#pg').propertygrid({
  73. showGroup:true,
  74. columns: [[
  75. { field: 'name', title: 'Name', width: 100, resizable: true },
  76. { field: 'value', title: 'Value', width: 100, resizable: false
  77. }
  78. ]],
  79. onAfterEdit: afterModifySelectFeature
  80. });
  81. var me = this;
  82. },
  83. /**
  84. * APIMethod: addEditLayer
  85. * 添加标绘图层
  86. *
  87. * Parameters:
  88. * editLayer - {<SuperMap.Layer.PlottingLayer>}标绘图层
  89. *
  90. * Returns:
  91. */
  92. addEditLayer: function(editLayer){
  93. for(var i = 0 ; i < this.editLayers.length; i++)
  94. {
  95. if(editLayer === this.editLayers[i]){
  96. return;
  97. }
  98. }
  99. if(editLayer instanceof SuperMap.Layer.PlottingGraphics){
  100. if(editLayer.plottingGraphicsEdit !== null){
  101. editLayer = editLayer.plottingGraphicsEdit.plottingLayer;
  102. } else {
  103. return;
  104. }
  105. }
  106. editLayer.events.register("featureselected", this, this.showFeatureProperty);
  107. editLayer.events.register("featuremodified", this, this.showFeatureProperty);
  108. editLayer.events.register("featureunselected", this, this.hideFeatureProperty);
  109. },
  110. /**
  111. * APIMethod: removeEditLayer
  112. * 移除标绘图层
  113. *
  114. * Parameters:
  115. * editLayer - {<SuperMap.Layer.PlottingLayer>}标绘图层
  116. *
  117. * Returns:
  118. */
  119. removeEditLayer : function(editLayer) {
  120. for(var i = 0; i < this.editLayers.length; i++)
  121. {
  122. if(editLayer === this.editLayers[i])
  123. {
  124. this.editLayers[i].events.unregister("featureselected", this, this.showFeatureProperty);
  125. this.editLayers[i].events.unregister("featuremodified", this, this.showFeatureProperty);
  126. this.editLayers[i].events.unregister("featureunselected", this, this.hideFeatureProperty);
  127. this.editLayers.slice(i,1);
  128. break;
  129. }
  130. }
  131. },
  132. showFeatureProperty: function(selectFeatueEvt) {
  133. if(selectFeatueEvt.type === "featureselected"){
  134. this.selectFeatures=this.selectFeatures.concat(selectFeatueEvt.features);
  135. }
  136. if(this.selectFeatures.length !==0){
  137. var rows = collectionPropertyGridRows(this.selectFeatures);
  138. $('#pg').propertygrid('loadData', rows);
  139. //$('#pg').propertygrid('collapseGroup');
  140. //$('#pg').propertygrid('expandGroup',0);
  141. //$('#pg').propertygrid('expandGroup',this.groupIndex);
  142. }
  143. SuperMap.Event.stop(selectFeatueEvt);
  144. },
  145. hideFeatureProperty: function(selectFeatueEvt) {
  146. for(var i = 0; i < selectFeatueEvt.features.length; i++){
  147. var index = SuperMap.Util.indexOf(this.selectFeatures, selectFeatueEvt.features[i]);
  148. if(index !== -1){
  149. this.selectFeatures.splice(index, 1);
  150. }
  151. }
  152. if(this.selectFeatures.length !==0){
  153. var rows = collectionPropertyGridRows(this.selectFeatures);
  154. $('#pg').propertygrid('loadData', rows);
  155. } else {
  156. var rows = [];
  157. $('#pg').propertygrid('loadData', rows);
  158. }
  159. SuperMap.Event.stop(selectFeatueEvt);
  160. },
  161. addExtendPropertyfunction :function(rows,geometry) {
  162. var extendProperty = geometry.getExtendProperty();
  163. var nIndex = 0;
  164. var property = extendProperty.getPropertyByIndex(nIndex);
  165. while(null != property)
  166. {
  167. var propertyName = property.getKey();
  168. var undoValue = property.getValue();
  169. var extendePropertyObj = new Object();
  170. extendePropertyObj.name = propertyName;
  171. extendePropertyObj.value = undoValue;
  172. extendePropertyObj.group = "自定义属性";
  173. extendePropertyObj.editor = "text";
  174. rows.push(extendePropertyObj);
  175. nIndex++;
  176. property = extendProperty.getPropertyByIndex(nIndex);
  177. }
  178. },
  179. updateSelectFeature: function(updated, selectfeatures) {
  180. var transaction = new SuperMap.Plot.Transaction();
  181. SuperMap.Plotting.getInstance(this.map).getTransManager().add(transaction);
  182. for(var i=0;i<selectfeatures.length;i++){
  183. var transInfo = new SuperMap.Plot.TransactionInfo();
  184. transInfo.layerId = selectfeatures[i].layer.id;
  185. transInfo.uuid = selectfeatures[i].geometry.uuid;
  186. if (updated != null) {
  187. switch(updated.name) {
  188. case displayName[0]:
  189. transInfo.functionName = "setLocked";
  190. transInfo.undoParams = [selectfeatures[i].geometry.getLocked()];
  191. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  192. selectfeatures[i].geometry.setLocked(fromCheckboxValue(updated.value));
  193. break;
  194. case displayName[1]:
  195. transInfo.propertyName = "display";
  196. transInfo.undoValue = selectfeatures[i].style.display;
  197. transInfo.redoValue = updated.value;
  198. selectfeatures[i].style.display = updated.value;
  199. break;
  200. case displayLineStyleName[0]:
  201. if (selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject) {
  202. transInfo.functionName = "setStrokeWidth";
  203. transInfo.undoParams = [selectfeatures[i].geometry.getStrokeWidth()];
  204. transInfo.redoParams = [parseInt(updated.value)];
  205. selectfeatures[i].geometry.setStrokeWidth(parseInt(updated.value));
  206. }
  207. else {
  208. transInfo.propertyName = "strokeWidth";
  209. transInfo.undoValue = selectfeatures[i].style.strokeWidth;
  210. transInfo.redoValue = parseInt(updated.value);
  211. selectfeatures[i].style.strokeWidth = parseInt(updated.value);
  212. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  213. selectfeatures[i].geometry.applyStyle("strokeWidth");
  214. }
  215. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN){
  216. selectfeatures[i].geometry.route.applyTextStyle(selectfeatures[i].style);
  217. }
  218. }
  219. break;
  220. case displayLineStyleName[1]:
  221. if (selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject) {
  222. transInfo.functionName = "setStrokeColor";
  223. transInfo.undoParams = [selectfeatures[i].geometry.getStrokeColor()];
  224. transInfo.redoParams = [updated.value];
  225. selectfeatures[i].geometry.setStrokeColor(updated.value);
  226. }
  227. else {
  228. transInfo.propertyName = "strokeColor";
  229. transInfo.undoValue = selectfeatures[i].style.strokeColor;
  230. transInfo.redoValue = updated.value;
  231. selectfeatures[i].style.strokeColor = updated.value;
  232. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT ){
  233. selectfeatures[i].geometry.applyStyle("strokeColor");
  234. }
  235. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN){
  236. selectfeatures[i].geometry.route.applyTextStyle(selectfeatures[i].style);
  237. }
  238. }
  239. break;
  240. case displayLineStyleName[2]:
  241. transInfo.propertyName = "strokeDashstyle";
  242. transInfo.undoValue = selectfeatures[i].style.strokeDashstyle;
  243. transInfo.redoValue = updated.value;
  244. selectfeatures[i].style.strokeDashstyle = updated.value;
  245. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT ||
  246. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject
  247. ){
  248. selectfeatures[i].geometry.applyStyle("strokeDashstyle");
  249. }
  250. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN){
  251. selectfeatures[i].geometry.route.applyTextStyle(selectfeatures[i].style);
  252. }
  253. break;
  254. case displayLineStyleName[3]:
  255. {
  256. var opacity = parseFloat(updated.value) < 0 ? 0 : parseFloat(updated.value);
  257. opacity = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  258. transInfo.propertyName = "strokeOpacity";
  259. transInfo.undoValue = selectfeatures[i].style.strokeOpacity;
  260. transInfo.redoValue = opacity;
  261. selectfeatures[i].style.strokeOpacity = opacity;
  262. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT ||
  263. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject){
  264. selectfeatures[i].geometry.applyStyle("strokeOpacity");
  265. }
  266. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN){
  267. selectfeatures[i].geometry.route.applyTextStyle(selectfeatures[i].style);
  268. }
  269. }
  270. break;
  271. case displaySurroundLineName[0]:
  272. transInfo.functionName = "setSurroundLineType";
  273. transInfo.undoParams = [selectfeatures[i].geometry.getSurroundLineType()];
  274. transInfo.redoParams = [parseInt(updated.value)];
  275. selectfeatures[i].geometry.setSurroundLineType(parseInt(updated.value));
  276. break;
  277. case displaySurroundLineName[1]:
  278. transInfo.propertyName = "surroundLineWidth";
  279. transInfo.undoValue = selectfeatures[i].style.surroundLineWidth;
  280. transInfo.redoValue = parseInt(updated.value);
  281. selectfeatures[i].style.surroundLineWidth = parseInt(updated.value);
  282. break;
  283. case displaySurroundLineName[2]:
  284. transInfo.propertyName = "surroundLineColor";
  285. transInfo.undoValue = selectfeatures[i].style.surroundLineColor;
  286. transInfo.redoValue = updated.value;
  287. selectfeatures[i].style.surroundLineColor = updated.value;
  288. break;
  289. case displaySurroundLineName[3]:
  290. {
  291. var opacity = parseFloat(updated.value) < 0 ? 0 : parseFloat(updated.value);
  292. opacity = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  293. transInfo.propertyName = "surroundLineColorOpacity";
  294. transInfo.undoValue = selectfeatures[i].style.surroundLineColorOpacity;
  295. transInfo.redoValue = opacity;
  296. selectfeatures[i].style.surroundLineColorOpacity = opacity;
  297. }
  298. break;
  299. case displayFillStyleName[0]:
  300. transInfo.propertyName = "fillSymbolID";
  301. transInfo.undoValue = selectfeatures[i].style.fillSymbolID;
  302. transInfo.redoValue = parseFloat(updated.value);
  303. selectfeatures[i].style.fillSymbolID = parseFloat(updated.value);
  304. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT ||
  305. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject){
  306. selectfeatures[i].geometry.applyStyle("fillSymbolID");
  307. }
  308. break;
  309. case displayFillStyleName[1]:
  310. transInfo.propertyName = "fillColor";
  311. transInfo.undoValue = selectfeatures[i].style.fillColor;
  312. transInfo.redoValue = updated.value;
  313. selectfeatures[i].style.fillColor = updated.value;
  314. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  315. selectfeatures[i].geometry.applyStyle("fillColor");
  316. }
  317. break;
  318. case displayFillStyleName[2]:
  319. {
  320. var opacity = parseFloat(updated.value) < 0 ? 0 : parseFloat(updated.value);
  321. opacity = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  322. transInfo.propertyName = "fillOpacity";
  323. transInfo.undoValue = selectfeatures[i].style.fillOpacity;
  324. transInfo.redoValue = opacity;
  325. selectfeatures[i].style.fillOpacity = opacity;
  326. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  327. selectfeatures[i].geometry.applyStyle("fillOpacity");
  328. }
  329. }
  330. break;
  331. case displayFillStyleName[3]:
  332. transInfo.propertyName = "fillGradientMode";
  333. transInfo.undoValue = selectfeatures[i].style.fillGradientMode;
  334. transInfo.redoValue = updated.value;
  335. selectfeatures[i].style.fillGradientMode = updated.value;
  336. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  337. selectfeatures[i].geometry.applyStyle("fillGradientMode");
  338. }
  339. break;
  340. case displayFillStyleName[4]:
  341. transInfo.propertyName = "fillBackColor";
  342. transInfo.undoValue = selectfeatures[i].style.fillBackColor;
  343. transInfo.redoValue = updated.value;
  344. selectfeatures[i].style.fillBackColor = updated.value;
  345. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  346. selectfeatures[i].geometry.applyStyle("fillBackColor");
  347. }
  348. break;
  349. case displayFillStyleName[5]:
  350. {
  351. var opacity = parseFloat(updated.value) < 0 ? 0 : parseFloat(updated.value);
  352. opacity = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  353. transInfo.propertyName = "fillBackOpacity";
  354. transInfo.undoValue = selectfeatures[i].style.fillBackOpacity;
  355. transInfo.redoValue = opacity;
  356. selectfeatures[i].style.fillBackOpacity = opacity;
  357. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT){
  358. selectfeatures[i].geometry.applyStyle("fillBackOpacity");
  359. }
  360. }
  361. break;
  362. case displayFillStyleName[6]:
  363. {
  364. var angle = parseFloat(updated.value) < 0 ? 0 : parseFloat(updated.value);
  365. angle = parseFloat(updated.value) >= 360 ? 0 : parseFloat(updated.value);
  366. transInfo.propertyName = "fillAngle";
  367. transInfo.undoValue = selectfeatures[i].style.fillAngle;
  368. transInfo.redoValue = angle;
  369. selectfeatures[i].style.fillAngle = angle;
  370. }
  371. break;
  372. case displayFillStyleName[7]:
  373. {
  374. var X = parseFloat(updated.value) < -1 ? -1 : parseFloat(updated.value);
  375. X = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  376. transInfo.propertyName = "fillCenterOffsetX";
  377. transInfo.undoValue = selectfeatures[i].style.fillCenterOffsetX;
  378. transInfo.redoValue = X;
  379. selectfeatures[i].style.fillCenterOffsetX = X;
  380. }
  381. break;
  382. case displayFillStyleName[8]:
  383. {
  384. var Y = parseFloat(updated.value) < -1 ? -1 : parseFloat(updated.value);
  385. Y = parseFloat(updated.value) > 1 ? 1 : parseFloat(updated.value);
  386. transInfo.propertyName = "fillCenterOffsetY";
  387. transInfo.undoValue = selectfeatures[i].style.fillCenterOffsetY;
  388. transInfo.redoValue = Y;
  389. selectfeatures[i].style.fillCenterOffsetY = Y;
  390. }
  391. break;
  392. case displayNameDot[0]:
  393. transInfo.functionName = "setRotate";
  394. transInfo.undoParams = [selectfeatures[i].geometry.getRotate()];
  395. transInfo.redoParams = [parseFloat(updated.value)];
  396. selectfeatures[i].geometry.setRotate(parseFloat(updated.value));
  397. break;
  398. case displayNameDot[1]:
  399. transInfo.functionName = "setScaleByMap";
  400. transInfo.undoParams = [selectfeatures[i].geometry.getScaleByMap()];
  401. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  402. selectfeatures[i].geometry.setScaleByMap(fromCheckboxValue(updated.value));
  403. break;
  404. case displayNameDot[2]:
  405. transInfo.functionName = "setNegativeImage";
  406. transInfo.undoParams = [selectfeatures[i].geometry.getNegativeImage()];
  407. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  408. selectfeatures[i].geometry.setNegativeImage(fromCheckboxValue(updated.value));
  409. break;
  410. case displayNameDot[3]:
  411. transInfo.functionName = "setSymbolRank";
  412. transInfo.undoParams = [selectfeatures[i].geometry.getSymbolRank()];
  413. transInfo.redoParams = [updated.value];
  414. selectfeatures[i].geometry.setSymbolRank(updated.value);
  415. break;
  416. case displayNameDot[4]:
  417. transInfo.functionName = "setPositionOffset";
  418. transInfo.undoParams = [selectfeatures[i].geometry.getPositionOffset()];
  419. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  420. selectfeatures[i].geometry.setPositionOffset(fromCheckboxValue(updated.value));
  421. break;
  422. case displayNameDot[5]:
  423. transInfo.functionName = "setPositionOffsetType";
  424. transInfo.undoParams = [selectfeatures[i].geometry.getPositionOffsetType()];
  425. transInfo.redoParams = [parseInt(updated.value)];
  426. selectfeatures[i].geometry.setPositionOffsetType(parseInt(updated.value));
  427. break;
  428. case displayNameDot[6]:
  429. transInfo.functionName = "setWidthHeightLimit";
  430. transInfo.undoParams = [selectfeatures[i].geometry.getWidthHeightLimit()];
  431. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  432. selectfeatures[i].geometry.setWidthHeightLimit(fromCheckboxValue(updated.value));
  433. break;
  434. case displayNameDot[7]:
  435. transInfo.functionName = "setSymbolSize";
  436. transInfo.undoParams = [selectfeatures[i].geometry.getSymbolSize().w];
  437. transInfo.redoParams = [parseFloat(updated.value), selectfeatures[i].geometry.getSymbolSize().h];
  438. selectfeatures[i].geometry.setSymbolSize(parseFloat(updated.value), selectfeatures[i].geometry.getSymbolSize().h);
  439. break;
  440. case displayNameDot[8]:
  441. transInfo.functionName = "setSymbolSize";
  442. transInfo.undoParams = [selectfeatures[i].geometry.getSymbolSize().h];
  443. transInfo.redoParams = [selectfeatures[i].geometry.getSymbolSize().w, parseFloat(updated.value)];
  444. selectfeatures[i].geometry.setSymbolSize(selectfeatures[i].geometry.getSymbolSize().w, parseFloat(updated.value));
  445. break;
  446. case displayTextContentName[0]:
  447. if (selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT) {
  448. // transInfo.propertyName = "textContent";
  449. // transInfo.undoValue = selectfeatures[i].geometry.symbolTexts[0].textContent;
  450. // transInfo.redoValue = updated.value;
  451. transInfo.functionName = "updateSymbolText";
  452. transInfo.undoParams = [selectfeatures[i].geometry.symbolTexts[0].clone(), 0];
  453. selectfeatures[i].geometry.symbolTexts[0].textContent = updated.value;
  454. selectfeatures[i].geometry.updateSymbolText(selectfeatures[i].geometry.symbolTexts[0], 0);
  455. transInfo.redoParams = [selectfeatures[i].geometry.symbolTexts[0], 0];
  456. //selectfeatures[i].geometry.calculateParts();
  457. } else if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT1 ||
  458. selectfeatures[i].geometry.symbolType ===SuperMap.Plot.SymbolType.PATHTEXT) {
  459. transInfo.functionName = "setTextContent";
  460. transInfo.undoParams = [selectfeatures[i].geometry.getTextContent()];
  461. var updatedValueStr=updated.value;
  462. var textContent=updatedValueStr.split(",");
  463. transInfo.redoParams = [textContent];
  464. selectfeatures[i].geometry.setTextContent(textContent);
  465. }else{
  466. transInfo.functionName = "setTextContent";
  467. transInfo.undoParams = [selectfeatures[i].geometry.getTextContent()];
  468. transInfo.redoParams = [updated.value];
  469. selectfeatures[i].geometry.setTextContent(updated.value);
  470. }
  471. break;
  472. case displayTextContentName[0] + "2":
  473. selectfeatures[i].geometry.symbolTexts[1].textContent = updated.value;
  474. selectfeatures[i].geometry.setTextContent(updated.value);
  475. break;
  476. case displayTextContentName[1]:
  477. if (selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.PATHTEXT) {
  478. transInfo.functionName = "setRelLineText";
  479. transInfo.undoParams = [selectfeatures[i].geometry.getRelLineText()];
  480. transInfo.redoParams = [parseInt(updated.value)];
  481. selectfeatures[i].geometry.setRelLineText(parseInt(updated.value));
  482. } else {
  483. transInfo.functionName = "setTextPosition";
  484. transInfo.undoParams = [selectfeatures[i].geometry.getTextPosition()];
  485. transInfo.redoParams = [parseInt(updated.value)];
  486. selectfeatures[i].geometry.setTextPosition(parseInt(updated.value));
  487. }
  488. break;
  489. case displayTextContentName[2]:
  490. transInfo.propertyName = "fontSize";
  491. transInfo.undoValue = selectfeatures[i].style.fontSize;
  492. transInfo.redoValue = parseFloat(updated.value);
  493. selectfeatures[i].style.fontSize = parseFloat(updated.value);
  494. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT||
  495. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject){
  496. selectfeatures[i].geometry.applyStyle("fontSize");
  497. } else {
  498. selectfeatures[i].geometry.calculateParts();
  499. }
  500. break;
  501. case displayTextContentName[3]:
  502. transInfo.propertyName = "fontColor";
  503. transInfo.undoValue = selectfeatures[i].style.fontColor;
  504. transInfo.redoValue = updated.value;
  505. selectfeatures[i].style.fontColor = updated.value;
  506. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT||
  507. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject){
  508. selectfeatures[i].geometry.applyStyle("fontColor");
  509. }
  510. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL && selectfeatures[i].geometry.textPosition === 8){//支持中间注记修改字体颜色
  511. selectfeatures[i].geometry.calculateParts();
  512. }
  513. break;
  514. case displayTextContentName[4]:
  515. transInfo.propertyName = "fontFamily";
  516. transInfo.undoValue = selectfeatures[i].style.fontFamily;
  517. transInfo.redoValue = updated.value;
  518. selectfeatures[i].style.fontFamily = updated.value;
  519. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT ||
  520. selectfeatures[i].geometry instanceof SuperMap.Geometry.GroupObject){
  521. selectfeatures[i].geometry.applyStyle("fontFamily");
  522. }
  523. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL && selectfeatures[i].geometry.textPosition === 8){//支持中间注记修改字体颜色
  524. selectfeatures[i].geometry.calculateParts();
  525. }
  526. break;
  527. case displayTextContentName[5]:
  528. transInfo.functionName = "setSpace";
  529. transInfo.undoParams = [selectfeatures[i].geometry.getSpace()];
  530. transInfo.redoParams = [parseInt(updated.value)];
  531. selectfeatures[i].geometry.setSpace(parseInt(updated.value));
  532. break;
  533. case displayTextContentName[6]:
  534. transInfo.propertyName = "fontSpace";
  535. transInfo.undoValue = selectfeatures[i].style.fontSpace;
  536. transInfo.redoValue = parseInt(updated.value);
  537. selectfeatures[i].style.fontSpace = parseInt(updated.value);
  538. break;
  539. case displayTextContentName[7]:
  540. transInfo.propertyName = "fontPercent";
  541. transInfo.undoValue = selectfeatures[i].style.fontPercent;
  542. transInfo.redoValue = parseInt(updated.value);
  543. selectfeatures[i].style.fontPercent = parseInt(updated.value);
  544. break;
  545. case displayTextContentName[8]:
  546. transInfo.propertyName = "fontStroke";
  547. transInfo.undoValue = selectfeatures[i].style.fontStroke;
  548. transInfo.redoValue = fromCheckboxValue(updated.value);
  549. selectfeatures[i].style.fontStroke = fromCheckboxValue(updated.value);
  550. break;
  551. case displayTextContentName[9]:
  552. transInfo.propertyName = "fontStrokeColor";
  553. transInfo.undoValue = selectfeatures[i].style.fontStrokeColor;
  554. transInfo.redoValue = updated.value;
  555. selectfeatures[i].style.fontStrokeColor = updated.value;
  556. break;
  557. case displayTextContentName[10]:
  558. transInfo.propertyName = "fontStrokeWidth";
  559. transInfo.undoValue = selectfeatures[i].style.fontStrokeWidth;
  560. transInfo.redoValue = parseInt(updated.value);
  561. selectfeatures[i].style.fontStrokeWidth = parseInt(updated.value);
  562. break;
  563. case displayTextContentName[11]:
  564. transInfo.propertyName = "fontBackground";
  565. transInfo.undoValue = selectfeatures[i].style.fontBackground;
  566. transInfo.redoValue = fromCheckboxValue(updated.value);
  567. selectfeatures[i].style.fontBackground = fromCheckboxValue(updated.value);
  568. break;
  569. case displayTextContentName[12]:
  570. transInfo.propertyName = "fontBackgroundColor";
  571. transInfo.undoValue = selectfeatures[i].style.fontBackgroundColor;
  572. transInfo.redoValue = updated.value;
  573. selectfeatures[i].style.fontBackgroundColor = updated.value;
  574. break;
  575. case displayTextContentName[13]:
  576. transInfo.propertyName = "fontShadow";
  577. transInfo.undoValue = selectfeatures[i].style.fontShadow;
  578. transInfo.redoValue = fromCheckboxValue(updated.value);
  579. selectfeatures[i].style.fontShadow = fromCheckboxValue(updated.value);
  580. break;
  581. case displayTextContentName[14]:
  582. transInfo.propertyName = "fontShadowColor";
  583. transInfo.undoValue = selectfeatures[i].style.fontShadowColor;
  584. transInfo.redoValue = updated.value;
  585. selectfeatures[i].style.fontShadowColor = updated.value;
  586. break;
  587. case displayTextContentName[15]:
  588. transInfo.propertyName = "fontShadowOffsetX";
  589. transInfo.undoValue = selectfeatures[i].style.fontShadowOffsetX;
  590. transInfo.redoValue = parseInt(updated.value);
  591. selectfeatures[i].style.fontShadowOffsetX = parseInt(updated.value);
  592. break;
  593. case displayTextContentName[16]:
  594. transInfo.propertyName = "fontShadowOffsetY";
  595. transInfo.undoValue = selectfeatures[i].style.fontShadowOffsetY;
  596. transInfo.redoValue = parseInt(updated.value);
  597. selectfeatures[i].style.fontShadowOffsetY = parseInt(updated.value);
  598. break;
  599. case displayNameNew[0]:
  600. transInfo.functionName = "setArrowHeadType";
  601. transInfo.undoParams = [selectfeatures[i].geometry.getArrowHeadType()];
  602. transInfo.redoParams = [parseInt(updated.value)];
  603. selectfeatures[i].geometry.setArrowHeadType(parseInt(updated.value));
  604. break;
  605. case displayNameNew[1]:
  606. transInfo.functionName = "setArrowBodyType";
  607. transInfo.undoParams = [selectfeatures[i].geometry.getArrowBodyType()];
  608. transInfo.redoParams = [parseInt(updated.value)];
  609. selectfeatures[i].geometry.setArrowBodyType(parseInt(updated.value));
  610. break;
  611. case displayNameNew[2]:
  612. transInfo.functionName = "setArrowTailType";
  613. transInfo.undoParams = [selectfeatures[i].geometry.getArrowTailType()];
  614. transInfo.redoParams = [parseInt(updated.value)];
  615. selectfeatures[i].geometry.setArrowTailType(parseInt(updated.value));
  616. break;
  617. case displayNameNew[3]:
  618. transInfo.functionName = "setStartArrowType";
  619. transInfo.undoParams = [selectfeatures[i].geometry.getStartArrowType()];
  620. transInfo.redoParams = [parseInt(updated.value)];
  621. selectfeatures[i].geometry.setStartArrowType(parseInt(updated.value));
  622. break;
  623. case displayNameNew[4]:
  624. transInfo.functionName = "setEndArrowType";
  625. transInfo.undoParams = [selectfeatures[i].geometry.getEndArrowType()];
  626. transInfo.redoParams = [parseInt(updated.value)];
  627. selectfeatures[i].geometry.setEndArrowType(parseInt(updated.value));
  628. break;
  629. case displayNameNew[5]:
  630. transInfo.functionName = "setShowPathLine";
  631. transInfo.undoParams = [selectfeatures[i].geometry.getShowPathLine()];
  632. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  633. selectfeatures[i].geometry.setShowPathLine(fromCheckboxValue(updated.value));
  634. break;
  635. case displayNameNew[6]:
  636. transInfo.functionName = "setCurveLine";
  637. transInfo.undoParams = [selectfeatures[i].geometry.getIsCurveLine()];
  638. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  639. selectfeatures[i].geometry.setCurveLine(fromCheckboxValue(updated.value));
  640. break;
  641. case displayNameNew[7]:
  642. transInfo.functionName = "setShowPathLineArrow";
  643. transInfo.undoParams = [selectfeatures[i].geometry.getShowPathLineArrow()];
  644. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  645. selectfeatures[i].geometry.setShowPathLineArrow(fromCheckboxValue(updated.value));
  646. break;
  647. case displayNameNew[8]:
  648. transInfo.functionName = "setAvoidLine";
  649. transInfo.undoParams = [selectfeatures[i].geometry.getIsAvoidLine()];
  650. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  651. selectfeatures[i].geometry.setAvoidLine(fromCheckboxValue(updated.value));
  652. break;
  653. case displayNameNew[9]:
  654. transInfo.functionName = "setTextBoxType";
  655. transInfo.undoParams = [selectfeatures[i].geometry.getTextBoxType()];
  656. transInfo.redoParams = [parseInt(updated.value)];
  657. selectfeatures[i].geometry.setTextBoxType(parseInt(updated.value));
  658. break;
  659. case displayNameNew[10]:
  660. transInfo.functionName = "setRoundBox";
  661. transInfo.undoParams = [selectfeatures[i].geometry.getRoundBox()];
  662. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  663. selectfeatures[i].geometry.setRoundBox(fromCheckboxValue(updated.value));
  664. break;
  665. case displayNameNew[11]:
  666. transInfo.functionName = "setFrame";
  667. transInfo.undoParams = [selectfeatures[i].geometry.getFrame()];
  668. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  669. selectfeatures[i].geometry.setFrame(fromCheckboxValue(updated.value));
  670. break;
  671. case displayNameNew[12]:
  672. transInfo.functionName = "setRadiusLineType";
  673. transInfo.undoParams = [selectfeatures[i].geometry.getRadiusLineType()];
  674. transInfo.redoParams = [parseInt(updated.value)];
  675. selectfeatures[i].geometry.setRadiusLineType(parseInt(updated.value));
  676. break;
  677. case displayNameNew[13]:
  678. transInfo.functionName = "setRadiusTextPos";
  679. transInfo.undoParams = [selectfeatures[i].geometry.getRadiusTextPos()];
  680. transInfo.redoParams = [updated.value];
  681. selectfeatures[i].geometry.setRadiusTextPos(updated.value);
  682. break;
  683. case displayNameNew[14]:
  684. transInfo.functionName = "setRadiusText";
  685. transInfo.undoParams = [selectfeatures[i].geometry.radiusText[0],0];
  686. transInfo.redoParams = [updated.value, 0];
  687. selectfeatures[i].geometry.setRadiusText(updated.value, 0);
  688. break;
  689. case displayNameNew[15]:
  690. transInfo.functionName = "setRadiusText";
  691. transInfo.undoParams = [selectfeatures[i].geometry.radiusText[1],1];
  692. transInfo.redoParams = [updated.value, 1];
  693. selectfeatures[i].geometry.setRadiusText(updated.value, 1);
  694. break;
  695. case displayNameNew[16]:
  696. transInfo.functionName = "setVisible";
  697. transInfo.undoParams = [selectfeatures[i].geometry.getVisible()];
  698. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  699. selectfeatures[i].geometry.setVisible(fromCheckboxValue(updated.value));
  700. break;
  701. case displayNameNew[17]:
  702. transInfo.functionName = "setType";
  703. transInfo.undoParams = [selectfeatures[i].geometry.routeNode.type];
  704. transInfo.redoParams = [updated.value];
  705. selectfeatures[i].geometry.setType(updated.value);
  706. break;
  707. case displayNameNew[18]:
  708. transInfo.functionName = "setRotate";
  709. transInfo.undoParams = [selectfeatures[i].geometry.getRotate()];
  710. transInfo.redoParams = [parseFloat(updated.value)];
  711. selectfeatures[i].geometry.setRotate(parseFloat(updated.value));
  712. break;
  713. case displayNameNew[19]:
  714. transInfo.functionName = "setLineRelationType";
  715. transInfo.undoParams = [selectfeatures[i].geometry.getLineRelationType()];
  716. transInfo.redoParams = [parseInt(updated.value)];
  717. selectfeatures[i].geometry.setLineRelationType(parseInt(updated.value));
  718. break;
  719. case displayNameNew[20]:
  720. transInfo.functionName = "setPolylineConnectLocationPoint";
  721. transInfo.undoParams = [selectfeatures[i].geometry.getPolylineConnectLocationPoint()];
  722. transInfo.redoParams = [fromCheckboxValue(updated.value)];
  723. selectfeatures[i].geometry.setPolylineConnectLocationPoint(fromCheckboxValue(updated.value));
  724. break;
  725. case displayNameNew[21]:
  726. transInfo.propertyName = "labelAlign";
  727. transInfo.undoValue = selectfeatures[i].style.labelAlign;
  728. transInfo.redoValue = fontAlignTypeValue(updated.value);
  729. selectfeatures[i].style.labelAlign = fontAlignTypeValue(updated.value);
  730. selectfeatures[i].geometry.calculateParts();
  731. break;
  732. }
  733. if (updated.group == group[8]) {
  734. if (updated.name == displayName[2]) {
  735. if(updated.value !== null){
  736. transInfo.propertyName = displayName[2];
  737. transInfo.undoValue = selectfeatures[i].geometry.getSubSymbols()[updated.index].libID;
  738. transInfo.redoValue = parseInt(updated.value);
  739. selectfeatures[i].geometry.subSymbols[0].libID = parseInt(updated.value);
  740. }
  741. }
  742. if (updated.name == displayName[3]) {
  743. var code = parseInt(updated.value);
  744. if(selectfeatures[i].geometry.symbolType === SuperMap.Plot.SymbolType.NODECHAIN && code != null) {
  745. var symbolLibManager = plotting.getSymbolLibManager();
  746. var subCode = symbolLibManager.findSymbolByCode(code);
  747. if(subCode.length !== 0 && subCode[0].symbolType === "SYMBOL_DOT"){
  748. transInfo.functionName = "setSubSymbol";
  749. if(selectfeatures[i].geometry.getSubSymbols()[updated.index]) {
  750. transInfo.undoParams = [selectfeatures[i].geometry.getSubSymbols()[updated.index].code, updated.index,subCode[0].libID];
  751. } else {
  752. transInfo.undoParams = [-1, updated.index];
  753. }
  754. transInfo.redoParams = [code, updated.index, subCode[0].libID];
  755. selectfeatures[i].geometry.setSubSymbol(code, updated.index, subCode[0].libID);
  756. }
  757. } else if (code !== null) {
  758. transInfo.functionName = "setSubSymbol";
  759. if(selectfeatures[i].geometry.getSubSymbols()[updated.index]) {
  760. transInfo.undoParams = [selectfeatures[i].geometry.getSubSymbols()[updated.index].code, updated.index,selectfeatures[i].geometry.getSubSymbols()[updated.index].libID];
  761. } else {
  762. transInfo.undoParams = [-1, updated.index];
  763. }
  764. transInfo.redoParams = [code, updated.index];
  765. selectfeatures[i].geometry.setSubSymbol(code, updated.index);
  766. }
  767. }
  768. }
  769. transaction.transInfos.push(transInfo);
  770. }
  771. SuperMap.Plot.AnalysisSymbol.setStyle(selectfeatures[i].style, selectfeatures[i].geometry.symbolData);
  772. }
  773. },
  774. CLASS_NAME: "SuperMap.Plotting.StylePanel"
  775. });