|
Struts example source code file (hostenv_adobesvg.js)
The Struts hostenv_adobesvg.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ if (typeof window == "undefined") { dojo.raise("attempt to use adobe svg hostenv when no window object"); } with (dojo.render) { name = navigator.appName; ver = parseFloat(navigator.appVersion, 10); switch (navigator.platform) { case "MacOS": os.osx = true; break; case "Linux": os.linux = true; break; case "Windows": os.win = true; break; default: os.linux = true; break; } svg.capable = true; svg.support.builtin = true; svg.adobe = true; } dojo.hostenv.println = function (s) { try { var ti = document.createElement("text"); ti.setAttribute("x", "50"); var yPos = 25 + 15 * document.getElementsByTagName("text").length; ti.setAttribute("y", yPos); var tn = document.createTextNode(s); ti.appendChild(tn); document.documentElement.appendChild(ti); } catch (e) { } }; dojo.debug = function () { if (!djConfig.isDebug) { return; } var args = arguments; if (typeof dojo.hostenv.println != "function") { dojo.raise("attempt to call dojo.debug when there is no dojo.hostenv println implementation (yet?)"); } var isJUM = dj_global["jum"]; var s = isJUM ? "" : "DEBUG: "; for (var i = 0; i < args.length; ++i) { s += args[i]; } if (isJUM) { jum.debug(s); } else { dojo.hostenv.println(s); } }; dojo.hostenv.startPackage("dojo.hostenv"); dojo.hostenv.name_ = "adobesvg"; dojo.hostenv.anonCtr = 0; dojo.hostenv.anon = {}; dojo.hostenv.nameAnonFunc = function (anonFuncPtr, namespaceObj) { var ret = "_" + this.anonCtr++; var nso = (namespaceObj || this.anon); while (typeof nso[ret] != "undefined") { ret = "_" + this.anonCtr++; } nso[ret] = anonFuncPtr; return ret; }; dojo.hostenv.modulesLoadedFired = false; dojo.hostenv.modulesLoadedListeners = []; dojo.hostenv.getTextStack = []; dojo.hostenv.loadUriStack = []; dojo.hostenv.loadedUris = []; dojo.hostenv.modulesLoaded = function () { if (this.modulesLoadedFired) { return; } if ((this.loadUriStack.length == 0) && (this.getTextStack.length == 0)) { if (this.inFlightCount > 0) { dojo.debug("couldn't initialize, there are files still in flight"); return; } this.modulesLoadedFired = true; var mll = this.modulesLoadedListeners; for (var x = 0; x < mll.length; x++) { mll[x](); } } }; dojo.hostenv.getNewAnonFunc = function () { var ret = "_" + this.anonCtr++; while (typeof this.anon[ret] != "undefined") { ret = "_" + this.anonCtr++; } eval("dojo.nostenv.anon." + ret + " = function(){};"); return [ret, this.anon[ret]]; }; dojo.hostenv.displayStack = function () { var oa = []; var stack = this.loadUriStack; for (var x = 0; x < stack.length; x++) { oa.unshift([stack[x][0], (typeof stack[x][2])]); } dojo.debug("<pre>" + oa.join("\n") + ""); }; dojo.hostenv.unwindUriStack = function () { var stack = this.loadUriStack; for (var x in dojo.hostenv.loadedUris) { for (var y = stack.length - 1; y >= 0; y--) { if (stack[y][0] == x) { stack.splice(y, 1); } } } var next = stack.pop(); if ((!next) && (stack.length == 0)) { return; } for (var x = 0; x < stack.length; x++) { if ((stack[x][0] == next[0]) && (stack[x][2])) { next[2] == stack[x][2]; } } var last = next; while (dojo.hostenv.loadedUris[next[0]]) { last = next; next = stack.pop(); } while (typeof next[2] == "string") { try { dj_eval(next[2]); next[1](true); } catch (e) { dojo.debug("we got an error when loading " + next[0]); dojo.debug("error: " + e); } dojo.hostenv.loadedUris[next[0]] = true; dojo.hostenv.loadedUris.push(next[0]); last = next; next = stack.pop(); if ((!next) && (stack.length == 0)) { break; } while (dojo.hostenv.loadedUris[next[0]]) { last = next; next = stack.pop(); } } if (next) { stack.push(next); dojo.debug("### CHOKED ON: " + next[0]); } }; dojo.hostenv.loadUri = function (uri, cb) { if (dojo.hostenv.loadedUris[uri]) { return; } var stack = this.loadUriStack; stack.push([uri, cb, null]); var tcb = function (contents) { if (contents.content) { contents = contents.content; } var next = stack.pop(); if ((!next) && (stack.length == 0)) { dojo.hostenv.modulesLoaded(); return; } if (typeof contents == "string") { stack.push(next); for (var x = 0; x < stack.length; x++) { if (stack[x][0] == uri) { stack[x][2] = contents; } } next = stack.pop(); } if (dojo.hostenv.loadedUris[next[0]]) { dojo.hostenv.unwindUriStack(); return; } stack.push(next); if (next[0] != uri) { if (typeof next[2] == "string") { dojo.hostenv.unwindUriStack(); } } else { if (!contents) { next[1](false); } else { var deps = dojo.hostenv.getDepsForEval(next[2]); if (deps.length > 0) { eval(deps.join(";")); } else { dojo.hostenv.unwindUriStack(); } } } }; this.getText(uri, tcb, true); }; dojo.hostenv.loadModule = function (modulename, exact_only, omit_module_check) { var module = this.findModule(modulename, 0); if (module) { return module; } if (typeof this.loading_modules_[modulename] !== "undefined") { dojo.debug("recursive attempt to load module '" + modulename + "'"); } else { this.addedToLoadingCount.push(modulename); } this.loading_modules_[modulename] = 1; var relpath = modulename.replace(/\./g, "/") + ".js"; var syms = modulename.split("."); var nsyms = modulename.split("."); if (syms[0] == "dojo") { syms[0] = "src"; } var last = syms.pop(); syms.push(last); var _this = this; var pfn = this.pkgFileName; if (last == "*") { modulename = (nsyms.slice(0, -1)).join("."); var module = this.findModule(modulename, 0); if (module) { _this.removedFromLoadingCount.push(modulename); return module; } var nextTry = function (lastStatus) { if (lastStatus) { module = _this.findModule(modulename, false); if ((!module) && (syms[syms.length - 1] != pfn)) { dojo.raise("Module symbol '" + modulename + "' is not defined after loading '" + relpath + "'"); } if (module) { _this.removedFromLoadingCount.push(modulename); dojo.hostenv.modulesLoaded(); return; } } syms.pop(); syms.push(pfn); relpath = syms.join("/") + ".js"; if (relpath.charAt(0) == "/") { relpath = relpath.slice(1); } _this.loadPath(relpath, ((!omit_module_check) ? modulename : null), nextTry); }; nextTry(); } else { relpath = syms.join("/") + ".js"; modulename = nsyms.join("."); var nextTry = function (lastStatus) { if (lastStatus) { module = _this.findModule(modulename, false); if ((!module) && (syms[syms.length - 1] != pfn)) { dojo.raise("Module symbol '" + modulename + "' is not defined after loading '" + relpath + "'"); } if (module) { _this.removedFromLoadingCount.push(modulename); dojo.hostenv.modulesLoaded(); return; } } var setPKG = (syms[syms.length - 1] == pfn) ? false : true; syms.pop(); if (setPKG) { syms.push(pfn); } relpath = syms.join("/") + ".js"; if (relpath.charAt(0) == "/") { relpath = relpath.slice(1); } _this.loadPath(relpath, ((!omit_module_check) ? modulename : null), nextTry); }; this.loadPath(relpath, ((!omit_module_check) ? modulename : null), nextTry); } return; }; dojo.hostenv.async_cb = null; dojo.hostenv.unWindGetTextStack = function () { if (dojo.hostenv.inFlightCount > 0) { setTimeout("dojo.hostenv.unWindGetTextStack()", 100); return; } dojo.hostenv.inFlightCount++; var next = dojo.hostenv.getTextStack.pop(); if ((!next) && (dojo.hostenv.getTextStack.length == 0)) { dojo.hostenv.inFlightCount--; dojo.hostenv.async_cb = function () { }; return; } dojo.hostenv.async_cb = next[1]; window.getURL(next[0], function (result) { dojo.hostenv.inFlightCount--; dojo.hostenv.async_cb(result.content); dojo.hostenv.unWindGetTextStack(); }); }; dojo.hostenv.getText = function (uri, async_cb, fail_ok) { try { if (async_cb) { dojo.hostenv.getTextStack.push([uri, async_cb, fail_ok]); dojo.hostenv.unWindGetTextStack(); } else { return dojo.raise("No synchronous XMLHTTP implementation available, for uri " + uri); } } catch (e) { return dojo.raise("No XMLHTTP implementation available, for uri " + uri); } }; dojo.hostenv.postText = function (uri, async_cb, text, fail_ok, mime_type, encoding) { var http = null; var async_callback = function (httpResponse) { if (!httpResponse.success) { dojo.raise("Request for uri '" + uri + "' resulted in " + httpResponse.status); } if (!httpResponse.content) { if (!fail_ok) { dojo.raise("Request for uri '" + uri + "' resulted in no content"); } return null; } async_cb(httpResponse.content); }; try { if (async_cb) { http = window.postURL(uri, text, async_callback, mimeType, encoding); } else { return dojo.raise("No synchronous XMLHTTP post implementation available, for uri " + uri); } } catch (e) { return dojo.raise("No XMLHTTP post implementation available, for uri " + uri); } }; function dj_last_script_src() { var scripts = window.document.getElementsByTagName("script"); if (scripts.length < 1) { dojo.raise("No script elements in window.document, so can't figure out my script src"); } var li = scripts.length - 1; var xlinkNS = "http://www.w3.org/1999/xlink"; var src = null; var script = null; while (!src) { script = scripts.item(li); src = script.getAttributeNS(xlinkNS, "href"); li--; if (li < 0) { break; } } if (!src) { dojo.raise("Last script element (out of " + scripts.length + ") has no src"); } return src; } if (!dojo.hostenv["library_script_uri_"]) { dojo.hostenv.library_script_uri_ = dj_last_script_src(); } dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug"); Other Struts examples (source code examples)Here is a short list of links related to this Struts hostenv_adobesvg.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.