An example of importing Embedded Coder code into the mbed IDE. Currently doesn't connect IO to PWM, ADC, and Encoder, instead provides random inputs and measures execution time.
Dependencies: mbed-dsp mbed Nucleo_pmsmfoc
html/html/js/coder_app.js@2:bbc155b0b886, 2014-11-25 (annotated)
- Committer:
- paulcox
- Date:
- Tue Nov 25 07:52:02 2014 +0000
- Revision:
- 2:bbc155b0b886
adding doc?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
paulcox | 2:bbc155b0b886 | 1 | /* Copyright 2013-2014 The MathWorks, Inc. */ |
paulcox | 2:bbc155b0b886 | 2 | function queryByClassName(className, elem) { |
paulcox | 2:bbc155b0b886 | 3 | if (!elem) elem = document.body; |
paulcox | 2:bbc155b0b886 | 4 | if (typeof elem.querySelectorAll === "function") { |
paulcox | 2:bbc155b0b886 | 5 | return elem.querySelectorAll("."+className); |
paulcox | 2:bbc155b0b886 | 6 | } else { |
paulcox | 2:bbc155b0b886 | 7 | return elem.getElementsByClass(className); |
paulcox | 2:bbc155b0b886 | 8 | } |
paulcox | 2:bbc155b0b886 | 9 | } |
paulcox | 2:bbc155b0b886 | 10 | |
paulcox | 2:bbc155b0b886 | 11 | function nav_token_usage_details(direction) { |
paulcox | 2:bbc155b0b886 | 12 | var els = queryByClassName("token_usage_details_tabrow"); |
paulcox | 2:bbc155b0b886 | 13 | var selectedIdx = 0; |
paulcox | 2:bbc155b0b886 | 14 | var selectedClassName = "selected"; |
paulcox | 2:bbc155b0b886 | 15 | for (selectedIdx; selectedIdx < els.length; selectedIdx++) { |
paulcox | 2:bbc155b0b886 | 16 | if (els[selectedIdx].classList.contains(selectedClassName)) { |
paulcox | 2:bbc155b0b886 | 17 | break; |
paulcox | 2:bbc155b0b886 | 18 | } |
paulcox | 2:bbc155b0b886 | 19 | } |
paulcox | 2:bbc155b0b886 | 20 | var nextIdx = selectedIdx; |
paulcox | 2:bbc155b0b886 | 21 | if (direction === -1 && selectedIdx > 0) { |
paulcox | 2:bbc155b0b886 | 22 | nextIdx = selectedIdx-1; |
paulcox | 2:bbc155b0b886 | 23 | } else if (direction === 1 && selectedIdx < els.length - 1) { |
paulcox | 2:bbc155b0b886 | 24 | nextIdx = selectedIdx + 1; |
paulcox | 2:bbc155b0b886 | 25 | } |
paulcox | 2:bbc155b0b886 | 26 | if (nextIdx !== selectedIdx) { |
paulcox | 2:bbc155b0b886 | 27 | els[selectedIdx].classList.remove(selectedClassName); |
paulcox | 2:bbc155b0b886 | 28 | els[nextIdx].classList.add(selectedClassName); |
paulcox | 2:bbc155b0b886 | 29 | els[nextIdx].scrollIntoView(alignWithTop=false); |
paulcox | 2:bbc155b0b886 | 30 | } |
paulcox | 2:bbc155b0b886 | 31 | return false; |
paulcox | 2:bbc155b0b886 | 32 | } |
paulcox | 2:bbc155b0b886 | 33 | |
paulcox | 2:bbc155b0b886 | 34 | function tabrowClicked(event) { |
paulcox | 2:bbc155b0b886 | 35 | } |
paulcox | 2:bbc155b0b886 | 36 | |
paulcox | 2:bbc155b0b886 | 37 | function popupOnload() { |
paulcox | 2:bbc155b0b886 | 38 | var els = queryByClassName("token_usage_details_tabrow"); |
paulcox | 2:bbc155b0b886 | 39 | for (var i=0; i<els.length; i++) { |
paulcox | 2:bbc155b0b886 | 40 | els[i].onclick= tabrowClicked; |
paulcox | 2:bbc155b0b886 | 41 | } |
paulcox | 2:bbc155b0b886 | 42 | }; |
paulcox | 2:bbc155b0b886 | 43 | |
paulcox | 2:bbc155b0b886 | 44 | function tokenOnRightclick(event) { |
paulcox | 2:bbc155b0b886 | 45 | var filename = location.pathname.split(/\//); |
paulcox | 2:bbc155b0b886 | 46 | filename = filename[filename.length-1]; |
paulcox | 2:bbc155b0b886 | 47 | top.inspectToken(filename, location.pathname, event); |
paulcox | 2:bbc155b0b886 | 48 | top.hiliteClickedToken(event.currentTarget); |
paulcox | 2:bbc155b0b886 | 49 | return false; |
paulcox | 2:bbc155b0b886 | 50 | } |
paulcox | 2:bbc155b0b886 | 51 | |
paulcox | 2:bbc155b0b886 | 52 | function tokenOnclick(event) { |
paulcox | 2:bbc155b0b886 | 53 | tokenOnRightclick(event); |
paulcox | 2:bbc155b0b886 | 54 | if (event.currentTarget.href.length !== 0 && event.currentTarget.href.protocol !== "matlab:") { |
paulcox | 2:bbc155b0b886 | 55 | top.tokenLinkOnClick(event); |
paulcox | 2:bbc155b0b886 | 56 | return true; |
paulcox | 2:bbc155b0b886 | 57 | } |
paulcox | 2:bbc155b0b886 | 58 | return false; |
paulcox | 2:bbc155b0b886 | 59 | }; |
paulcox | 2:bbc155b0b886 | 60 | |
paulcox | 2:bbc155b0b886 | 61 | function tokenOnMouseOver(event) { |
paulcox | 2:bbc155b0b886 | 62 | var filename = location.pathname.split(/\//); |
paulcox | 2:bbc155b0b886 | 63 | filename = filename[filename.length-1]; |
paulcox | 2:bbc155b0b886 | 64 | createPopup(filename, event); |
paulcox | 2:bbc155b0b886 | 65 | }; |
paulcox | 2:bbc155b0b886 | 66 | function tokenOnMouseOut(event) { |
paulcox | 2:bbc155b0b886 | 67 | destroyPopup(event.currentTarget); |
paulcox | 2:bbc155b0b886 | 68 | }; |
paulcox | 2:bbc155b0b886 | 69 | |
paulcox | 2:bbc155b0b886 | 70 | function blkLinkOnClick(event) { |
paulcox | 2:bbc155b0b886 | 71 | top.hiliteClickedToken(event.currentTarget); |
paulcox | 2:bbc155b0b886 | 72 | return true; |
paulcox | 2:bbc155b0b886 | 73 | } |
paulcox | 2:bbc155b0b886 | 74 | |
paulcox | 2:bbc155b0b886 | 75 | // remove the code table; update tokens; insert back |
paulcox | 2:bbc155b0b886 | 76 | function updateToken(codeElement) { |
paulcox | 2:bbc155b0b886 | 77 | var filename = location.pathname.split(/\//); |
paulcox | 2:bbc155b0b886 | 78 | filename = filename[filename.length-1]; |
paulcox | 2:bbc155b0b886 | 79 | var srcFilename; |
paulcox | 2:bbc155b0b886 | 80 | if (top.RTW_TraceInfo) { |
paulcox | 2:bbc155b0b886 | 81 | srcFilename = top.RTW_TraceInfo.toSrcFileName(filename); |
paulcox | 2:bbc155b0b886 | 82 | } |
paulcox | 2:bbc155b0b886 | 83 | var els = queryByClassName("tk", codeElement); |
paulcox | 2:bbc155b0b886 | 84 | var elem; |
paulcox | 2:bbc155b0b886 | 85 | var hasTraceFlag = null; |
paulcox | 2:bbc155b0b886 | 86 | if (top.TraceInfoFlag && top.TraceInfoFlag.instance) |
paulcox | 2:bbc155b0b886 | 87 | hasTraceFlag = top.TraceInfoFlag.instance.traceFlag; |
paulcox | 2:bbc155b0b886 | 88 | else |
paulcox | 2:bbc155b0b886 | 89 | hasTraceFlag = false; |
paulcox | 2:bbc155b0b886 | 90 | var defObj; |
paulcox | 2:bbc155b0b886 | 91 | var traceObj; |
paulcox | 2:bbc155b0b886 | 92 | var codeDef = (top.CodeDefine && top.CodeDefine.instance) ? top.CodeDefine.instance : null; |
paulcox | 2:bbc155b0b886 | 93 | var aLink = top.document.createElement("a"); |
paulcox | 2:bbc155b0b886 | 94 | if (hasTraceFlag || (top.CodeDefine && top.CodeDefine.instance)) { |
paulcox | 2:bbc155b0b886 | 95 | for (var i=0; i<els.length; i++) { |
paulcox | 2:bbc155b0b886 | 96 | defObj = (codeDef) ? codeDef.def[els[i].text] : null; |
paulcox | 2:bbc155b0b886 | 97 | traceObj = hasTraceFlag && hasTraceFlag[srcFilename+":"+els[i].id]; |
paulcox | 2:bbc155b0b886 | 98 | if (traceObj || defObj) { |
paulcox | 2:bbc155b0b886 | 99 | els[i].onclick= tokenOnclick; |
paulcox | 2:bbc155b0b886 | 100 | els[i].oncontextmenu= tokenOnRightclick; |
paulcox | 2:bbc155b0b886 | 101 | els[i].onmouseover = tokenOnMouseOver; |
paulcox | 2:bbc155b0b886 | 102 | els[i].onmouseout = tokenOnMouseOut; |
paulcox | 2:bbc155b0b886 | 103 | els[i].className += " active"; |
paulcox | 2:bbc155b0b886 | 104 | els[i].target = "rtwreport_document_frame"; |
paulcox | 2:bbc155b0b886 | 105 | if (traceObj && top.reportModel) { |
paulcox | 2:bbc155b0b886 | 106 | els[i].href = "matlab:rtw.report.code2model(\'" + top.reportModel |
paulcox | 2:bbc155b0b886 | 107 | + "\',\'" + location.pathname + "\',\'" + els[i].id + "')"; |
paulcox | 2:bbc155b0b886 | 108 | } else { |
paulcox | 2:bbc155b0b886 | 109 | aLink.href = defObj.file; |
paulcox | 2:bbc155b0b886 | 110 | els[i].href = aLink.pathname + "#" + defObj.line; |
paulcox | 2:bbc155b0b886 | 111 | } |
paulcox | 2:bbc155b0b886 | 112 | } |
paulcox | 2:bbc155b0b886 | 113 | } |
paulcox | 2:bbc155b0b886 | 114 | } |
paulcox | 2:bbc155b0b886 | 115 | // update block path link in comments |
paulcox | 2:bbc155b0b886 | 116 | els = queryByClassName("blk", codeElement); |
paulcox | 2:bbc155b0b886 | 117 | var lineSid = null; |
paulcox | 2:bbc155b0b886 | 118 | if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) { |
paulcox | 2:bbc155b0b886 | 119 | for (var i=0; i<els.length; i++) { |
paulcox | 2:bbc155b0b886 | 120 | lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].text); |
paulcox | 2:bbc155b0b886 | 121 | if (lineSid) { |
paulcox | 2:bbc155b0b886 | 122 | els[i].href = "matlab:coder.internal.code2model('" + lineSid.sid + "');"; |
paulcox | 2:bbc155b0b886 | 123 | els[i].id = "blkLink_" + i; |
paulcox | 2:bbc155b0b886 | 124 | els[i].onclick = blkLinkOnClick; |
paulcox | 2:bbc155b0b886 | 125 | els[i].className += " blk_active"; |
paulcox | 2:bbc155b0b886 | 126 | } |
paulcox | 2:bbc155b0b886 | 127 | } |
paulcox | 2:bbc155b0b886 | 128 | } |
paulcox | 2:bbc155b0b886 | 129 | // update requirement link in comments |
paulcox | 2:bbc155b0b886 | 130 | els = queryByClassName("req", codeElement); |
paulcox | 2:bbc155b0b886 | 131 | if (top.RTW_rtwnameSIDMap && top.RTW_rtwnameSIDMap.instance) { |
paulcox | 2:bbc155b0b886 | 132 | for (var i=0; i<els.length; i++) { |
paulcox | 2:bbc155b0b886 | 133 | lineSid = top.RTW_rtwnameSIDMap.instance.getSID(els[i].getAttribute("blockpath")); |
paulcox | 2:bbc155b0b886 | 134 | if (lineSid) { |
paulcox | 2:bbc155b0b886 | 135 | var req_id = els[i].getAttribute("req_id"); |
paulcox | 2:bbc155b0b886 | 136 | els[i].href = "matlab:rtw.report.code2req('" + lineSid.sid + "'," + req_id + ");"; |
paulcox | 2:bbc155b0b886 | 137 | els[i].id = "req_" + i; |
paulcox | 2:bbc155b0b886 | 138 | els[i].onclick = top.reqOnClick; |
paulcox | 2:bbc155b0b886 | 139 | els[i].className += " req_active"; |
paulcox | 2:bbc155b0b886 | 140 | } |
paulcox | 2:bbc155b0b886 | 141 | } |
paulcox | 2:bbc155b0b886 | 142 | } |
paulcox | 2:bbc155b0b886 | 143 | |
paulcox | 2:bbc155b0b886 | 144 | // add link to source file |
paulcox | 2:bbc155b0b886 | 145 | if (top.Html2SrcLink && top.Html2SrcLink.instance) { |
paulcox | 2:bbc155b0b886 | 146 | filename = top.rtwGetFileName(location.href); |
paulcox | 2:bbc155b0b886 | 147 | var link2Src = top.Html2SrcLink.instance.getLink2Src(filename); |
paulcox | 2:bbc155b0b886 | 148 | var link = document.createElement("h4"); |
paulcox | 2:bbc155b0b886 | 149 | link.innerHTML = "File: <a href=\"" + link2Src + |
paulcox | 2:bbc155b0b886 | 150 | "\" target = \"rtwreport_document_frame\" id=\"linkToText_plain\">" + |
paulcox | 2:bbc155b0b886 | 151 | top.rtwGetFileName(link2Src) + "</a>"; |
paulcox | 2:bbc155b0b886 | 152 | var bodyNode = document.body; |
paulcox | 2:bbc155b0b886 | 153 | bodyNode.insertBefore(link, bodyNode.firstElementChild); |
paulcox | 2:bbc155b0b886 | 154 | } |
paulcox | 2:bbc155b0b886 | 155 | top.updateHyperlinks(); |
paulcox | 2:bbc155b0b886 | 156 | } |
paulcox | 2:bbc155b0b886 | 157 | function getInsertFunction(element) { |
paulcox | 2:bbc155b0b886 | 158 | var parentNode = element.parentNode; |
paulcox | 2:bbc155b0b886 | 159 | var nextSibling = element.nextSibling; |
paulcox | 2:bbc155b0b886 | 160 | parentNode.removeChild(element); |
paulcox | 2:bbc155b0b886 | 161 | var spinner = document.createElement("img"); |
paulcox | 2:bbc155b0b886 | 162 | spinner.src = "spinner.gif"; |
paulcox | 2:bbc155b0b886 | 163 | parentNode.appendChild(spinner); |
paulcox | 2:bbc155b0b886 | 164 | return function() { |
paulcox | 2:bbc155b0b886 | 165 | if (spinner) { |
paulcox | 2:bbc155b0b886 | 166 | parentNode.removeChild(spinner); |
paulcox | 2:bbc155b0b886 | 167 | } |
paulcox | 2:bbc155b0b886 | 168 | if (nextSibling) { |
paulcox | 2:bbc155b0b886 | 169 | parentNode.insertBefore(element, nextSibling); |
paulcox | 2:bbc155b0b886 | 170 | } else { |
paulcox | 2:bbc155b0b886 | 171 | parentNode.appendChild(element); |
paulcox | 2:bbc155b0b886 | 172 | } |
paulcox | 2:bbc155b0b886 | 173 | }; |
paulcox | 2:bbc155b0b886 | 174 | } |
paulcox | 2:bbc155b0b886 | 175 | |
paulcox | 2:bbc155b0b886 | 176 | // the onload function for source file |
paulcox | 2:bbc155b0b886 | 177 | function srcFileOnload() { |
paulcox | 2:bbc155b0b886 | 178 | var codeElement = document.getElementById("codeTbl"); |
paulcox | 2:bbc155b0b886 | 179 | var insertFunction = getInsertFunction(codeElement); |
paulcox | 2:bbc155b0b886 | 180 | try { |
paulcox | 2:bbc155b0b886 | 181 | updateToken(codeElement); |
paulcox | 2:bbc155b0b886 | 182 | } catch (err) {}; |
paulcox | 2:bbc155b0b886 | 183 | insertFunction(); |
paulcox | 2:bbc155b0b886 | 184 | // add code to model hyperlinks for all tokens |
paulcox | 2:bbc155b0b886 | 185 | var filename = location.pathname.split(/\//); |
paulcox | 2:bbc155b0b886 | 186 | filename = filename[filename.length-1]; |
paulcox | 2:bbc155b0b886 | 187 | // highlight the filename in the TOC frame |
paulcox | 2:bbc155b0b886 | 188 | if (top.rtwreport_contents_frame && top.hiliteByFileName(top.rtwreport_document_frame.document.location.href)) { |
paulcox | 2:bbc155b0b886 | 189 | // remove the highlights in the TOC frame if filename is hilite successfully |
paulcox | 2:bbc155b0b886 | 190 | top.removeHiliteTOC(top.rtwreport_contents_frame); |
paulcox | 2:bbc155b0b886 | 191 | } |
paulcox | 2:bbc155b0b886 | 192 | |
paulcox | 2:bbc155b0b886 | 193 | // annotate code with code coverage data |
paulcox | 2:bbc155b0b886 | 194 | if (typeof rtwannotate === 'function') { |
paulcox | 2:bbc155b0b886 | 195 | rtwannotate(filename.replace(/.html$/,"_cov.xml")); |
paulcox | 2:bbc155b0b886 | 196 | } |
paulcox | 2:bbc155b0b886 | 197 | |
paulcox | 2:bbc155b0b886 | 198 | // highlight token and row |
paulcox | 2:bbc155b0b886 | 199 | if (top.RTW_TraceInfo.instance && top.RTW_TraceArgs.instance) { |
paulcox | 2:bbc155b0b886 | 200 | var i; |
paulcox | 2:bbc155b0b886 | 201 | // find the highlight file name |
paulcox | 2:bbc155b0b886 | 202 | var fileIdx = top.RTW_TraceArgs.instance.getFileIdx(filename); |
paulcox | 2:bbc155b0b886 | 203 | var ids=[], rows=[]; |
paulcox | 2:bbc155b0b886 | 204 | if (typeof fileIdx !== "undefined") { |
paulcox | 2:bbc155b0b886 | 205 | ids = top.RTW_TraceArgs.instance.getIDs(fileIdx); |
paulcox | 2:bbc155b0b886 | 206 | rows = top.RTW_TraceArgs.instance.getRows(fileIdx); |
paulcox | 2:bbc155b0b886 | 207 | // highlight rows in file |
paulcox | 2:bbc155b0b886 | 208 | for (i=0; i<rows.length;i++) { |
paulcox | 2:bbc155b0b886 | 209 | elem = top.rtwreport_document_frame.document.getElementById(rows[i]); |
paulcox | 2:bbc155b0b886 | 210 | if (elem) elem.className += " hilite"; |
paulcox | 2:bbc155b0b886 | 211 | } |
paulcox | 2:bbc155b0b886 | 212 | // highlight tokens in file |
paulcox | 2:bbc155b0b886 | 213 | if (top.GlobalConfig.hiliteToken) { |
paulcox | 2:bbc155b0b886 | 214 | for (i=0; i<ids.length;i++) { |
paulcox | 2:bbc155b0b886 | 215 | elem = top.rtwreport_document_frame.document.getElementById(ids[i]); |
paulcox | 2:bbc155b0b886 | 216 | if (elem) elem.className += " hilite"; |
paulcox | 2:bbc155b0b886 | 217 | } |
paulcox | 2:bbc155b0b886 | 218 | } |
paulcox | 2:bbc155b0b886 | 219 | } // end of if current file has highlighted lines |
paulcox | 2:bbc155b0b886 | 220 | |
paulcox | 2:bbc155b0b886 | 221 | // if the loaded file is not currFile, call setInitLocation |
paulcox | 2:bbc155b0b886 | 222 | var currFileIdx = top.RTW_TraceInfo.instance.getCurrFileIdx(); |
paulcox | 2:bbc155b0b886 | 223 | var myFileIdx = top.RTW_TraceInfo.instance.getFileIdx(filename); |
paulcox | 2:bbc155b0b886 | 224 | // update navigation status if the file is loaded first time |
paulcox | 2:bbc155b0b886 | 225 | if (currFileIdx !== myFileIdx && document.location.hash === "") { |
paulcox | 2:bbc155b0b886 | 226 | if (rows.length > 0) |
paulcox | 2:bbc155b0b886 | 227 | top.RTW_TraceInfo.instance.setInitLocation(filename,rows[0]); |
paulcox | 2:bbc155b0b886 | 228 | else { |
paulcox | 2:bbc155b0b886 | 229 | top.toggleNavSideBar("off"); |
paulcox | 2:bbc155b0b886 | 230 | return; |
paulcox | 2:bbc155b0b886 | 231 | } |
paulcox | 2:bbc155b0b886 | 232 | } |
paulcox | 2:bbc155b0b886 | 233 | |
paulcox | 2:bbc155b0b886 | 234 | // display navigation side bar |
paulcox | 2:bbc155b0b886 | 235 | if (top.rtwreport_nav_frame) top.rtwreport_nav_frame.location.reload(); |
paulcox | 2:bbc155b0b886 | 236 | if (rows.length>0) { |
paulcox | 2:bbc155b0b886 | 237 | top.toggleNavSideBar("on"); |
paulcox | 2:bbc155b0b886 | 238 | top.toggleNavToolBar("on"); |
paulcox | 2:bbc155b0b886 | 239 | } else { |
paulcox | 2:bbc155b0b886 | 240 | top.toggleNavSideBar("off"); |
paulcox | 2:bbc155b0b886 | 241 | } |
paulcox | 2:bbc155b0b886 | 242 | } |
paulcox | 2:bbc155b0b886 | 243 | top.scrollToLineBasedOnHash(document.location.hash); |
paulcox | 2:bbc155b0b886 | 244 | function getHash() { |
paulcox | 2:bbc155b0b886 | 245 | var loc; |
paulcox | 2:bbc155b0b886 | 246 | var aHash=""; |
paulcox | 2:bbc155b0b886 | 247 | var topDocObj = top.window.document; |
paulcox | 2:bbc155b0b886 | 248 | // get the hash value from location. |
paulcox | 2:bbc155b0b886 | 249 | loc = topDocObj.location; |
paulcox | 2:bbc155b0b886 | 250 | loc = loc.search || loc.hash; |
paulcox | 2:bbc155b0b886 | 251 | aHash = loc.substring(1); |
paulcox | 2:bbc155b0b886 | 252 | aHash = decodeURI(aHash); |
paulcox | 2:bbc155b0b886 | 253 | return aHash; |
paulcox | 2:bbc155b0b886 | 254 | } |
paulcox | 2:bbc155b0b886 | 255 | } |
paulcox | 2:bbc155b0b886 | 256 | |
paulcox | 2:bbc155b0b886 | 257 | function createPopup(filename, evt) { |
paulcox | 2:bbc155b0b886 | 258 | var anchorObj = evt.currentTarget; |
paulcox | 2:bbc155b0b886 | 259 | if (anchorObj.children.length > 0) |
paulcox | 2:bbc155b0b886 | 260 | return; |
paulcox | 2:bbc155b0b886 | 261 | var filename = location.pathname.split(/\//); |
paulcox | 2:bbc155b0b886 | 262 | filename = filename[filename.length-1]; |
paulcox | 2:bbc155b0b886 | 263 | var windowObj = top.getInspectWindow(); |
paulcox | 2:bbc155b0b886 | 264 | var propObj = top.getInspectData(filename, anchorObj); |
paulcox | 2:bbc155b0b886 | 265 | var navObj = top.getInspectLink(filename, location.pathname, anchorObj); |
paulcox | 2:bbc155b0b886 | 266 | if (propObj) { |
paulcox | 2:bbc155b0b886 | 267 | windowObj.appendChild(propObj); |
paulcox | 2:bbc155b0b886 | 268 | windowObj.style.left = "0px"; |
paulcox | 2:bbc155b0b886 | 269 | if (anchorObj.parentElement.nodeName === "TD" && |
paulcox | 2:bbc155b0b886 | 270 | anchorObj.parentElement.parentElement.nodeName === "TR") { |
paulcox | 2:bbc155b0b886 | 271 | anchorObj.parentElement.parentElement.lastChild.insertBefore(windowObj, |
paulcox | 2:bbc155b0b886 | 272 | anchorObj.parentElement.parentElement.lastChild.lastChild.nextSibling); |
paulcox | 2:bbc155b0b886 | 273 | var left = Math.min(evt.clientX , window.innerWidth - windowObj.scrollWidth - 30); |
paulcox | 2:bbc155b0b886 | 274 | left = Math.max(0, left); |
paulcox | 2:bbc155b0b886 | 275 | windowObj.style.left = "" + left + "px"; |
paulcox | 2:bbc155b0b886 | 276 | } |
paulcox | 2:bbc155b0b886 | 277 | } |
paulcox | 2:bbc155b0b886 | 278 | }; |
paulcox | 2:bbc155b0b886 | 279 | |
paulcox | 2:bbc155b0b886 | 280 | function destroyPopup(anchorObj) { |
paulcox | 2:bbc155b0b886 | 281 | var popWindow = document.getElementById("popup_window"); |
paulcox | 2:bbc155b0b886 | 282 | if (popWindow) { |
paulcox | 2:bbc155b0b886 | 283 | popWindow.parentElement.removeChild(popWindow); |
paulcox | 2:bbc155b0b886 | 284 | } |
paulcox | 2:bbc155b0b886 | 285 | }; |