actpanedatastore.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799
  1. // Licensed Materials - Property of IBM
  2. //
  3. // IBM Cognos Products: pps
  4. //
  5. // (C) Copyright IBM Corp. 2005, 2017
  6. //
  7. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  8. // This forms the javascript functions used for the display options
  9. // action pane for PowerPlay Studio.
  10. // The functions are Internet Explorer specific.
  11. var COLOR_TYPE_SOLID = 0;
  12. var COLOR_TYPE_PATTERN = 1;
  13. var COLOR_TYPE_GRADIENT = 2;
  14. var COLOR_TYPE_LINE = 3;
  15. var CHART_OPTION_VALUE_NONE = 0;
  16. var CHART_OPTION_VALUE_BOOLEAN = 1;
  17. var CHART_OPTION_VALUE_INTEGER = 2;
  18. var CHART_OPTION_VALUE_FLOAT = 3;
  19. var CHART_OPTION_VALUE_STRING = 4;
  20. var CHART_OPTION_VALUE_STAT_LINE = 5;
  21. var CHART_OPTION_VALUE_PALETTE_AREA = 6;
  22. var CHART_OPTION_VALUE_LINE = 7;
  23. var CHART_OPTION_VALUE_BACKGROUND_AREA = 8;
  24. var CHART_OPTION_VALUE_LABEL = 9;
  25. var CHART_OPTION_VALUE_TITLE = 10;
  26. var CHART_OPTION_VALUE_XTAB_FORMAT = 11;
  27. var PERCENTAGE_SCREEN_MIN_VALUE = 10;
  28. var PERCENTAGE_SCREEN_MAX_VALUE = 500;
  29. var CHOP_VALUE_SEPARATOR = ';';
  30. var currentTab = 1;
  31. var chartOptionValues = new Array();
  32. var chartOptionNames = new Array();
  33. var chartOptionsComboBoxes = new Array();
  34. var chartOptionComboBoxIds = new Array();
  35. var chartOptionsSliders = new Array();
  36. var fontArray = new Array();
  37. var seriesArray = new Array();
  38. function optionRec(name,details,changed,control) {
  39. this.name = name;
  40. this.details = details;
  41. this.changed = changed;
  42. this.control = control;
  43. }
  44. function fontOptionRec(name,bold,italic,bolditalic) {
  45. this.name = name;
  46. this.bold = bold;
  47. this.italic = italic;
  48. this.bolditalic = bolditalic;
  49. }
  50. function seriesRec(name,id) {
  51. this.name = name;
  52. this.id = id;
  53. }
  54. function optionValueBool(value) {
  55. this.value = value;
  56. }
  57. optionValueBool.prototype.type = CHART_OPTION_VALUE_BOOLEAN;
  58. function optionValueInt(value) {
  59. this.value = value;
  60. }
  61. optionValueInt.prototype.type = CHART_OPTION_VALUE_INTEGER;
  62. function optionValueFloat(value) {
  63. this.value = value;
  64. }
  65. optionValueFloat.prototype.type = CHART_OPTION_VALUE_FLOAT;
  66. function optionValueString(value) {
  67. this.value = value;
  68. }
  69. optionValueString.prototype.type = CHART_OPTION_VALUE_STRING;
  70. function optionValueStatLine(show, line_type, color, catId) {
  71. this.show = show;
  72. this.line_type = line_type;
  73. this.color = color;
  74. this.catId = catId;
  75. }
  76. optionValueStatLine.prototype.type = CHART_OPTION_VALUE_STAT_LINE;
  77. function optionValuePaletteArea(colorType,solidColor,patternColor1,patternColor2,gradientColor1,gradientColor2,pattern) {
  78. this.colorType = colorType;
  79. this.solidColor = solidColor;
  80. this.patternColor1 = patternColor1;
  81. this.patternColor2 = patternColor2;
  82. this.gradientColor1 = gradientColor1;
  83. this.gradientColor2 = gradientColor2;
  84. this.pattern = pattern;
  85. }
  86. optionValuePaletteArea.prototype.type = CHART_OPTION_VALUE_PALETTE_AREA;
  87. function optionValuePaletteLine(lineColor,lineType,markerType) {
  88. this.lineColor = lineColor;
  89. this.lineType = lineType;
  90. this.markerType = markerType;
  91. }
  92. optionValuePaletteLine.prototype.type = CHART_OPTION_VALUE_LINE;
  93. function optionValueBackgroundArea(colorType,solidColor,patternColor1,patternColor2,gradientColor1,gradientColor2,pattern,gradientType) {
  94. this.colorType = colorType;
  95. this.solidColor = solidColor;
  96. this.patternColor1 = patternColor1;
  97. this.patternColor2 = patternColor2;
  98. this.gradientColor1 = gradientColor1;
  99. this.gradientColor2 = gradientColor2;
  100. this.pattern = pattern;
  101. this.gradientType = gradientType;
  102. }
  103. optionValueBackgroundArea.prototype.type = CHART_OPTION_VALUE_BACKGROUND_AREA;
  104. function optionValueLabel(font,fontSize,color,bold,italic,underline) {
  105. this.font = font;
  106. this.fontSize = fontSize;
  107. this.color = color;
  108. this.bold = bold;
  109. this.italic = italic;
  110. this.underline = underline;
  111. }
  112. optionValueLabel.prototype.type = CHART_OPTION_VALUE_LABEL;
  113. function optionValueTitle(font,fontSize,color,bold,italic,underline,isDefault,title) {
  114. this.font = font;
  115. this.fontSize = fontSize;
  116. this.color = color;
  117. this.bold = bold;
  118. this.italic = italic;
  119. this.underline = underline;
  120. this.isdefault = isDefault
  121. this.title = title;
  122. }
  123. optionValueTitle.prototype.type = CHART_OPTION_VALUE_TITLE;
  124. function optionValueXtabFormat(useDefaults,font,fontSize,color,backColor,bold,italic,underline,textAlign) {
  125. this.useDefaults = useDefaults;
  126. this.font = font;
  127. this.fontSize = fontSize;
  128. this.color = color;
  129. this.backColor = backColor;
  130. this.bold = bold;
  131. this.italic = italic;
  132. this.underline = underline;
  133. this.textAlign = textAlign;
  134. }
  135. optionValueXtabFormat.prototype.type = CHART_OPTION_VALUE_XTAB_FORMAT;
  136. function storeOptionsUnderTag(currentTag) {
  137. if (currentTag.getAttribute && currentTag.getAttribute("optionName")) {
  138. var optionName = currentTag.getAttribute("optionName");
  139. if (chartOptionValues[optionName])
  140. chartOptionValues[optionName].control = currentTag;
  141. }
  142. var childNode = currentTag.firstChild;
  143. while (childNode) {
  144. storeOptionsUnderTag(childNode);
  145. childNode = childNode.nextSibling;
  146. }
  147. }
  148. function getSliderValue(slider) {
  149. var value = parseInt(slider.firstChild.firstChild.firstChild.nextSibling.firstChild.nextSibling.value);
  150. if (isNaN(value)) {
  151. value = parseInt(slider.firstChild.firstChild.firstChild.getAttribute("min"));
  152. slider.firstChild.firstChild.firstChild.nextSibling.firstChild.nextSibling.value = value;
  153. }
  154. return new optionValueInt(value);
  155. }
  156. function setSliderValue(slider,optionInt) {
  157. var text = slider.firstChild.firstChild.firstChild.nextSibling.firstChild.nextSibling;
  158. text.value = optionInt.value;
  159. sliderValueChanged(text);
  160. }
  161. function resetSliders() {
  162. var sliderText;
  163. for (var i = 0; i < chartOptionsSliders.length; i++) {
  164. sliderText = chartOptionsSliders[i].control.firstChild.firstChild.firstChild.nextSibling.firstChild.nextSibling;
  165. chartOptionsSliders[i].control.firstChild.firstChild.firstChild.firstChild.style.visibility = "visible";
  166. sliderValueChanged(sliderText);
  167. }
  168. }
  169. function hideSliders() {
  170. var sliderText;
  171. for (var i = 0; i < chartOptionsSliders.length; i++) {
  172. chartOptionsSliders[i].control.firstChild.firstChild.firstChild.firstChild.style.visibility = "hidden";
  173. }
  174. }
  175. function getCheck2RadValue(check2rad) {
  176. if (check2rad.checked) {
  177. if (check2rad.parentNode.parentNode.nextSibling.firstChild.nextSibling.firstChild.nextSibling.checked)
  178. return new optionValueInt(1);
  179. else
  180. return new optionValueInt(2);
  181. } else
  182. return new optionValueInt(0);
  183. }
  184. function setCheck2RadValue(check2rad,optionInt) {
  185. var check = check2rad;
  186. var rad1 = check.parentNode.parentNode.nextSibling.firstChild.nextSibling.firstChild.nextSibling;
  187. var rad2 = rad1.parentNode.parentNode.nextSibling.firstChild.nextSibling.firstChild.nextSibling;
  188. if (optionInt.value == 0) {
  189. check.checked = false;
  190. rad1.checked = true;
  191. rad2.checked = false;
  192. } else if (optionInt.value == 1) {
  193. check.checked = true;
  194. rad1.checked = true;
  195. rad2.checked = false;
  196. } else {
  197. check.checked = true;
  198. rad1.checked = false;
  199. rad2.checked = true;
  200. }
  201. }
  202. function get3RadValue(threeRad) {
  203. if (!threeRad.checked) {
  204. if (threeRad.parentNode.parentNode.nextSibling.firstChild.firstChild.nextSibling.checked)
  205. return new optionValueInt(1);
  206. else
  207. return new optionValueInt(2);
  208. } else
  209. return new optionValueInt(0);
  210. }
  211. function set3RadValue(threeRad,optionInt) {
  212. var rad1 = threeRad;
  213. var rad2 = rad1.parentNode.parentNode.nextSibling.firstChild.firstChild.nextSibling;
  214. var rad3 = rad2.parentNode.parentNode.nextSibling.firstChild.firstChild.nextSibling;
  215. if (optionInt.value == 0) {
  216. rad1.checked = true;
  217. rad2.checked = false;
  218. rad3.checked = false;
  219. } else if (optionInt.value == 1) {
  220. rad1.checked = false;
  221. rad2.checked = true;
  222. rad3.checked = false;
  223. } else {
  224. rad1.checked = false;
  225. rad2.checked = false;
  226. rad3.checked = true;
  227. }
  228. }
  229. function getStatisticalValue(statItem) {
  230. var show = statItem.firstChild.firstChild.firstChild.firstChild.checked;
  231. var currentCtrl = statItem.firstChild.firstChild.nextSibling.nextSibling.firstChild.nextSibling;
  232. var catId = 0;
  233. if (currentCtrl.firstChild && currentCtrl.firstChild.id.indexOf("_series") > 0) {
  234. catId = seriesArray[chartOptionsComboBoxes[currentCtrl.firstChild.id].getSelectedItem()].id;
  235. }
  236. currentCtrl = currentCtrl.nextSibling;
  237. var lineType = chartOptionsComboBoxes[currentCtrl.firstChild.id].getSelectedItem();
  238. var color = getColorPickerColor(currentCtrl.nextSibling.firstChild.id);
  239. return new optionValueStatLine(show,lineType,color,catId);
  240. }
  241. function setStatisticalValue(statItem,optionStat) {
  242. statItem.firstChild.firstChild.firstChild.firstChild.checked = optionStat.show;
  243. var currentCtrl = statItem.firstChild.firstChild.nextSibling.nextSibling.firstChild.nextSibling;
  244. if (currentCtrl.firstChild && currentCtrl.firstChild.id.indexOf("_series") > 0) {
  245. var found = false;
  246. for (var i = 0; i < seriesArray.length && !found; i++) {
  247. if (seriesArray[i].id == optionStat.catId) {
  248. chartOptionsComboBoxes[currentCtrl.firstChild.id].setSelectedItem(i);
  249. found = true;
  250. }
  251. }
  252. if (!found)
  253. {
  254. chartOptionsComboBoxes[currentCtrl.firstChild.id].setSelectedItem(0);
  255. statItem.firstChild.firstChild.firstChild.firstChild.checked = false;
  256. }
  257. }
  258. currentCtrl = currentCtrl.nextSibling;
  259. chartOptionsComboBoxes[currentCtrl.firstChild.id].setSelectedItem(optionStat.line_type);
  260. var colorPicker = currentCtrl.nextSibling.firstChild;
  261. setColorPicker(colorPicker.id,optionStat.color);
  262. }
  263. function initializeOptionValues() {
  264. for (var i = 0; i < chartOptionNames.length; i++) {
  265. var option = chartOptionValues[chartOptionNames[i]];
  266. if (option.control) { //make sure the UI exposes this option
  267. if (option.details.type == CHART_OPTION_VALUE_BOOLEAN) {
  268. if (option.control.type == "checkbox") {
  269. option.control.checked = option.details.value;
  270. } else if (option.control.type == "radio") {
  271. option.control.checked = option.details.value;
  272. document.getElementById(option.control.id + "2").checked = !option.control.checked;
  273. }
  274. } else if (option.details.type == CHART_OPTION_VALUE_INTEGER) {
  275. if (option.control.type == "text") {
  276. option.control.value = option.details.value;
  277. } else if (option.control.getAttribute("optionType") == "slider") {
  278. setSliderValue(option.control,option.details);
  279. chartOptionsSliders[chartOptionsSliders.length] = option;
  280. } else if (option.control.tagName.toUpperCase() == "SELECT") {
  281. if (option.control.getAttribute("valueOffset"))
  282. option.control.selectedIndex = option.details.value + parseInt(option.control.getAttribute("valueOffset"));
  283. else
  284. option.control.selectedIndex = option.details.value;
  285. } else if (option.control.getAttribute("optionType") == "check2rad") {
  286. setCheck2RadValue(option.control,option.details);
  287. } else if (option.control.getAttribute("optionType") == "3rad") {
  288. set3RadValue(option.control,option.details);
  289. }
  290. } else if (option.details.type == CHART_OPTION_VALUE_FLOAT) {
  291. if (option.control.type == "text") {
  292. option.control.value = option.details.value;
  293. }
  294. } else if (option.details.type == CHART_OPTION_VALUE_STRING) {
  295. if (option.control.type == "text") {
  296. option.control.value = option.details.value;
  297. }
  298. } else if (option.details.type == CHART_OPTION_VALUE_STAT_LINE) {
  299. if (option.control.getAttribute("optionType") == "statistical") {
  300. setStatisticalValue(option.control,option.details);
  301. }
  302. } else if (option.details.type == CHART_OPTION_VALUE_PALETTE_AREA) {
  303. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "DIV") {
  304. option.control.setAttribute("colorType",option.details.colorType);
  305. option.control.setAttribute("solidColor",option.details.solidColor);
  306. option.control.setAttribute("patternColor1",option.details.patternColor1);
  307. option.control.setAttribute("patternColor2",option.details.patternColor2);
  308. option.control.setAttribute("gradientColor1",option.details.gradientColor1);
  309. option.control.setAttribute("gradientColor2",option.details.gradientColor2);
  310. option.control.setAttribute("pattern",option.details.pattern);
  311. }
  312. } else if (option.details.type == CHART_OPTION_VALUE_LINE) {
  313. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "DIV") {
  314. option.control.setAttribute("colorType",COLOR_TYPE_LINE);
  315. option.control.setAttribute("lineColor",option.details.lineColor);
  316. option.control.setAttribute("lineType",option.details.lineType);
  317. option.control.setAttribute("markerType",option.details.markerType);
  318. }
  319. } else if (option.details.type == CHART_OPTION_VALUE_BACKGROUND_AREA) {
  320. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "OPTION") {
  321. option.control.setAttribute("colorType",option.details.colorType);
  322. option.control.setAttribute("solidColor",option.details.solidColor);
  323. option.control.setAttribute("patternColor1",option.details.patternColor1);
  324. option.control.setAttribute("patternColor2",option.details.patternColor2);
  325. option.control.setAttribute("gradientColor1",option.details.gradientColor1);
  326. option.control.setAttribute("gradientColor2",option.details.gradientColor2);
  327. option.control.setAttribute("pattern",option.details.pattern);
  328. option.control.setAttribute("gradientType",option.details.gradientType);
  329. }
  330. } else if (option.details.type == CHART_OPTION_VALUE_LABEL) {
  331. if (option.control.tagName.toUpperCase() == "DIV") {
  332. option.control.setAttribute("font",option.details.font);
  333. option.control.setAttribute("fontSize",option.details.fontSize);
  334. option.control.setAttribute("color",option.details.color);
  335. option.control.setAttribute("bold",(option.details.bold)? "true" : "false");
  336. option.control.setAttribute("italic",(option.details.italic)? "true" : "false");
  337. option.control.setAttribute("underline",(option.details.underline)? "true" : "false");
  338. }
  339. } else if (option.details.type == CHART_OPTION_VALUE_TITLE) {
  340. if (option.control.tagName.toUpperCase() == "DIV") {
  341. option.control.setAttribute("font",option.details.font);
  342. option.control.setAttribute("fontSize",option.details.fontSize);
  343. option.control.setAttribute("color",option.details.color);
  344. option.control.setAttribute("bold",(option.details.bold)? "true" : "false");
  345. option.control.setAttribute("italic",(option.details.italic)? "true" : "false");
  346. option.control.setAttribute("underline",(option.details.underline)? "true" : "false");
  347. option.control.setAttribute("isdefault",(option.details.isdefault)? "true" : "false");
  348. option.control.setAttribute("title",option.details.title);
  349. }
  350. } else if (option.details.type == CHART_OPTION_VALUE_XTAB_FORMAT) {
  351. if (option.control.tagName.toUpperCase() == "SPAN") {
  352. option.control.setAttribute("useDefaults",(option.details.useDefaults)? "true" : "false");
  353. option.control.setAttribute("font",option.details.font);
  354. option.control.setAttribute("fontSize",option.details.fontSize);
  355. option.control.setAttribute("color",option.details.color);
  356. option.control.setAttribute("backColor",option.details.backColor);
  357. option.control.setAttribute("bold",(option.details.bold)? "true" : "false");
  358. option.control.setAttribute("italic",(option.details.italic)? "true" : "false");
  359. option.control.setAttribute("underline",(option.details.underline)? "true" : "false");
  360. option.control.setAttribute("textAlign",option.details.textAlign);
  361. }
  362. }
  363. }
  364. }
  365. }
  366. function createCommand() {
  367. setOptionValues();
  368. var cmd = "";
  369. for (var i = 0; i < chartOptionNames.length; i++) {
  370. var option = chartOptionValues[chartOptionNames[i]];
  371. if (option.changed) {
  372. cmd += '"' + option.name + CHOP_VALUE_SEPARATOR + option.details.type + CHOP_VALUE_SEPARATOR;
  373. if (option.details.type == CHART_OPTION_VALUE_BOOLEAN) {
  374. cmd += (option.details.value)? '1':'0';
  375. } else if (option.details.type == CHART_OPTION_VALUE_INTEGER) {
  376. cmd += option.details.value;
  377. } else if (option.details.type == CHART_OPTION_VALUE_FLOAT) {
  378. cmd += option.details.value;
  379. } else if (option.details.type == CHART_OPTION_VALUE_STRING) {
  380. cmd += option.details.value;
  381. } else if (option.details.type == CHART_OPTION_VALUE_STAT_LINE) {
  382. cmd += (option.details.show)? '1':'0';
  383. cmd += CHOP_VALUE_SEPARATOR + option.details.line_type;
  384. cmd += CHOP_VALUE_SEPARATOR + option.details.color;
  385. cmd += CHOP_VALUE_SEPARATOR + option.details.catId;
  386. } else if (option.details.type == CHART_OPTION_VALUE_PALETTE_AREA) {
  387. cmd += option.details.colorType;
  388. cmd += CHOP_VALUE_SEPARATOR + option.details.solidColor;
  389. cmd += CHOP_VALUE_SEPARATOR + option.details.patternColor1;
  390. cmd += CHOP_VALUE_SEPARATOR + option.details.patternColor2;
  391. cmd += CHOP_VALUE_SEPARATOR + option.details.gradientColor1;
  392. cmd += CHOP_VALUE_SEPARATOR + option.details.gradientColor2;
  393. cmd += CHOP_VALUE_SEPARATOR + option.details.pattern;
  394. } else if (option.details.type == CHART_OPTION_VALUE_LINE) {
  395. cmd += option.details.lineColor;
  396. cmd += CHOP_VALUE_SEPARATOR + option.details.lineType;
  397. cmd += CHOP_VALUE_SEPARATOR + option.details.markerType;
  398. } else if (option.details.type == CHART_OPTION_VALUE_BACKGROUND_AREA) {
  399. cmd += option.details.colorType;
  400. cmd += CHOP_VALUE_SEPARATOR + option.details.solidColor;
  401. cmd += CHOP_VALUE_SEPARATOR + option.details.patternColor1;
  402. cmd += CHOP_VALUE_SEPARATOR + option.details.patternColor2;
  403. cmd += CHOP_VALUE_SEPARATOR + option.details.gradientColor1;
  404. cmd += CHOP_VALUE_SEPARATOR + option.details.gradientColor2;
  405. cmd += CHOP_VALUE_SEPARATOR + option.details.pattern;
  406. cmd += CHOP_VALUE_SEPARATOR + option.details.gradientType;
  407. } else if (option.details.type == CHART_OPTION_VALUE_LABEL) {
  408. cmd += option.details.font;
  409. cmd += CHOP_VALUE_SEPARATOR + option.details.fontSize;
  410. cmd += CHOP_VALUE_SEPARATOR + option.details.color;
  411. cmd += CHOP_VALUE_SEPARATOR
  412. cmd += (option.details.bold)? "1":"0";
  413. cmd += CHOP_VALUE_SEPARATOR
  414. cmd += (option.details.italic)? "1":"0";
  415. cmd += CHOP_VALUE_SEPARATOR
  416. cmd += (option.details.underline)? "1":"0";
  417. } else if (option.details.type == CHART_OPTION_VALUE_TITLE) {
  418. cmd += option.details.font;
  419. cmd += CHOP_VALUE_SEPARATOR + option.details.fontSize;
  420. cmd += CHOP_VALUE_SEPARATOR + option.details.color;
  421. cmd += CHOP_VALUE_SEPARATOR
  422. cmd += (option.details.bold)? "1":"0";
  423. cmd += CHOP_VALUE_SEPARATOR
  424. cmd += (option.details.italic)? "1":"0";
  425. cmd += CHOP_VALUE_SEPARATOR
  426. cmd += (option.details.underline)? "1":"0";
  427. cmd += CHOP_VALUE_SEPARATOR
  428. cmd += (option.details.isdefault)? "1":"0";
  429. cmd += CHOP_VALUE_SEPARATOR + option.details.title;
  430. } else if (option.details.type == CHART_OPTION_VALUE_XTAB_FORMAT) {
  431. cmd += (option.details.useDefaults)? "1":"0";
  432. cmd += CHOP_VALUE_SEPARATOR
  433. cmd += option.details.font;
  434. cmd += CHOP_VALUE_SEPARATOR + option.details.fontSize;
  435. cmd += CHOP_VALUE_SEPARATOR + option.details.color;
  436. cmd += CHOP_VALUE_SEPARATOR + option.details.backColor;
  437. cmd += CHOP_VALUE_SEPARATOR
  438. cmd += (option.details.bold)? "1":"0";
  439. cmd += CHOP_VALUE_SEPARATOR
  440. cmd += (option.details.italic)? "1":"0";
  441. cmd += CHOP_VALUE_SEPARATOR
  442. cmd += (option.details.underline)? "1":"0";
  443. cmd += CHOP_VALUE_SEPARATOR
  444. cmd += option.details.textAlign;
  445. }
  446. cmd += '"\t';
  447. }
  448. }
  449. return cmd;
  450. }
  451. function isOptionChanged(name) {
  452. var option = chartOptionValues[name];
  453. if (option && option.control) {//Make sure the UI exposes this option
  454. if (option.details.type == CHART_OPTION_VALUE_BOOLEAN) {
  455. if (option.control.type == "checkbox") {
  456. if (option.details.value != option.control.checked)
  457. return true;
  458. } else if (option.control.type == "radio") {
  459. if (option.details.value != option.control.checked)
  460. return true;
  461. }
  462. } else if (option.details.type == CHART_OPTION_VALUE_INTEGER) {
  463. if (option.control.type == "text") {
  464. if (option.details.value != option.control.value)
  465. return true;
  466. } else if (option.control.getAttribute("optionType") == "slider") {
  467. var sliderValue = getSliderValue(option.control);
  468. if (sliderValue.value != option.details.value)
  469. return true;
  470. } else if (option.control.tagName.toUpperCase() == "SELECT") {
  471. var selectedValue = option.control.selectedIndex;
  472. if (option.control.getAttribute("valueOffset"))
  473. selectedValue -= parseInt(option.control.getAttribute("valueOffset"));
  474. if (selectedValue != option.details.value)
  475. return true;
  476. } else if (option.control.getAttribute("optionType") == "check2rad") {
  477. var check2RadValue = getCheck2RadValue(option.control);
  478. if (check2RadValue.value != option.details.value)
  479. return true;
  480. } else if (option.control.getAttribute("optionType") == "3rad") {
  481. var threeRadValue = get3RadValue(option.control);
  482. if (threeRadValue.value != option.details.value)
  483. return true;
  484. }
  485. } else if (option.details.type == CHART_OPTION_VALUE_FLOAT) {
  486. if (option.control.type == "text") {
  487. if (option.details.value != option.control.value)
  488. return true;
  489. }
  490. } else if (option.details.type == CHART_OPTION_VALUE_STRING) {
  491. if (option.control.type == "text") {
  492. if (option.details.value != option.control.value)
  493. return true;
  494. }
  495. } else if (option.details.type == CHART_OPTION_VALUE_STAT_LINE) {
  496. if (option.control.getAttribute("optionType") == "statistical") {
  497. var statLineValue = getStatisticalValue(option.control);
  498. if (statLineValue.show != option.details.show ||
  499. statLineValue.line_type != option.details.line_type ||
  500. statLineValue.color != option.details.color ||
  501. statLineValue.catId != option.details.catId)
  502. return true;
  503. }
  504. } else if (option.details.type == CHART_OPTION_VALUE_PALETTE_AREA) {
  505. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "DIV") {
  506. if ((parseInt(option.control.getAttribute("colorType")) != option.details.colorType) ||
  507. (option.control.getAttribute("solidColor") != option.details.solidColor) ||
  508. (option.control.getAttribute("patternColor1") != option.details.patternColor1) ||
  509. (option.control.getAttribute("patternColor2") != option.details.patternColor2) ||
  510. (option.control.getAttribute("gradientColor1") != option.details.gradientColor1) ||
  511. (option.control.getAttribute("gradientColor2") != option.details.gradientColor2) ||
  512. (parseInt(option.control.getAttribute("pattern")) != option.details.pattern))
  513. return true;
  514. }
  515. } else if (option.details.type == CHART_OPTION_VALUE_LINE) {
  516. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "DIV") {
  517. if (option.details.lineColor != option.control.getAttribute("lineColor") ||
  518. option.details.lineType != parseInt(option.control.getAttribute("lineType")) ||
  519. option.details.markerType != parseInt(option.control.getAttribute("markerType")))
  520. return true;
  521. }
  522. } else if (option.details.type == CHART_OPTION_VALUE_BACKGROUND_AREA) {
  523. if (option.control.getAttribute("optionType") == "paletteTable" || option.control.tagName.toUpperCase() == "OPTION") {
  524. if ((parseInt(option.control.getAttribute("colorType")) != option.details.colorType) ||
  525. (option.control.getAttribute("solidColor") != option.details.solidColor) ||
  526. (option.control.getAttribute("patternColor1") != option.details.patternColor1) ||
  527. (option.control.getAttribute("patternColor2") != option.details.patternColor2) ||
  528. (option.control.getAttribute("gradientColor1") != option.details.gradientColor1) ||
  529. (option.control.getAttribute("gradientColor2") != option.details.gradientColor2) ||
  530. (parseInt(option.control.getAttribute("pattern")) != option.details.pattern) ||
  531. (parseInt(option.control.getAttribute("gradientType")) != option.details.gradientType))
  532. return true;
  533. }
  534. } else if (option.details.type == CHART_OPTION_VALUE_LABEL) {
  535. if (option.control.tagName.toUpperCase() == "DIV") {
  536. if ((option.details.font != option.control.getAttribute("font")) ||
  537. (option.details.fontSize != parseInt(option.control.getAttribute("fontSize"))) ||
  538. (option.details.color != option.control.getAttribute("color")) ||
  539. (option.details.bold != (option.control.getAttribute("bold") == "true")) ||
  540. (option.details.italic != (option.control.getAttribute("italic") == "true")) ||
  541. (option.details.underline != (option.control.getAttribute("underline") == "true")))
  542. return true;
  543. }
  544. } else if (option.details.type == CHART_OPTION_VALUE_TITLE) {
  545. if (option.control.tagName.toUpperCase() == "DIV") {
  546. if ((option.details.font != option.control.getAttribute("font")) ||
  547. (option.details.fontSize != parseInt(option.control.getAttribute("fontSize"))) ||
  548. (option.details.color != option.control.getAttribute("color")) ||
  549. (option.details.bold != (option.control.getAttribute("bold") == "true")) ||
  550. (option.details.italic != (option.control.getAttribute("italic") == "true")) ||
  551. (option.details.underline != (option.control.getAttribute("underline") == "true")) ||
  552. (option.details.isdefault != (option.control.getAttribute("isdefault") == "true")) ||
  553. (option.details.title != option.control.getAttribute("title")))
  554. return true;
  555. }
  556. } else if (option.details.type == CHART_OPTION_VALUE_XTAB_FORMAT) {
  557. if (option.control.tagName.toUpperCase() == "SPAN") {
  558. if ((option.details.useDefaults != option.control.getAttribute("useDefaults")) ||
  559. (option.details.font != option.control.getAttribute("font")) ||
  560. (option.details.fontSize != parseInt(option.control.getAttribute("fontSize"))) ||
  561. (option.details.color != option.control.getAttribute("color")) ||
  562. (option.details.backColor != option.control.getAttribute("backColor")) ||
  563. (option.details.bold != (option.control.getAttribute("bold") == "true")) ||
  564. (option.details.italic != (option.control.getAttribute("italic") == "true")) ||
  565. (option.details.underline != (option.control.getAttribute("underline") == "true")) ||
  566. (option.details.textAlign != option.control.getAttribute("textAlign")))
  567. return true;
  568. }
  569. }
  570. }
  571. return false;
  572. }
  573. function setOptionValues() {
  574. for (var i = 0; i < chartOptionNames.length; i++) {
  575. var option = chartOptionValues[chartOptionNames[i]];
  576. if (option.control && isOptionChanged(chartOptionNames[i])) {//Make sure the UI exposes this option
  577. option.changed = true;
  578. if (option.details.type == CHART_OPTION_VALUE_BOOLEAN) {
  579. option.details.value = option.control.checked;
  580. } else if (option.details.type == CHART_OPTION_VALUE_INTEGER) {
  581. if (option.control.type == "text") {
  582. option.details.value = option.control.value;
  583. } else if (option.control.getAttribute("optionType") == "slider") {
  584. option.details = getSliderValue(option.control);
  585. } else if (option.control.tagName.toUpperCase() == "SELECT") {
  586. var selectedValue = option.control.selectedIndex;
  587. if (option.control.getAttribute("valueOffset"))
  588. selectedValue -= parseInt(option.control.getAttribute("valueOffset"));
  589. option.details.value = selectedValue;
  590. } else if (option.control.getAttribute("optionType") == "check2rad") {
  591. option.details = getCheck2RadValue(option.control);
  592. } else if (option.control.getAttribute("optionType") == "3rad") {
  593. option.details = get3RadValue(option.control);
  594. }
  595. } else if (option.details.type == CHART_OPTION_VALUE_FLOAT) {
  596. option.details.value = option.control.value;
  597. } else if (option.details.type == CHART_OPTION_VALUE_STRING) {
  598. option.details.value = option.control.value;
  599. } else if (option.details.type == CHART_OPTION_VALUE_STAT_LINE) {
  600. option.details = getStatisticalValue(option.control);
  601. } else if (option.details.type == CHART_OPTION_VALUE_PALETTE_AREA) {
  602. option.details.colorType = parseInt(option.control.getAttribute("colorType"));
  603. option.details.solidColor = option.control.getAttribute("solidColor");
  604. option.details.patternColor1 = option.control.getAttribute("patternColor1");
  605. option.details.patternColor2 = option.control.getAttribute("patternColor2");
  606. option.details.gradientColor1 = option.control.getAttribute("gradientColor1");
  607. option.details.gradientColor2 = option.control.getAttribute("gradientColor2");
  608. option.details.pattern = parseInt(option.control.getAttribute("pattern"));
  609. } else if (option.details.type == CHART_OPTION_VALUE_LINE) {
  610. option.details.lineColor = option.control.getAttribute("lineColor");
  611. option.details.lineType = parseInt(option.control.getAttribute("lineType"));
  612. option.details.markerType = parseInt(option.control.getAttribute("markerType"));
  613. } else if (option.details.type == CHART_OPTION_VALUE_BACKGROUND_AREA) {
  614. option.details.colorType = parseInt(option.control.getAttribute("colorType"));
  615. option.details.solidColor = option.control.getAttribute("solidColor");
  616. option.details.patternColor1 = option.control.getAttribute("patternColor1");
  617. option.details.patternColor2 = option.control.getAttribute("patternColor2");
  618. option.details.gradientColor1 = option.control.getAttribute("gradientColor1");
  619. option.details.gradientColor2 = option.control.getAttribute("gradientColor2");
  620. option.details.pattern = parseInt(option.control.getAttribute("pattern"));
  621. option.details.gradientType = parseInt(option.control.getAttribute("gradientType"));
  622. } else if (option.details.type == CHART_OPTION_VALUE_LABEL) {
  623. option.details.font = option.control.getAttribute("font");
  624. option.details.fontSize = option.control.getAttribute("fontSize");
  625. option.details.color = option.control.getAttribute("color");
  626. option.details.bold = (option.control.getAttribute("bold") == "true");
  627. option.details.italic = (option.control.getAttribute("italic") == "true");
  628. option.details.underline = (option.control.getAttribute("underline") == "true");
  629. } else if (option.details.type == CHART_OPTION_VALUE_TITLE) {
  630. option.details.font = option.control.getAttribute("font");
  631. option.details.fontSize = option.control.getAttribute("fontSize");
  632. option.details.color = option.control.getAttribute("color");
  633. option.details.bold = (option.control.getAttribute("bold") == "true");
  634. option.details.italic = (option.control.getAttribute("italic") == "true");
  635. option.details.underline = (option.control.getAttribute("underline") == "true");
  636. option.details.isdefault = (option.control.getAttribute("isdefault") == "true");
  637. option.details.title = option.control.getAttribute("title");
  638. } else if (option.details.type == CHART_OPTION_VALUE_XTAB_FORMAT) {
  639. option.details.useDefaults = (option.control.getAttribute("useDefaults") == "true");
  640. option.details.font = option.control.getAttribute("font");
  641. option.details.fontSize = option.control.getAttribute("fontSize");
  642. option.details.color = option.control.getAttribute("color");
  643. option.details.backColor = option.control.getAttribute("backColor");
  644. option.details.bold = (option.control.getAttribute("bold") == "true");
  645. option.details.italic = (option.control.getAttribute("italic") == "true");
  646. option.details.underline = (option.control.getAttribute("underline") == "true");
  647. option.details.textAlign = option.control.getAttribute("textAlign");
  648. }
  649. }
  650. }
  651. }