XFormsContextMenu.prototype = new XFormsElement; function XFormsContextMenu (strParentId, strId, strTag, strNodeset, strLabel, strFunctionName, bEvent) { if (!strId) { return; } XFormsElement.call(this, strParentId, strId, strTag); this.m_strNodeset = strNodeset; this.m_strLabel = strLabel; this.m_strFunctionName = strFunctionName; this.m_bEvent = bEvent; }; XFormsContextMenu.prototype.init = function () { XFormsElement.prototype.init.call(this); }; XFormsContextMenu.prototype.createContextMenu = function (nLeft, nTop) { var strRef = this.m_strNodeset; var objInstance = model.getInstance(); var xlNode; var bCheckInstance = false; if (objInstance) { var xnRoot = objInstance.documentElement; if (xnRoot) { xlNode = xnRoot.selectNodes(strRef); if (xlNode) { for (var i = 0; i < xlNode.length; i++) { var xnNode = xlNode.item(i); var xnLabel = xnNode.selectSingleNode(this.m_strLabel); var xnFunction = xnNode.selectSingleNode(this.m_strFunctionName); if (xnLabel && xnFunction) { bCheckInstance = true; break; } } } } } if (!bCheckInstance) return; var xnContextMenu = document.createElement("table"); xnContextMenu.id = "HE___TF_ContextMenu"; xnContextMenu.cellSpacing = 0; xnContextMenu.cellPadding = 0; xnContextMenu.style.position = "absolute"; xnContextMenu.style.left = nLeft+"px"; xnContextMenu.style.top = nTop+"px"; xnContextMenu.style.border = "1px solid #A0A0A0"; xnContextMenu.style.backgroundColor = "#F0F0F0"; xnContextMenu.style.fontFamily = Lan_DefaultFontFamily; xnContextMenu.style.fontSize = "9pt"; xnContextMenu.style.color = "#000000"; xnContextMenu.style.cursor = "default"; var xnContextMenuTbody = document.createElement("tbody"); for (var i = 0; i < xlNode.length; i++) { var xnNode = xlNode.item(i); var xnLabel = xnNode.selectSingleNode(this.m_strLabel); var xnFunction = xnNode.selectSingleNode(this.m_strFunctionName); if (!xnLabel || !xnFunction) { continue; } var strLabel = XmlLib.getTextValue(xnLabel); var strFunction = XmlLib.getTextValue(xnFunction); if (strFunction == "") { var xnContextMenuTR1 = document.createElement("tr"); var xnContextMenuTD11 = document.createElement("td"); xnContextMenuTD11.style.width = "28px"; xnContextMenuTD11.style.height = "1px"; var xnContextMenuTD12 = document.createElement("td"); xnContextMenuTD12.style.width = "1px"; xnContextMenuTD12.style.backgroundColor = "#E2E3E3"; var xnContextMenuTD13 = document.createElement("td"); xnContextMenuTD13.style.width = "1px"; xnContextMenuTD13.style.backgroundColor = "#FFFFFF"; var xnContextMenuTD14 = document.createElement("td"); xnContextMenuTD14.style.width = "120px"; xnContextMenuTD14.style.backgroundColor = "#E2E3E3"; xnContextMenuTR1.appendChild(xnContextMenuTD11); xnContextMenuTR1.appendChild(xnContextMenuTD12); xnContextMenuTR1.appendChild(xnContextMenuTD13); xnContextMenuTR1.appendChild(xnContextMenuTD14); xnContextMenuTbody.appendChild(xnContextMenuTR1); var xnContextMenuTR2 = document.createElement("tr"); var xnContextMenuTD21 = document.createElement("td"); xnContextMenuTD21.style.width = "28px"; xnContextMenuTD21.style.height = "1px"; var xnContextMenuTD22 = document.createElement("td"); xnContextMenuTD22.style.width = "1px"; xnContextMenuTD22.style.backgroundColor = "#E2E3E3"; var xnContextMenuTD23 = document.createElement("td"); xnContextMenuTD23.style.width = "1px"; xnContextMenuTD23.style.backgroundColor = "#FFFFFF"; var xnContextMenuTD24 = document.createElement("td"); xnContextMenuTD24.style.width = "120px"; xnContextMenuTD24.style.backgroundColor = "#FFFFFF"; xnContextMenuTR2.appendChild(xnContextMenuTD21); xnContextMenuTR2.appendChild(xnContextMenuTD22); xnContextMenuTR2.appendChild(xnContextMenuTD23); xnContextMenuTR2.appendChild(xnContextMenuTD24); xnContextMenuTbody.appendChild(xnContextMenuTR2); } else { var xnContextMenuTR = document.createElement("tr"); xnContextMenuTR.setAttribute("function", strFunction); xnContextMenuTR.onmouseover = function () {this.style.backgroundColor = "#D3E9FE";}; xnContextMenuTR.onmouseout = function () {this.style.backgroundColor = "";}; xnContextMenuTR.onclick = function () { try { if (body.children.item("__TF_ContextMenu").m_bEvent) { body.dispatch("onmenu", this.getAttribute("function")); } else { eval(this.getAttribute("function")+"()"); } window.top.document.body.removeChild(window.top.document.getElementById("HE___TF_ContextMenu")); } catch (e) { window.top.document.body.removeChild(window.top.document.getElementById("HE___TF_ContextMenu")); } }; var xnContextMenuTD1 = document.createElement("td"); xnContextMenuTD1.style.width = "28px"; xnContextMenuTD1.style.height = "23px"; var xnContextMenuTD2 = document.createElement("td"); xnContextMenuTD2.style.width = "1px"; xnContextMenuTD2.style.backgroundColor = "#E2E3E3"; var xnContextMenuTD3 = document.createElement("td"); xnContextMenuTD3.style.width = "1px"; xnContextMenuTD3.style.backgroundColor = "#FFFFFF"; var xnContextMenuTD4 = document.createElement("td"); xnContextMenuTD4.style.width = "120px"; xnContextMenuTD4.style.paddingLeft = "5px"; xnContextMenuTD4.style.paddingRight = "10px"; var xnContextMenuText = document.createElement("nobr"); xnContextMenuText.innerHTML = strLabel; xnContextMenuTD4.appendChild(xnContextMenuText); xnContextMenuTR.appendChild(xnContextMenuTD1); xnContextMenuTR.appendChild(xnContextMenuTD2); xnContextMenuTR.appendChild(xnContextMenuTD3); xnContextMenuTR.appendChild(xnContextMenuTD4); xnContextMenuTbody.appendChild(xnContextMenuTR); } } xnContextMenu.appendChild(xnContextMenuTbody); window.top.document.body.appendChild(xnContextMenu); };