selection.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  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. var selectedCells = new Array();
  9. var allSelected = false;
  10. var levelSelected = false;
  11. var selectionClassNames = new Array();
  12. selectedCellClass = "cell-selected";
  13. selectedIntersectionClass = "cell-intersection-selected";
  14. selectedHeaderClass = "header-selected";
  15. function processClickSelections(event)
  16. {
  17. if ( event["altKey"] && topparent.getGlobal("safari"))
  18. contextMenu(event);
  19. else
  20. processSelection(event);
  21. }
  22. function processSelection(event)
  23. {
  24. if (!topparent.allFramesInitialized())
  25. return;
  26. var eventM = new eventManager(event);
  27. var src = eventM.getSrc();
  28. //Clear the dimbar flyouts
  29. if (topparent.getXtabFrame() == window && topparent.getChartFrame())
  30. topparent.getChartFrame().clearFlyouts();
  31. else
  32. clearFlyouts();
  33. //check if a link or img has been clicked....
  34. if ( (eventM.theEvent.type != "contextmenu") &&
  35. ( (!src.tagName && src.parentNode.tagName == "A" && src.parentNode.className == "link") ||
  36. (src.tagName == "A" && (src.href && src.href != "") || (src.onclick && src.onclick != "")) ||
  37. (src.tagName == "IMG" && typeof src.onclick != "undefined" && src.onclick != null) ||
  38. (src.tagName == "AREA" && typeof src.onclick != "undefined") ) )
  39. return true;
  40. allSelected = false;
  41. var objects = new Array();
  42. var obj = bubbleToSelectionSensitiveObject(src);
  43. //If this is split view, we count this action as a deselect in the other frame.
  44. if (topparent.getGlobal("isSplitView") && (window == topparent.getXtabFrame() || obj == null)) {
  45. var frame = topparent.getChartFrame();
  46. frame.deselectAllXtab(event);
  47. frame.refreshToolbarState();
  48. frame.refreshActionPane();
  49. }
  50. if (topparent.getGlobal("isSplitView") && (window == topparent.getChartFrame()) || obj == null)
  51. {
  52. var frame = topparent.getXtabFrame();
  53. frame.deselectAllXtab(event);
  54. frame.refreshToolbarState();
  55. frame.refreshActionPane();
  56. }
  57. if (obj != null) {
  58. var ctrlPressed = (topparent.getGlobal("MacGecko"))? eventM.theEvent.altKey : eventM.theEvent.ctrlKey;
  59. var currentIdx = getSelectedCellIndex(obj);
  60. if (obj.id) {
  61. if ( !ctrlPressed || obj.getAttribute("type").charAt(0) == "l" || allSelected)
  62. {
  63. //Clear all present selection
  64. deselectAllXtab(event);
  65. if (currentIdx < 0 || obj.getAttribute("type").charAt(0) == "l") { //if wasn't selected, select it
  66. processSelectionObj(event, obj, true)
  67. addSelectedCells(obj);
  68. }
  69. }
  70. else //ctrl is pressed...
  71. {
  72. //Clear Level Selection
  73. if (levelSelected)
  74. deselectLevels();
  75. //If it is currently selected, deselect it
  76. if (currentIdx >= 0) {
  77. processSelectionObj(event, obj, false)
  78. removeSelectedCells(obj);
  79. } else { //select it
  80. processSelectionObj(event, obj, true)
  81. addSelectedCells(obj);
  82. }
  83. }
  84. }
  85. refreshToolbarState();
  86. refreshActionPane();
  87. if (obj.getAttribute("type").charAt(0) != "l")
  88. hideFloatingToolbar();
  89. eventM.cancelBubble();
  90. }
  91. }
  92. function processSelectionObj(event, obj, selecting) {
  93. var type = obj.getAttribute("type");
  94. if (type == "d")
  95. selectCell(event, obj, selecting);
  96. else if (type == "r")
  97. selectRow(event, obj, selecting);
  98. else if (type == "c")
  99. selectColumn(event, obj, selecting);
  100. else if (type == "m")
  101. {
  102. if (topparent.getXtabFrame().document.fhidden.ACTPANE.value == 8) //custom exceptions
  103. selectAllXtab(event, selecting);
  104. }
  105. else if (type.indexOf("lr") >= 0 || type.indexOf("lc") >= 0)
  106. {
  107. selectLevel(event, obj, selecting);
  108. }
  109. }
  110. function bubbleToSelectionSensitiveObject( obj )
  111. {
  112. var target = obj;
  113. if (!obj)
  114. return null;
  115. if (!obj.getAttribute || !obj.getAttribute("type") || obj.getAttribute("type") == "" || obj.getAttribute("type") == "rn" || obj.getAttribute("type") == "cn")
  116. target = bubbleToSelectionSensitiveObject( obj.parentNode );
  117. return target;
  118. }
  119. function selectCell(event, obj, selecting)
  120. {
  121. selectRow(event, xtabCache.getRowHeader(parseRowId(obj.id)), selecting);
  122. selectColumn(event, xtabCache.getColHeader(parseColId(obj.id)), selecting);
  123. }
  124. function selectRow(event, obj, selecting)
  125. {
  126. var rowID = parseRowId(obj.id);
  127. var colID = parseColId(obj.id);
  128. if (rowID == "" || colID == "")
  129. return;
  130. xtabCache.selectRow(rowID,colID,selecting);
  131. if (selecting)
  132. addSelectedObject(obj)
  133. else
  134. removeSelectedObject(obj)
  135. }
  136. function selectColumn(event, obj, selecting)
  137. {
  138. var rowID = parseRowId(obj.id);
  139. var colID = parseColId(obj.id);
  140. if (rowID == "" || colID == "")
  141. return;
  142. xtabCache.selectCol(rowID,colID,selecting);
  143. if (selecting)
  144. addSelectedObject(obj)
  145. else
  146. removeSelectedObject(obj)
  147. }
  148. function mouseOverHeader(event) {
  149. if (!topparent.getGlobal("dndManager").isDraggingAnItem()) {
  150. var eventM = new eventManager(event);
  151. var obj = bubbleToSelectionSensitiveObject(eventM.getSrc());
  152. var rowID = parseRowId(obj.id);
  153. var colID = parseColId(obj.id);
  154. doMouseOverHeader(rowID,colID,true);
  155. }
  156. }
  157. function mouseLeaveHeader(event) {
  158. var eventM = new eventManager(event);
  159. var obj = bubbleToSelectionSensitiveObject(eventM.getSrc());
  160. var rowID = parseRowId(obj.id);
  161. var colID = parseColId(obj.id);
  162. doMouseOverHeader(rowID,colID,false);
  163. }
  164. function doMouseOverHeader(rowID,colID,Select) {
  165. if (xtabCache && typeof xtabCache != "undefined" && xtabCache.initialized)
  166. xtabCache.mouseOverHeader(rowID,colID,Select);
  167. else //defer to a new javascript thread after the xtabCache initialization is complete
  168. setTimeout("doMouseOverHeader(" + rowID + "," + colID + "," + Select + ");",1);
  169. }
  170. function selectLevel(event, obj, selecting)
  171. {
  172. var eventM = new eventManager(event);
  173. var evtype = eventM.theEvent.type;
  174. var ele;
  175. var level = parseLevelNumber ( obj.getAttribute("type") );
  176. if (evtype == "click" || evtype== "drop" || evtype.indexOf("drag") >= 0 || evtype == "contextmenu" || evtype == "mouseover")
  177. {
  178. if (evtype == "click" || evtype == "contextmenu")
  179. xtabCache.selectLevel(obj.getAttribute("type").charAt(1),level,selecting);
  180. else
  181. xtabCache.dragOverLevel(obj.getAttribute("type").charAt(1),level,selecting);
  182. if (evtype == "click" && !obj.getAttribute("splitview") && selecting)
  183. showFloatingToolbar(event, obj);
  184. }
  185. levelSelected = selecting;
  186. }
  187. function deselectAllXtab(event)
  188. {
  189. if (allSelected) {
  190. selectAllXtab(event, false);
  191. }
  192. var objects = getSelectedCells();
  193. for (var i = 0; i < objects.length; i++)
  194. {
  195. processSelectionObj(event, objects[i], false);
  196. removeSelectedCells(objects[i]);
  197. }
  198. hideFloatingToolbar();
  199. topparent.executeCrossFrameFunction( "hidePopupMenu", theWindow.name, true);
  200. hideChartDropdowns(event);
  201. }
  202. function deselectLevels()
  203. {
  204. var objects = getSelectedCells();
  205. for (var i = 0; i < objects.length; i++)
  206. if (objects[i].getAttribute("type").charAt(0) == "l") {
  207. processSelectionObj(event, objects[i], false);
  208. removeSelectedCells(objects[i]);
  209. }
  210. levelSelected = false;
  211. hideFloatingToolbar();
  212. topparent.executeCrossFrameFunction( "hidePopupMenu", theWindow.name, true);
  213. }
  214. function selectAllXtab(event, selecting)
  215. {
  216. var lowerbound = 0;
  217. var upperbound = numColLevels;
  218. for (var i = lowerbound; i < upperbound; i++)
  219. {
  220. var obj = xtabCache.getXtabLevelSelector("c",i);
  221. if (obj)
  222. {
  223. selectLevel(event, obj, selecting);
  224. }
  225. }
  226. lowerbound = 0;
  227. upperbound = numRowLevels;
  228. for (var i = lowerbound; i < upperbound; i++)
  229. {
  230. var obj = xtabCache.getXtabLevelSelector("r",i);
  231. if (obj)
  232. {
  233. selectLevel(event, obj, selecting);
  234. }
  235. }
  236. allSelected = selecting;
  237. }
  238. function parseParentId( id )
  239. {
  240. if (!id)
  241. return null;
  242. var comma = id.indexOf(",");
  243. return id.substr(0, comma);
  244. }
  245. function parseChildRange( id )
  246. {
  247. var comma = id.indexOf(",");
  248. return id.substr(comma+1);
  249. }
  250. function parseRowId( id )
  251. {
  252. var comma = id.indexOf(",");
  253. var dash = id.indexOf("-");
  254. return id.substr(comma+1, dash);
  255. }
  256. function parseColId( id )
  257. {
  258. var dash = id.indexOf("-") + 1;
  259. return id.substr(dash);
  260. }
  261. function parseLevelNumber ( type )
  262. {
  263. var index = Math.max(type.indexOf("lr"), type.indexOf("lc")) + 2;
  264. return type.substr(index);
  265. }
  266. function getSelectedClassName( obj )
  267. {
  268. var type = obj.getAttribute("type");
  269. var name = ""
  270. if (type == "d")
  271. name = selectedCellClass;
  272. else if (type == "r" || type == "c")
  273. name = selectedHeaderClass;
  274. return name;
  275. }
  276. function getSelectedCellNumber()
  277. {
  278. return selectedCells.length;
  279. }
  280. function getSelectedCells()
  281. {
  282. return selectedCells.slice(0);
  283. }
  284. function getSelectedCellIndex ( obj )
  285. {
  286. var id = obj.id;
  287. var arr = getSelectedCells();
  288. var found = false;
  289. for (var i = 0; i < arr.length; i++)
  290. {
  291. if (arr[i].id == id)
  292. {
  293. found = true;
  294. break;
  295. }
  296. }
  297. if (found)
  298. return i;
  299. return -1;
  300. }
  301. function addSelectedCells( obj )
  302. {
  303. selectedCells[selectedCells.length] = obj;
  304. }
  305. function removeSelectedCells( obj )
  306. {
  307. var idx = getSelectedCellIndex(obj);
  308. selectedCells.splice(idx, 1);
  309. }
  310. function refreshToolbarState()
  311. {
  312. // Selection has changed, Do any toolbar button updates that depend on selection here.
  313. topparent.getToolbarFrame().OnXTabSelectionChange();
  314. }
  315. function refreshActionPane() {
  316. var actionFrame = topparent.getActionFrame();
  317. if (actionFrame.refresh) {
  318. if(topparent.getXtabFrame().fh.ACTPANE.value != 0)
  319. actionFrame.refresh();
  320. }
  321. }
  322. function addSelectedObject(obj)
  323. {
  324. var frame = topparent.getConfigFrame();
  325. if (obj.getAttribute("type") == "r")
  326. frame.selectedRows[frame.selectedRows.length] = obj;
  327. else
  328. frame.selectedColumns[frame.selectedColumns.length] = obj;
  329. }
  330. function removeSelectedObject(obj)
  331. {
  332. var frame = topparent.getConfigFrame();
  333. var arr;
  334. var id = obj.id;
  335. if (obj.getAttribute("type") == "r")
  336. arr = frame.selectedRows;
  337. else
  338. arr = frame.selectedColumns;
  339. var found = false;
  340. for (var i = 0; i < arr.length; i++)
  341. {
  342. var thisid = arr[i].id;
  343. if ( id == thisid )
  344. {
  345. arr.splice(i, 1);
  346. }
  347. }
  348. }
  349. function hoverOverArea(obj) {
  350. obj.className += " " + "levelover";
  351. var children = obj.childNodes;
  352. for (var i = 0; i < children.length; i++)
  353. {
  354. var child = children[i];
  355. if (child.tagName.toLowerCase() == "img")
  356. child.style.visibility = "visible";
  357. }
  358. }
  359. function deselectArea(obj) {
  360. var origName = obj.className;
  361. var pattern = RegExp(" levelover", "g");
  362. obj.className = origName.replace(pattern, "");
  363. var children = obj.childNodes;
  364. for (var i = 0; i < children.length; i++)
  365. {
  366. var child = children[i];
  367. if (child.tagName.toLowerCase() == "img")
  368. child.style.visibility = "hidden";
  369. }
  370. }
  371. function keyPressed(event) {
  372. if (!topparent.allFramesInitialized())
  373. return;
  374. var eventM = new eventManager(event);
  375. if (eventM.theEvent.keyCode == 27)
  376. {
  377. deselectAllXtab(event);
  378. refreshToolbarState();
  379. }
  380. else if (eventM.theEvent.keyCode == 46)
  381. deleteLevel();
  382. }
  383. function showFloatingToolbar(event, obj) {
  384. var eventM = new eventManager(event);
  385. if (eventM.getSrc().getAttribute("type") != "m") {
  386. var options = setLevelBarImages(obj);
  387. if (options != null)
  388. ContextMenu.display(event, options, true);
  389. }
  390. }
  391. function hideFloatingToolbar() {
  392. topparent.executeCrossFrameFunction ( 'hidePopupMenu', '', true);
  393. }
  394. function setLevelBarImages (obj){
  395. var cmdArray = new Array();
  396. var arrayContextMenu = topparent.getGlobal("main_ContextMenu");
  397. var type = obj.getAttribute("type");
  398. var selectedLevel = parseLevelNumber ( type );
  399. var canExpandLevel = parseInt(obj.getAttribute("canExpandLevel"));
  400. var canDrillOnLevel = parseInt(obj.getAttribute("canLevelDown"));
  401. var canDrillUpLevel = parseInt(obj.getAttribute("canLevelUp"));
  402. var selectedAxis, canMoveLevelLeft, canMoveLevelRight;
  403. if ( type.indexOf("lr") >= 0) {
  404. selectedAxis = "R";
  405. canMoveLevelLeft = parseInt(obj.getAttribute("canMoveLeft"));
  406. canMoveLevelRight = parseInt(obj.getAttribute("canMoveRight"));
  407. }
  408. else if ( type.indexOf("lc") >= 0) {
  409. selectedAxis = "C";
  410. canMoveLevelLeft = parseInt(obj.getAttribute("canMoveUp"));
  411. canMoveLevelRight = parseInt(obj.getAttribute("canMoveDown"));
  412. }
  413. var totalLevels = numRowLevels;
  414. if (selectedAxis == "C")
  415. totalLevels = numColLevels;
  416. var iconPath = topparent.getGlobal("imgPath");
  417. if(canExpandLevel == 0)
  418. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "expand_no.gif","",arrayContextMenu["expand"]._label,true);
  419. else
  420. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "expand.gif",function() { expand(); },arrayContextMenu["expand"]._label,false);
  421. if(totalLevels == 1)
  422. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "delete_no.gif","",arrayContextMenu["del"]._label,true);
  423. else
  424. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "delete.gif",function() { deleteLevel(); },arrayContextMenu["del"]._label,false);
  425. if(totalLevels == 1 || selectedLevel == 0 || canMoveLevelLeft == 0) {
  426. if(selectedAxis == 'C')
  427. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveup_no.gif","",arrayContextMenu["move_up"]._label,true);
  428. else
  429. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveleft_no.gif","",arrayContextMenu["move_left"]._label,true);
  430. }
  431. else {
  432. if(selectedAxis == 'C')
  433. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveup.gif",function() { moveLeftOrUp(); },arrayContextMenu["move_up"]._label,false);
  434. else
  435. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveleft.gif",function() { moveLeftOrUp(); },arrayContextMenu["move_left"]._label,false);
  436. }
  437. if(totalLevels == 1 || selectedLevel == totalLevels - 1 || canMoveLevelRight == 0) {
  438. if(selectedAxis == 'C')
  439. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "movedown_no.gif","",arrayContextMenu["move_down"]._label,true);
  440. else
  441. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveright_no.gif","",arrayContextMenu["move_right"]._label,true);
  442. }
  443. else {
  444. if(selectedAxis == 'C')
  445. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "movedown.gif",function() { moveRightOrDown(); },arrayContextMenu["move_down"]._label,false);
  446. else
  447. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "moveright.gif",function() { moveRightOrDown(); },arrayContextMenu["move_right"]._label,false);
  448. }
  449. if(canDrillOnLevel == 0) {
  450. if(selectedAxis == 'C')
  451. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "downlevel_columns_no.gif","",arrayContextMenu["down_level"]._label,true);
  452. else
  453. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "downlevel_rows_no.gif","",arrayContextMenu["down_level"]._label,true);
  454. }
  455. else {
  456. if(selectedAxis == 'C')
  457. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "downlevel_columns.gif",function() { drillDown(); },arrayContextMenu["down_level"]._label,false);
  458. else
  459. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "downlevel_rows.gif",function() { drillDown(); },arrayContextMenu["down_level"]._label,false);
  460. }
  461. if(canDrillUpLevel == 0) {
  462. if(selectedAxis == 'C')
  463. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "uplevel_columns_no.gif","",arrayContextMenu["up_level"]._label,true);
  464. else
  465. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "uplevel_rows_no.gif","",arrayContextMenu["up_level"]._label,true);
  466. }
  467. else {
  468. if(selectedAxis == 'C')
  469. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "uplevel_columns.gif",function() { drillUp(); },arrayContextMenu["up_level"]._label,false);
  470. else
  471. cmdArray[cmdArray.length] = new ContextImageItem(iconPath + "uplevel_rows.gif",function() { drillUp(); },arrayContextMenu["up_level"]._label,false);
  472. }
  473. cmdArray[cmdArray.length] = new ContextImageItem("../../ppwb/Icon24/explain.gif",function() { explain(); },arrayContextMenu["explain"]._label,false);
  474. return cmdArray;
  475. }
  476. function tabClicked(event) {
  477. if (!topparent.allFramesInitialized())
  478. return;
  479. var eventM = new eventManager(event);
  480. var frame = topparent.getChartFrame();
  481. if (frame) {
  482. frame.deselectAllXtab(event);
  483. frame.refreshActionPane();
  484. frame.refreshToolbarState();
  485. }
  486. frame = topparent.getXtabFrame();
  487. frame.deselectAllXtab(event);
  488. frame.refreshActionPane();
  489. frame.refreshToolbarState();
  490. eventM.cancelBubble();
  491. }
  492. function getSelected(type) {
  493. if (type == "r")
  494. {
  495. return topparent.getConfigFrame().selectedRows;
  496. }
  497. else if (type == "c")
  498. {
  499. return topparent.getConfigFrame().selectedColumns;
  500. }
  501. else
  502. return null;
  503. }
  504. function isLevelSelected(axis) {
  505. return (getSelectedLevel(axis) != null);
  506. }
  507. function getSelectedLevel(type) {
  508. var xtabFrame = topparent.getXtabFrame();
  509. if (xtabFrame.levelSelected &&
  510. xtabFrame.getSelectedCells().length == 1 &&
  511. (typeof type == "undefined" || type == null || xtabFrame.getSelectedCells()[0].getAttribute("type").indexOf(type) == 1)) {
  512. return xtabFrame.getSelectedCells()[0];
  513. } else {
  514. return null;
  515. }
  516. }
  517. function getSelectedLevelNum() {
  518. return parseInt(getSelectedLevel().getAttribute("type").substr(2));
  519. }
  520. function invokeSelection( rowSelId, colSelId )
  521. {
  522. var rowId;
  523. var colId;
  524. if( rowSelId && colSelId )
  525. { // cell selected
  526. rowId = parseInt(topparent.getXtabFrame().numColLevels) + parseInt(rowSelId);
  527. colId = parseInt(topparent.getXtabFrame().numRowLevels) + parseInt(colSelId);
  528. }
  529. else if( rowSelId )
  530. { // only row selected
  531. rowId = parseInt(topparent.getXtabFrame().numColLevels) + parseInt(rowSelId);
  532. colId = parseInt(topparent.getXtabFrame().numRowLevels) - 1;
  533. }
  534. else if( colSelId )
  535. { // only col selected
  536. rowId = parseInt(topparent.getXtabFrame().numColLevels) -1;
  537. colId = parseInt(topparent.getXtabFrame().numRowLevels) + parseInt(colSelId);
  538. }
  539. var selectedObjectID = rowId + "-" + colId ;
  540. fireSelectionEvent(selectedObjectID);
  541. }
  542. function fireSelectionEvent(id)
  543. {
  544. var selectedObject = topparent.getXtabFrame().document.getElementById( id );
  545. if (!selectedObject || !topparent.allFramesInitialized())
  546. {
  547. setTimeout("fireSelectionEvent('" + id + "')", 100);
  548. return;
  549. }
  550. processSelectionObj(null, selectedObject, true);
  551. addSelectedCells(selectedObject);
  552. }