123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- 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);
- };
|