You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/07/16 21:14:56 UTC
svn commit: r794787 [2/34] - in
/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src: ./
animation/ cal/ charting/ charting/svg/ charting/vml/ collections/ crypto/
data/ data/core/ data/old/ data/old/format/ data/old/provider/ date/ debug/
...
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,128 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.animation.AnimationSequence");
+dojo.require("dojo.animation.AnimationEvent");
+dojo.require("dojo.animation.Animation");
+dojo.deprecated("dojo.animation.AnimationSequence is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
+dojo.animation.AnimationSequence = function (repeatCount) {
+ this._anims = [];
+ this.repeatCount = repeatCount || 0;
+};
+dojo.lang.extend(dojo.animation.AnimationSequence, {repeatCount:0, _anims:[], _currAnim:-1, onBegin:null, onEnd:null, onNext:null, handler:null, add:function () {
+ for (var i = 0; i < arguments.length; i++) {
+ this._anims.push(arguments[i]);
+ arguments[i]._animSequence = this;
+ }
+}, remove:function (anim) {
+ for (var i = 0; i < this._anims.length; i++) {
+ if (this._anims[i] == anim) {
+ this._anims[i]._animSequence = null;
+ this._anims.splice(i, 1);
+ break;
+ }
+ }
+}, removeAll:function () {
+ for (var i = 0; i < this._anims.length; i++) {
+ this._anims[i]._animSequence = null;
+ }
+ this._anims = [];
+ this._currAnim = -1;
+}, clear:function () {
+ this.removeAll();
+}, play:function (gotoStart) {
+ if (this._anims.length == 0) {
+ return;
+ }
+ if (gotoStart || !this._anims[this._currAnim]) {
+ this._currAnim = 0;
+ }
+ if (this._anims[this._currAnim]) {
+ if (this._currAnim == 0) {
+ var e = {type:"begin", animation:this._anims[this._currAnim]};
+ if (typeof this.handler == "function") {
+ this.handler(e);
+ }
+ if (typeof this.onBegin == "function") {
+ this.onBegin(e);
+ }
+ }
+ this._anims[this._currAnim].play(gotoStart);
+ }
+}, pause:function () {
+ if (this._anims[this._currAnim]) {
+ this._anims[this._currAnim].pause();
+ }
+}, playPause:function () {
+ if (this._anims.length == 0) {
+ return;
+ }
+ if (this._currAnim == -1) {
+ this._currAnim = 0;
+ }
+ if (this._anims[this._currAnim]) {
+ this._anims[this._currAnim].playPause();
+ }
+}, stop:function () {
+ if (this._anims[this._currAnim]) {
+ this._anims[this._currAnim].stop();
+ }
+}, status:function () {
+ if (this._anims[this._currAnim]) {
+ return this._anims[this._currAnim].status();
+ } else {
+ return "stopped";
+ }
+}, _setCurrent:function (anim) {
+ for (var i = 0; i < this._anims.length; i++) {
+ if (this._anims[i] == anim) {
+ this._currAnim = i;
+ break;
+ }
+ }
+}, _playNext:function () {
+ if (this._currAnim == -1 || this._anims.length == 0) {
+ return;
+ }
+ this._currAnim++;
+ if (this._anims[this._currAnim]) {
+ var e = {type:"next", animation:this._anims[this._currAnim]};
+ if (typeof this.handler == "function") {
+ this.handler(e);
+ }
+ if (typeof this.onNext == "function") {
+ this.onNext(e);
+ }
+ this._anims[this._currAnim].play(true);
+ } else {
+ var e = {type:"end", animation:this._anims[this._anims.length - 1]};
+ if (typeof this.handler == "function") {
+ this.handler(e);
+ }
+ if (typeof this.onEnd == "function") {
+ this.onEnd(e);
+ }
+ if (this.repeatCount > 0) {
+ this._currAnim = 0;
+ this.repeatCount--;
+ this._anims[this._currAnim].play(true);
+ } else {
+ if (this.repeatCount == -1) {
+ this._currAnim = 0;
+ this._anims[this._currAnim].play(true);
+ } else {
+ this._currAnim = -1;
+ }
+ }
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/AnimationSequence.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,17 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.animation.Timer");
+dojo.require("dojo.lang.timing.Timer");
+dojo.deprecated("dojo.animation.Timer is now dojo.lang.timing.Timer", "0.5");
+dojo.animation.Timer = dojo.lang.timing.Timer;
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/Timer.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,16 @@
+/*
+ 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
+*/
+
+
+
+dojo.kwCompoundRequire({common:["dojo.animation.AnimationEvent", "dojo.animation.Animation", "dojo.animation.AnimationSequence"]});
+dojo.provide("dojo.animation.*");
+dojo.deprecated("dojo.Animation.* is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/animation/__package__.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,150 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.behavior");
+dojo.require("dojo.event.*");
+dojo.require("dojo.experimental");
+dojo.experimental("dojo.behavior");
+dojo.behavior = new function () {
+ function arrIn(obj, name) {
+ if (!obj[name]) {
+ obj[name] = [];
+ }
+ return obj[name];
+ }
+ function forIn(obj, scope, func) {
+ var tmpObj = {};
+ for (var x in obj) {
+ if (typeof tmpObj[x] == "undefined") {
+ if (!func) {
+ scope(obj[x], x);
+ } else {
+ func.call(scope, obj[x], x);
+ }
+ }
+ }
+ }
+ this.behaviors = {};
+ this.add = function (behaviorObj) {
+ var tmpObj = {};
+ forIn(behaviorObj, this, function (behavior, name) {
+ var tBehavior = arrIn(this.behaviors, name);
+ if ((dojo.lang.isString(behavior)) || (dojo.lang.isFunction(behavior))) {
+ behavior = {found:behavior};
+ }
+ forIn(behavior, function (rule, ruleName) {
+ arrIn(tBehavior, ruleName).push(rule);
+ });
+ });
+ };
+ this.apply = function () {
+ dojo.profile.start("dojo.behavior.apply");
+ var r = dojo.render.html;
+ var safariGoodEnough = (!r.safari);
+ if (r.safari) {
+ var uas = r.UA.split("AppleWebKit/")[1];
+ if (parseInt(uas.match(/[0-9.]{3,}/)) >= 420) {
+ safariGoodEnough = true;
+ }
+ }
+ if ((dj_undef("behaviorFastParse", djConfig) ? (safariGoodEnough) : djConfig["behaviorFastParse"])) {
+ this.applyFast();
+ } else {
+ this.applySlow();
+ }
+ dojo.profile.end("dojo.behavior.apply");
+ };
+ this.matchCache = {};
+ this.elementsById = function (id, handleRemoved) {
+ var removed = [];
+ var added = [];
+ arrIn(this.matchCache, id);
+ if (handleRemoved) {
+ var nodes = this.matchCache[id];
+ for (var x = 0; x < nodes.length; x++) {
+ if (nodes[x].id != "") {
+ removed.push(nodes[x]);
+ nodes.splice(x, 1);
+ x--;
+ }
+ }
+ }
+ var tElem = dojo.byId(id);
+ while (tElem) {
+ if (!tElem["idcached"]) {
+ added.push(tElem);
+ }
+ tElem.id = "";
+ tElem = dojo.byId(id);
+ }
+ this.matchCache[id] = this.matchCache[id].concat(added);
+ dojo.lang.forEach(this.matchCache[id], function (node) {
+ node.id = id;
+ node.idcached = true;
+ });
+ return {"removed":removed, "added":added, "match":this.matchCache[id]};
+ };
+ this.applyToNode = function (node, action, ruleSetName) {
+ if (typeof action == "string") {
+ dojo.event.topic.registerPublisher(action, node, ruleSetName);
+ } else {
+ if (typeof action == "function") {
+ if (ruleSetName == "found") {
+ action(node);
+ } else {
+ dojo.event.connect(node, ruleSetName, action);
+ }
+ } else {
+ action.srcObj = node;
+ action.srcFunc = ruleSetName;
+ dojo.event.kwConnect(action);
+ }
+ }
+ };
+ this.applyFast = function () {
+ dojo.profile.start("dojo.behavior.applyFast");
+ forIn(this.behaviors, function (tBehavior, id) {
+ var elems = dojo.behavior.elementsById(id);
+ dojo.lang.forEach(elems.added, function (elem) {
+ forIn(tBehavior, function (ruleSet, ruleSetName) {
+ if (dojo.lang.isArray(ruleSet)) {
+ dojo.lang.forEach(ruleSet, function (action) {
+ dojo.behavior.applyToNode(elem, action, ruleSetName);
+ });
+ }
+ });
+ });
+ });
+ dojo.profile.end("dojo.behavior.applyFast");
+ };
+ this.applySlow = function () {
+ dojo.profile.start("dojo.behavior.applySlow");
+ var all = document.getElementsByTagName("*");
+ var allLen = all.length;
+ for (var x = 0; x < allLen; x++) {
+ var elem = all[x];
+ if ((elem.id) && (!elem["behaviorAdded"]) && (this.behaviors[elem.id])) {
+ elem["behaviorAdded"] = true;
+ forIn(this.behaviors[elem.id], function (ruleSet, ruleSetName) {
+ if (dojo.lang.isArray(ruleSet)) {
+ dojo.lang.forEach(ruleSet, function (action) {
+ dojo.behavior.applyToNode(elem, action, ruleSetName);
+ });
+ }
+ });
+ }
+ }
+ dojo.profile.end("dojo.behavior.applySlow");
+ };
+};
+dojo.addOnLoad(dojo.behavior, "apply");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/behavior.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,160 @@
+/*
+ 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
+*/
+
+
+
+var dj_global = this;
+var dj_currentContext = this;
+function dj_undef(name, object) {
+ return (typeof (object || dj_currentContext)[name] == "undefined");
+}
+if (dj_undef("djConfig", this)) {
+ var djConfig = {};
+}
+if (dj_undef("dojo", this)) {
+ var dojo = {};
+}
+dojo.global = function () {
+ return dj_currentContext;
+};
+dojo.locale = djConfig.locale;
+dojo.version = {major:0, minor:4, patch:3, flag:"", revision:Number("$Rev$".match(/[0-9]+/)[0]), toString:function () {
+ with (dojo.version) {
+ return major + "." + minor + "." + patch + flag + " (" + revision + ")";
+ }
+}};
+dojo.evalProp = function (name, object, create) {
+ if ((!object) || (!name)) {
+ return undefined;
+ }
+ if (!dj_undef(name, object)) {
+ return object[name];
+ }
+ return (create ? (object[name] = {}) : undefined);
+};
+dojo.parseObjPath = function (path, context, create) {
+ var object = (context || dojo.global());
+ var names = path.split(".");
+ var prop = names.pop();
+ for (var i = 0, l = names.length; i < l && object; i++) {
+ object = dojo.evalProp(names[i], object, create);
+ }
+ return {obj:object, prop:prop};
+};
+dojo.evalObjPath = function (path, create) {
+ if (typeof path != "string") {
+ return dojo.global();
+ }
+ if (path.indexOf(".") == -1) {
+ return dojo.evalProp(path, dojo.global(), create);
+ }
+ var ref = dojo.parseObjPath(path, dojo.global(), create);
+ if (ref) {
+ return dojo.evalProp(ref.prop, ref.obj, create);
+ }
+ return null;
+};
+dojo.errorToString = function (exception) {
+ if (!dj_undef("message", exception)) {
+ return exception.message;
+ } else {
+ if (!dj_undef("description", exception)) {
+ return exception.description;
+ } else {
+ return exception;
+ }
+ }
+};
+dojo.raise = function (message, exception) {
+ if (exception) {
+ message = message + ": " + dojo.errorToString(exception);
+ } else {
+ message = dojo.errorToString(message);
+ }
+ try {
+ if (djConfig.isDebug) {
+ dojo.hostenv.println("FATAL exception raised: " + message);
+ }
+ }
+ catch (e) {
+ }
+ throw exception || Error(message);
+};
+dojo.debug = function () {
+};
+dojo.debugShallow = function (obj) {
+};
+dojo.profile = {start:function () {
+}, end:function () {
+}, stop:function () {
+}, dump:function () {
+}};
+function dj_eval(scriptFragment) {
+ return dj_global.eval ? dj_global.eval(scriptFragment) : eval(scriptFragment);
+}
+dojo.unimplemented = function (funcname, extra) {
+ var message = "'" + funcname + "' not implemented";
+ if (extra != null) {
+ message += " " + extra;
+ }
+ dojo.raise(message);
+};
+dojo.deprecated = function (behaviour, extra, removal) {
+ var message = "DEPRECATED: " + behaviour;
+ if (extra) {
+ message += " " + extra;
+ }
+ if (removal) {
+ message += " -- will be removed in version: " + removal;
+ }
+ dojo.debug(message);
+};
+dojo.render = (function () {
+ function vscaffold(prefs, names) {
+ var tmp = {capable:false, support:{builtin:false, plugin:false}, prefixes:prefs};
+ for (var i = 0; i < names.length; i++) {
+ tmp[names[i]] = false;
+ }
+ return tmp;
+ }
+ return {name:"", ver:dojo.version, os:{win:false, linux:false, osx:false}, html:vscaffold(["html"], ["ie", "opera", "khtml", "safari", "moz"]), svg:vscaffold(["svg"], ["corel", "adobe", "batik"]), vml:vscaffold(["vml"], ["ie"]), swf:vscaffold(["Swf", "Flash", "Mm"], ["mm"]), swt:vscaffold(["Swt"], ["ibm"])};
+})();
+dojo.hostenv = (function () {
+ var config = {isDebug:false, allowQueryConfig:false, baseScriptUri:"", baseRelativePath:"", libraryScriptUri:"", iePreventClobber:false, ieClobberMinimal:true, preventBackButtonFix:true, delayMozLoadingFix:false, searchIds:[], parseWidgets:true};
+ if (typeof djConfig == "undefined") {
+ djConfig = config;
+ } else {
+ for (var option in config) {
+ if (typeof djConfig[option] == "undefined") {
+ djConfig[option] = config[option];
+ }
+ }
+ }
+ return {name_:"(unset)", version_:"(unset)", getName:function () {
+ return this.name_;
+ }, getVersion:function () {
+ return this.version_;
+ }, getText:function (uri) {
+ dojo.unimplemented("getText", "uri=" + uri);
+ }};
+})();
+dojo.hostenv.getBaseScriptUri = function () {
+ if (djConfig.baseScriptUri.length) {
+ return djConfig.baseScriptUri;
+ }
+ var uri = new String(djConfig.libraryScriptUri || djConfig.baseRelativePath);
+ if (!uri) {
+ dojo.raise("Nothing returned by getLibraryScriptUri(): " + uri);
+ }
+ var lastslash = uri.lastIndexOf("/");
+ djConfig.baseScriptUri = djConfig.baseRelativePath;
+ return djConfig.baseScriptUri;
+};
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/bootstrap1.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,135 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.browser_debug");
+dojo.hostenv.loadedUris.push("../src/bootstrap1.js");
+dojo.hostenv.loadedUris.push("../src/loader.js");
+dojo.hostenv.loadedUris.push("../src/hostenv_browser.js");
+dojo.hostenv._loadedUrisListStart = dojo.hostenv.loadedUris.length;
+function removeComments(contents) {
+ contents = new String((!contents) ? "" : contents);
+ contents = contents.replace(/^(.*?)\/\/(.*)$/mg, "$1");
+ contents = contents.replace(/(\n)/mg, "__DOJONEWLINE");
+ contents = contents.replace(/\/\*(.*?)\*\//g, "");
+ return contents.replace(/__DOJONEWLINE/mg, "\n");
+}
+dojo.hostenv.getRequiresAndProvides = function (contents) {
+ if (!contents) {
+ return [];
+ }
+ var deps = [];
+ var tmp;
+ RegExp.lastIndex = 0;
+ var testExp = /dojo.(hostenv.loadModule|hostenv.require|require|requireIf|kwCompoundRequire|hostenv.conditionalLoadModule|hostenv.startPackage|provide)\([\w\W]*?\)/mg;
+ while ((tmp = testExp.exec(contents)) != null) {
+ deps.push(tmp[0]);
+ }
+ return deps;
+};
+dojo.hostenv.getDelayRequiresAndProvides = function (contents) {
+ if (!contents) {
+ return [];
+ }
+ var deps = [];
+ var tmp;
+ RegExp.lastIndex = 0;
+ var testExp = /dojo.(requireAfterIf)\([\w\W]*?\)/mg;
+ while ((tmp = testExp.exec(contents)) != null) {
+ deps.push(tmp[0]);
+ }
+ return deps;
+};
+dojo.clobberLastObject = function (objpath) {
+ if (objpath.indexOf(".") == -1) {
+ if (!dj_undef(objpath, dj_global)) {
+ delete dj_global[objpath];
+ }
+ return true;
+ }
+ var syms = objpath.split(/\./);
+ var base = dojo.evalObjPath(syms.slice(0, -1).join("."), false);
+ var child = syms[syms.length - 1];
+ if (!dj_undef(child, base)) {
+ delete base[child];
+ return true;
+ }
+ return false;
+};
+var removals = [];
+function zip(arr) {
+ var ret = [];
+ var seen = {};
+ for (var x = 0; x < arr.length; x++) {
+ if (!seen[arr[x]]) {
+ ret.push(arr[x]);
+ seen[arr[x]] = true;
+ }
+ }
+ return ret;
+}
+var old_dj_eval = dj_eval;
+dj_eval = function () {
+ return true;
+};
+dojo.hostenv.oldLoadUri = dojo.hostenv.loadUri;
+dojo.hostenv.loadUri = function (uri, cb) {
+ if (dojo.hostenv.loadedUris[uri]) {
+ return true;
+ }
+ try {
+ var text = this.getText(uri, null, true);
+ if (!text) {
+ return false;
+ }
+ if (cb) {
+ var expr = old_dj_eval("(" + text + ")");
+ cb(expr);
+ } else {
+ var requires = dojo.hostenv.getRequiresAndProvides(text);
+ eval(requires.join(";"));
+ dojo.hostenv.loadedUris.push(uri);
+ dojo.hostenv.loadedUris[uri] = true;
+ var delayRequires = dojo.hostenv.getDelayRequiresAndProvides(text);
+ eval(delayRequires.join(";"));
+ }
+ }
+ catch (e) {
+ alert(e);
+ }
+ return true;
+};
+dojo.hostenv._writtenIncludes = {};
+dojo.hostenv.writeIncludes = function (willCallAgain) {
+ for (var x = removals.length - 1; x >= 0; x--) {
+ dojo.clobberLastObject(removals[x]);
+ }
+ var depList = [];
+ var seen = dojo.hostenv._writtenIncludes;
+ for (var x = 0; x < dojo.hostenv.loadedUris.length; x++) {
+ var curi = dojo.hostenv.loadedUris[x];
+ if (!seen[curi]) {
+ seen[curi] = true;
+ depList.push(curi);
+ }
+ }
+ dojo.hostenv._global_omit_module_check = true;
+ for (var x = dojo.hostenv._loadedUrisListStart; x < depList.length; x++) {
+ document.write("<script type='text/javascript' src='" + depList[x] + "'></script>");
+ }
+ document.write("<script type='text/javascript'>dojo.hostenv._global_omit_module_check = false;</script>");
+ dojo.hostenv._loadedUrisListStart = 0;
+ if (!willCallAgain) {
+ dj_eval = old_dj_eval;
+ dojo.hostenv.loadUri = dojo.hostenv.oldLoadUri;
+ }
+};
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,38 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.browser_debug_xd");
+dojo.nonDebugProvide = dojo.provide;
+dojo.provide = function (resourceName) {
+ var dbgQueue = dojo.hostenv["xdDebugQueue"];
+ if (dbgQueue && dbgQueue.length > 0 && resourceName == dbgQueue["currentResourceName"]) {
+ window.setTimeout("dojo.hostenv.xdDebugFileLoaded('" + resourceName + "')", 1);
+ }
+ dojo.nonDebugProvide.apply(dojo, arguments);
+};
+dojo.hostenv.xdDebugFileLoaded = function (resourceName) {
+ var dbgQueue = this.xdDebugQueue;
+ if (resourceName && resourceName == dbgQueue.currentResourceName) {
+ dbgQueue.shift();
+ }
+ if (dbgQueue.length == 0) {
+ dbgQueue.currentResourceName = null;
+ this.xdNotifyLoaded();
+ } else {
+ dbgQueue.currentResourceName = dbgQueue[0].resourceName;
+ var element = document.createElement("script");
+ element.type = "text/javascript";
+ element.src = dbgQueue[0].resourcePath;
+ document.getElementsByTagName("head")[0].appendChild(element);
+ }
+};
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/browser_debug_xd.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,567 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.cal.iCalendar");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.cal.textDirectory");
+dojo.require("dojo.date.common");
+dojo.require("dojo.date.serialize");
+dojo.cal.iCalendar.fromText = function (text) {
+ var properties = dojo.cal.textDirectory.tokenise(text);
+ var calendars = [];
+ for (var i = 0, begun = false; i < properties.length; i++) {
+ var prop = properties[i];
+ if (!begun) {
+ if (prop.name == "BEGIN" && prop.value == "VCALENDAR") {
+ begun = true;
+ var calbody = [];
+ }
+ } else {
+ if (prop.name == "END" && prop.value == "VCALENDAR") {
+ calendars.push(new dojo.cal.iCalendar.VCalendar(calbody));
+ begun = false;
+ } else {
+ calbody.push(prop);
+ }
+ }
+ }
+ return calendars;
+};
+dojo.cal.iCalendar.Component = function (body) {
+ if (!this.name) {
+ this.name = "COMPONENT";
+ }
+ this.properties = [];
+ this.components = [];
+ if (body) {
+ for (var i = 0, context = ""; i < body.length; i++) {
+ if (context == "") {
+ if (body[i].name == "BEGIN") {
+ context = body[i].value;
+ var childprops = [];
+ } else {
+ this.addProperty(new dojo.cal.iCalendar.Property(body[i]));
+ }
+ } else {
+ if (body[i].name == "END" && body[i].value == context) {
+ if (context == "VEVENT") {
+ this.addComponent(new dojo.cal.iCalendar.VEvent(childprops));
+ } else {
+ if (context == "VTIMEZONE") {
+ this.addComponent(new dojo.cal.iCalendar.VTimeZone(childprops));
+ } else {
+ if (context == "VTODO") {
+ this.addComponent(new dojo.cal.iCalendar.VTodo(childprops));
+ } else {
+ if (context == "VJOURNAL") {
+ this.addComponent(new dojo.cal.iCalendar.VJournal(childprops));
+ } else {
+ if (context == "VFREEBUSY") {
+ this.addComponent(new dojo.cal.iCalendar.VFreeBusy(childprops));
+ } else {
+ if (context == "STANDARD") {
+ this.addComponent(new dojo.cal.iCalendar.Standard(childprops));
+ } else {
+ if (context == "DAYLIGHT") {
+ this.addComponent(new dojo.cal.iCalendar.Daylight(childprops));
+ } else {
+ if (context == "VALARM") {
+ this.addComponent(new dojo.cal.iCalendar.VAlarm(childprops));
+ } else {
+ dojo.unimplemented("dojo.cal.iCalendar." + context);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ context = "";
+ } else {
+ childprops.push(body[i]);
+ }
+ }
+ }
+ if (this._ValidProperties) {
+ this.postCreate();
+ }
+ }
+};
+dojo.extend(dojo.cal.iCalendar.Component, {addProperty:function (prop) {
+ this.properties.push(prop);
+ this[prop.name.toLowerCase()] = prop;
+}, addComponent:function (prop) {
+ this.components.push(prop);
+}, postCreate:function () {
+ for (var x = 0; x < this._ValidProperties.length; x++) {
+ var evtProperty = this._ValidProperties[x];
+ var found = false;
+ for (var y = 0; y < this.properties.length; y++) {
+ var prop = this.properties[y];
+ var propName = prop.name.toLowerCase();
+ if (dojo.lang.isArray(evtProperty)) {
+ var alreadySet = false;
+ for (var z = 0; z < evtProperty.length; z++) {
+ var evtPropertyName = evtProperty[z].name.toLowerCase();
+ if ((this[evtPropertyName]) && (evtPropertyName != propName)) {
+ alreadySet = true;
+ }
+ }
+ if (!alreadySet) {
+ this[propName] = prop;
+ }
+ } else {
+ if (propName == evtProperty.name.toLowerCase()) {
+ found = true;
+ if (evtProperty.occurance == 1) {
+ this[propName] = prop;
+ } else {
+ found = true;
+ if (!dojo.lang.isArray(this[propName])) {
+ this[propName] = [];
+ }
+ this[propName].push(prop);
+ }
+ }
+ }
+ }
+ if (evtProperty.required && !found) {
+ dojo.debug("iCalendar - " + this.name + ": Required Property not found: " + evtProperty.name);
+ }
+ }
+ if (dojo.lang.isArray(this.rrule)) {
+ for (var x = 0; x < this.rrule.length; x++) {
+ var rule = this.rrule[x].value;
+ this.rrule[x].cache = function () {
+ };
+ var temp = rule.split(";");
+ for (var y = 0; y < temp.length; y++) {
+ var pair = temp[y].split("=");
+ var key = pair[0].toLowerCase();
+ var val = pair[1];
+ if ((key == "freq") || (key == "interval") || (key == "until")) {
+ this.rrule[x][key] = val;
+ } else {
+ var valArray = val.split(",");
+ this.rrule[x][key] = valArray;
+ }
+ }
+ }
+ this.recurring = true;
+ }
+}, toString:function () {
+ return "[iCalendar.Component; " + this.name + ", " + this.properties.length + " properties, " + this.components.length + " components]";
+}});
+dojo.cal.iCalendar.Property = function (prop) {
+ this.name = prop.name;
+ this.group = prop.group;
+ this.params = prop.params;
+ this.value = prop.value;
+};
+dojo.extend(dojo.cal.iCalendar.Property, {toString:function () {
+ return "[iCalenday.Property; " + this.name + ": " + this.value + "]";
+}});
+var _P = function (n, oc, req) {
+ return {name:n, required:(req) ? true : false, occurance:(oc == "*" || !oc) ? -1 : oc};
+};
+dojo.cal.iCalendar.VCalendar = function (calbody) {
+ this.name = "VCALENDAR";
+ this.recurring = [];
+ this.nonRecurringEvents = function () {
+ };
+ dojo.cal.iCalendar.Component.call(this, calbody);
+};
+dojo.inherits(dojo.cal.iCalendar.VCalendar, dojo.cal.iCalendar.Component);
+dojo.extend(dojo.cal.iCalendar.VCalendar, {addComponent:function (prop) {
+ this.components.push(prop);
+ if (prop.name.toLowerCase() == "vevent") {
+ if (prop.rrule) {
+ this.recurring.push(prop);
+ } else {
+ var startDate = prop.getDate();
+ var month = startDate.getMonth() + 1;
+ var dateString = month + "-" + startDate.getDate() + "-" + startDate.getFullYear();
+ if (!dojo.lang.isArray(this[dateString])) {
+ this.nonRecurringEvents[dateString] = [];
+ }
+ this.nonRecurringEvents[dateString].push(prop);
+ }
+ }
+}, preComputeRecurringEvents:function (until) {
+ var calculatedEvents = function () {
+ };
+ for (var x = 0; x < this.recurring.length; x++) {
+ var dates = this.recurring[x].getDates(until);
+ for (var y = 0; y < dates.length; y++) {
+ var month = dates[y].getMonth() + 1;
+ var dateStr = month + "-" + dates[y].getDate() + "-" + dates[y].getFullYear();
+ if (!dojo.lang.isArray(calculatedEvents[dateStr])) {
+ calculatedEvents[dateStr] = [];
+ }
+ if (!dojo.lang.inArray(calculatedEvents[dateStr], this.recurring[x])) {
+ calculatedEvents[dateStr].push(this.recurring[x]);
+ }
+ }
+ }
+ this.recurringEvents = calculatedEvents;
+}, getEvents:function (date) {
+ var events = [];
+ var recur = [];
+ var nonRecur = [];
+ var month = date.getMonth() + 1;
+ var dateStr = month + "-" + date.getDate() + "-" + date.getFullYear();
+ if (dojo.lang.isArray(this.nonRecurringEvents[dateStr])) {
+ nonRecur = this.nonRecurringEvents[dateStr];
+ dojo.debug("Number of nonRecurring Events: " + nonRecur.length);
+ }
+ if (dojo.lang.isArray(this.recurringEvents[dateStr])) {
+ recur = this.recurringEvents[dateStr];
+ }
+ events = recur.concat(nonRecur);
+ if (events.length > 0) {
+ return events;
+ }
+ return null;
+}});
+var StandardProperties = [_P("dtstart", 1, true), _P("tzoffsetto", 1, true), _P("tzoffsetfrom", 1, true), _P("comment"), _P("rdate"), _P("rrule"), _P("tzname")];
+dojo.cal.iCalendar.Standard = function (body) {
+ this.name = "STANDARD";
+ this._ValidProperties = StandardProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.Standard, dojo.cal.iCalendar.Component);
+var DaylightProperties = [_P("dtstart", 1, true), _P("tzoffsetto", 1, true), _P("tzoffsetfrom", 1, true), _P("comment"), _P("rdate"), _P("rrule"), _P("tzname")];
+dojo.cal.iCalendar.Daylight = function (body) {
+ this.name = "DAYLIGHT";
+ this._ValidProperties = DaylightProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.Daylight, dojo.cal.iCalendar.Component);
+var VEventProperties = [_P("class", 1), _P("created", 1), _P("description", 1), _P("dtstart", 1), _P("geo", 1), _P("last-mod", 1), _P("location", 1), _P("organizer", 1), _P("priority", 1), _P("dtstamp", 1), _P("seq", 1), _P("status", 1), _P("summary", 1), _P("transp", 1), _P("uid", 1), _P("url", 1), _P("recurid", 1), [_P("dtend", 1), _P("duration", 1)], _P("attach"), _P("attendee"), _P("categories"), _P("comment"), _P("contact"), _P("exdate"), _P("exrule"), _P("rstatus"), _P("related"), _P("resources"), _P("rdate"), _P("rrule")];
+dojo.cal.iCalendar.VEvent = function (body) {
+ this._ValidProperties = VEventProperties;
+ this.name = "VEVENT";
+ dojo.cal.iCalendar.Component.call(this, body);
+ this.recurring = false;
+ this.startDate = dojo.date.fromIso8601(this.dtstart.value);
+};
+dojo.inherits(dojo.cal.iCalendar.VEvent, dojo.cal.iCalendar.Component);
+dojo.extend(dojo.cal.iCalendar.VEvent, {getDates:function (until) {
+ var dtstart = this.getDate();
+ var recurranceSet = [];
+ var weekdays = ["su", "mo", "tu", "we", "th", "fr", "sa"];
+ var order = {"daily":1, "weekly":2, "monthly":3, "yearly":4, "byday":1, "bymonthday":1, "byweekno":2, "bymonth":3, "byyearday":4};
+ for (var x = 0; x < this.rrule.length; x++) {
+ var rrule = this.rrule[x];
+ var freq = rrule.freq.toLowerCase();
+ var interval = 1;
+ if (rrule.interval > interval) {
+ interval = rrule.interval;
+ }
+ var set = [];
+ var freqInt = order[freq];
+ if (rrule.until) {
+ var tmpUntil = dojo.date.fromIso8601(rrule.until);
+ } else {
+ var tmpUntil = until;
+ }
+ if (tmpUntil > until) {
+ tmpUntil = until;
+ }
+ if (dtstart < tmpUntil) {
+ var expandingRules = function () {
+ };
+ var cullingRules = function () {
+ };
+ expandingRules.length = 0;
+ cullingRules.length = 0;
+ switch (freq) {
+ case "yearly":
+ var nextDate = new Date(dtstart);
+ set.push(nextDate);
+ while (nextDate < tmpUntil) {
+ nextDate.setYear(nextDate.getFullYear() + interval);
+ tmpDate = new Date(nextDate);
+ if (tmpDate < tmpUntil) {
+ set.push(tmpDate);
+ }
+ }
+ break;
+ case "monthly":
+ nextDate = new Date(dtstart);
+ set.push(nextDate);
+ while (nextDate < tmpUntil) {
+ nextDate.setMonth(nextDate.getMonth() + interval);
+ var tmpDate = new Date(nextDate);
+ if (tmpDate < tmpUntil) {
+ set.push(tmpDate);
+ }
+ }
+ break;
+ case "weekly":
+ nextDate = new Date(dtstart);
+ set.push(nextDate);
+ while (nextDate < tmpUntil) {
+ nextDate.setDate(nextDate.getDate() + (7 * interval));
+ var tmpDate = new Date(nextDate);
+ if (tmpDate < tmpUntil) {
+ set.push(tmpDate);
+ }
+ }
+ break;
+ case "daily":
+ nextDate = new Date(dtstart);
+ set.push(nextDate);
+ while (nextDate < tmpUntil) {
+ nextDate.setDate(nextDate.getDate() + interval);
+ var tmpDate = new Date(nextDate);
+ if (tmpDate < tmpUntil) {
+ set.push(tmpDate);
+ }
+ }
+ break;
+ }
+ if ((rrule["bymonth"]) && (order["bymonth"] < freqInt)) {
+ for (var z = 0; z < rrule["bymonth"].length; z++) {
+ if (z == 0) {
+ for (var zz = 0; zz < set.length; zz++) {
+ set[zz].setMonth(rrule["bymonth"][z] - 1);
+ }
+ } else {
+ var subset = [];
+ for (var zz = 0; zz < set.length; zz++) {
+ var newDate = new Date(set[zz]);
+ newDate.setMonth(rrule[z]);
+ subset.push(newDate);
+ }
+ tmp = set.concat(subset);
+ set = tmp;
+ }
+ }
+ }
+ if (rrule["byweekno"] && !rrule["bymonth"]) {
+ dojo.debug("TODO: no support for byweekno yet");
+ }
+ if (rrule["byyearday"] && !rrule["bymonth"] && !rrule["byweekno"]) {
+ if (rrule["byyearday"].length > 1) {
+ var regex = "([+-]?)([0-9]{1,3})";
+ for (var z = 1; x < rrule["byyearday"].length; z++) {
+ var regexResult = rrule["byyearday"][z].match(regex);
+ if (z == 1) {
+ for (var zz = 0; zz < set.length; zz++) {
+ if (regexResult[1] == "-") {
+ dojo.date.setDayOfYear(set[zz], 366 - regexResult[2]);
+ } else {
+ dojo.date.setDayOfYear(set[zz], regexResult[2]);
+ }
+ }
+ } else {
+ var subset = [];
+ for (var zz = 0; zz < set.length; zz++) {
+ var newDate = new Date(set[zz]);
+ if (regexResult[1] == "-") {
+ dojo.date.setDayOfYear(newDate, 366 - regexResult[2]);
+ } else {
+ dojo.date.setDayOfYear(newDate, regexResult[2]);
+ }
+ subset.push(newDate);
+ }
+ tmp = set.concat(subset);
+ set = tmp;
+ }
+ }
+ }
+ }
+ if (rrule["bymonthday"] && (order["bymonthday"] < freqInt)) {
+ if (rrule["bymonthday"].length > 0) {
+ var regex = "([+-]?)([0-9]{1,3})";
+ for (var z = 0; z < rrule["bymonthday"].length; z++) {
+ var regexResult = rrule["bymonthday"][z].match(regex);
+ if (z == 0) {
+ for (var zz = 0; zz < set.length; zz++) {
+ if (regexResult[1] == "-") {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ set[zz].setDate(dojo.date.getDaysInMonth(set[zz]) - regexResult[2]);
+ }
+ } else {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ set[zz].setDate(regexResult[2]);
+ }
+ }
+ }
+ } else {
+ var subset = [];
+ for (var zz = 0; zz < set.length; zz++) {
+ var newDate = new Date(set[zz]);
+ if (regexResult[1] == "-") {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ newDate.setDate(dojo.date.getDaysInMonth(set[zz]) - regexResult[2]);
+ }
+ } else {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ newDate.setDate(regexResult[2]);
+ }
+ }
+ subset.push(newDate);
+ }
+ tmp = set.concat(subset);
+ set = tmp;
+ }
+ }
+ }
+ }
+ if (rrule["byday"] && (order["byday"] < freqInt)) {
+ if (rrule["bymonth"]) {
+ if (rrule["byday"].length > 0) {
+ var regex = "([+-]?)([0-9]{0,1}?)([A-Za-z]{1,2})";
+ for (var z = 0; z < rrule["byday"].length; z++) {
+ var regexResult = rrule["byday"][z].match(regex);
+ var occurance = regexResult[2];
+ var day = regexResult[3].toLowerCase();
+ if (z == 0) {
+ for (var zz = 0; zz < set.length; zz++) {
+ if (regexResult[1] == "-") {
+ var numDaysFound = 0;
+ var lastDayOfMonth = dojo.date.getDaysInMonth(set[zz]);
+ var daysToSubtract = 1;
+ set[zz].setDate(lastDayOfMonth);
+ if (weekdays[set[zz].getDay()] == day) {
+ numDaysFound++;
+ daysToSubtract = 7;
+ }
+ daysToSubtract = 1;
+ while (numDaysFound < occurance) {
+ set[zz].setDate(set[zz].getDate() - daysToSubtract);
+ if (weekdays[set[zz].getDay()] == day) {
+ numDaysFound++;
+ daysToSubtract = 7;
+ }
+ }
+ } else {
+ if (occurance) {
+ var numDaysFound = 0;
+ set[zz].setDate(1);
+ var daysToAdd = 1;
+ if (weekdays[set[zz].getDay()] == day) {
+ numDaysFound++;
+ daysToAdd = 7;
+ }
+ while (numDaysFound < occurance) {
+ set[zz].setDate(set[zz].getDate() + daysToAdd);
+ if (weekdays[set[zz].getDay()] == day) {
+ numDaysFound++;
+ daysToAdd = 7;
+ }
+ }
+ } else {
+ var numDaysFound = 0;
+ var subset = [];
+ lastDayOfMonth = new Date(set[zz]);
+ var daysInMonth = dojo.date.getDaysInMonth(set[zz]);
+ lastDayOfMonth.setDate(daysInMonth);
+ set[zz].setDate(1);
+ if (weekdays[set[zz].getDay()] == day) {
+ numDaysFound++;
+ }
+ var tmpDate = new Date(set[zz]);
+ daysToAdd = 1;
+ while (tmpDate.getDate() < lastDayOfMonth) {
+ if (weekdays[tmpDate.getDay()] == day) {
+ numDaysFound++;
+ if (numDaysFound == 1) {
+ set[zz] = tmpDate;
+ } else {
+ subset.push(tmpDate);
+ tmpDate = new Date(tmpDate);
+ daysToAdd = 7;
+ tmpDate.setDate(tmpDate.getDate() + daysToAdd);
+ }
+ } else {
+ tmpDate.setDate(tmpDate.getDate() + daysToAdd);
+ }
+ }
+ var t = set.concat(subset);
+ set = t;
+ }
+ }
+ }
+ } else {
+ var subset = [];
+ for (var zz = 0; zz < set.length; zz++) {
+ var newDate = new Date(set[zz]);
+ if (regexResult[1] == "-") {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ newDate.setDate(dojo.date.getDaysInMonth(set[zz]) - regexResult[2]);
+ }
+ } else {
+ if (regexResult[2] < dojo.date.getDaysInMonth(set[zz])) {
+ newDate.setDate(regexResult[2]);
+ }
+ }
+ subset.push(newDate);
+ }
+ tmp = set.concat(subset);
+ set = tmp;
+ }
+ }
+ }
+ } else {
+ dojo.debug("TODO: byday within a yearly rule without a bymonth");
+ }
+ }
+ dojo.debug("TODO: Process BYrules for units larger than frequency");
+ var tmp = recurranceSet.concat(set);
+ recurranceSet = tmp;
+ }
+ }
+ recurranceSet.push(dtstart);
+ return recurranceSet;
+}, getDate:function () {
+ return dojo.date.fromIso8601(this.dtstart.value);
+}});
+var VTimeZoneProperties = [_P("tzid", 1, true), _P("last-mod", 1), _P("tzurl", 1)];
+dojo.cal.iCalendar.VTimeZone = function (body) {
+ this.name = "VTIMEZONE";
+ this._ValidProperties = VTimeZoneProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.VTimeZone, dojo.cal.iCalendar.Component);
+var VTodoProperties = [_P("class", 1), _P("completed", 1), _P("created", 1), _P("description", 1), _P("dtstart", 1), _P("geo", 1), _P("last-mod", 1), _P("location", 1), _P("organizer", 1), _P("percent", 1), _P("priority", 1), _P("dtstamp", 1), _P("seq", 1), _P("status", 1), _P("summary", 1), _P("uid", 1), _P("url", 1), _P("recurid", 1), [_P("due", 1), _P("duration", 1)], _P("attach"), _P("attendee"), _P("categories"), _P("comment"), _P("contact"), _P("exdate"), _P("exrule"), _P("rstatus"), _P("related"), _P("resources"), _P("rdate"), _P("rrule")];
+dojo.cal.iCalendar.VTodo = function (body) {
+ this.name = "VTODO";
+ this._ValidProperties = VTodoProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.VTodo, dojo.cal.iCalendar.Component);
+var VJournalProperties = [_P("class", 1), _P("created", 1), _P("description", 1), _P("dtstart", 1), _P("last-mod", 1), _P("organizer", 1), _P("dtstamp", 1), _P("seq", 1), _P("status", 1), _P("summary", 1), _P("uid", 1), _P("url", 1), _P("recurid", 1), _P("attach"), _P("attendee"), _P("categories"), _P("comment"), _P("contact"), _P("exdate"), _P("exrule"), _P("related"), _P("rstatus"), _P("rdate"), _P("rrule")];
+dojo.cal.iCalendar.VJournal = function (body) {
+ this.name = "VJOURNAL";
+ this._ValidProperties = VJournalProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.VJournal, dojo.cal.iCalendar.Component);
+var VFreeBusyProperties = [_P("contact"), _P("dtstart", 1), _P("dtend"), _P("duration"), _P("organizer", 1), _P("dtstamp", 1), _P("uid", 1), _P("url", 1), _P("attendee"), _P("comment"), _P("freebusy"), _P("rstatus")];
+dojo.cal.iCalendar.VFreeBusy = function (body) {
+ this.name = "VFREEBUSY";
+ this._ValidProperties = VFreeBusyProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.VFreeBusy, dojo.cal.iCalendar.Component);
+var VAlarmProperties = [[_P("action", 1, true), _P("trigger", 1, true), [_P("duration", 1), _P("repeat", 1)], _P("attach", 1)], [_P("action", 1, true), _P("description", 1, true), _P("trigger", 1, true), [_P("duration", 1), _P("repeat", 1)]], [_P("action", 1, true), _P("description", 1, true), _P("trigger", 1, true), _P("summary", 1, true), _P("attendee", "*", true), [_P("duration", 1), _P("repeat", 1)], _P("attach", 1)], [_P("action", 1, true), _P("attach", 1, true), _P("trigger", 1, true), [_P("duration", 1), _P("repeat", 1)], _P("description", 1)]];
+dojo.cal.iCalendar.VAlarm = function (body) {
+ this.name = "VALARM";
+ this._ValidProperties = VAlarmProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+};
+dojo.inherits(dojo.cal.iCalendar.VAlarm, dojo.cal.iCalendar.Component);
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,57 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.cal.textDirectory");
+dojo.require("dojo.string");
+dojo.cal.textDirectory.Property = function (line) {
+ var left = dojo.string.trim(line.substring(0, line.indexOf(":")));
+ var right = dojo.string.trim(line.substr(line.indexOf(":") + 1));
+ var parameters = dojo.string.splitEscaped(left, ";");
+ this.name = parameters[0];
+ parameters.splice(0, 1);
+ this.params = [];
+ var arr;
+ for (var i = 0; i < parameters.length; i++) {
+ arr = parameters[i].split("=");
+ var key = dojo.string.trim(arr[0].toUpperCase());
+ if (arr.length == 1) {
+ this.params.push([key]);
+ continue;
+ }
+ var values = dojo.string.splitEscaped(arr[1], ",");
+ for (var j = 0; j < values.length; j++) {
+ if (dojo.string.trim(values[j]) != "") {
+ this.params.push([key, dojo.string.trim(values[j])]);
+ }
+ }
+ }
+ if (this.name.indexOf(".") > 0) {
+ arr = this.name.split(".");
+ this.group = arr[0];
+ this.name = arr[1];
+ }
+ this.value = right;
+};
+dojo.cal.textDirectory.tokenise = function (text) {
+ var nText = dojo.string.normalizeNewlines(text, "\n").replace(/\n[ \t]/g, "").replace(/\x00/g, "");
+ var lines = nText.split("\n");
+ var properties = [];
+ for (var i = 0; i < lines.length; i++) {
+ if (dojo.string.trim(lines[i]) == "") {
+ continue;
+ }
+ var prop = new dojo.cal.textDirectory.Property(lines[i]);
+ properties.push(prop);
+ }
+ return properties;
+};
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,132 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.Axis");
+dojo.require("dojo.lang.common");
+dojo.charting.Axis = function (label, scale, labels) {
+ var id = "dojo-charting-axis-" + dojo.charting.Axis.count++;
+ this.getId = function () {
+ return id;
+ };
+ this.setId = function (key) {
+ id = key;
+ };
+ this.scale = scale || "linear";
+ this.label = label || "";
+ this.showLabel = true;
+ this.showLabels = true;
+ this.showLines = false;
+ this.showTicks = false;
+ this.range = {upper:100, lower:0};
+ this.origin = "min";
+ this._origin = null;
+ this.labels = labels || [];
+ this._labels = [];
+ this.nodes = {main:null, axis:null, label:null, labels:null, lines:null, ticks:null};
+ this._rerender = false;
+};
+dojo.charting.Axis.count = 0;
+dojo.extend(dojo.charting.Axis, {getCoord:function (val, plotArea, plot) {
+ val = parseFloat(val, 10);
+ var area = plotArea.getArea();
+ if (plot.axisX == this) {
+ var offset = 0 - this.range.lower;
+ var min = this.range.lower + offset;
+ var max = this.range.upper + offset;
+ val += offset;
+ return (val * ((area.right - area.left) / max)) + area.left;
+ } else {
+ var max = this.range.upper;
+ var min = this.range.lower;
+ var offset = 0;
+ if (min < 0) {
+ offset += Math.abs(min);
+ }
+ max += offset;
+ min += offset;
+ val += offset;
+ var pmin = area.bottom;
+ var pmax = area.top;
+ return (((pmin - pmax) / (max - min)) * (max - val)) + pmax;
+ }
+}, initializeOrigin:function (drawAgainst, plane) {
+ if (this._origin == null) {
+ this._origin = this.origin;
+ }
+ if (isNaN(this._origin)) {
+ if (this._origin.toLowerCase() == "max") {
+ this.origin = drawAgainst.range[(plane == "y") ? "upper" : "lower"];
+ } else {
+ if (this._origin.toLowerCase() == "min") {
+ this.origin = drawAgainst.range[(plane == "y") ? "lower" : "upper"];
+ } else {
+ this.origin = 0;
+ }
+ }
+ }
+}, initializeLabels:function () {
+ this._labels = [];
+ if (this.labels.length == 0) {
+ this.showLabels = false;
+ this.showLines = false;
+ this.showTicks = false;
+ } else {
+ if (this.labels[0].label && this.labels[0].value != null) {
+ for (var i = 0; i < this.labels.length; i++) {
+ this._labels.push(this.labels[i]);
+ }
+ } else {
+ if (!isNaN(this.labels[0])) {
+ for (var i = 0; i < this.labels.length; i++) {
+ this._labels.push({label:this.labels[i], value:this.labels[i]});
+ }
+ } else {
+ var a = [];
+ for (var i = 0; i < this.labels.length; i++) {
+ a.push(this.labels[i]);
+ }
+ var s = a.shift();
+ this._labels.push({label:s, value:this.range.lower});
+ if (a.length > 0) {
+ var s = a.pop();
+ this._labels.push({label:s, value:this.range.upper});
+ }
+ if (a.length > 0) {
+ var range = this.range.upper - this.range.lower;
+ var step = range / (this.labels.length - 1);
+ for (var i = 1; i <= a.length; i++) {
+ this._labels.push({label:a[i - 1], value:this.range.lower + (step * i)});
+ }
+ }
+ }
+ }
+ }
+}, initialize:function (plotArea, plot, drawAgainst, plane) {
+ this.destroy();
+ this.initializeOrigin(drawAgainst, plane);
+ this.initializeLabels();
+ var node = this.render(plotArea, plot, drawAgainst, plane);
+ return node;
+}, destroy:function () {
+ for (var p in this.nodes) {
+ while (this.nodes[p] && this.nodes[p].childNodes.length > 0) {
+ this.nodes[p].removeChild(this.nodes[p].childNodes[0]);
+ }
+ if (this.nodes[p] && this.nodes[p].parentNode) {
+ this.nodes[p].parentNode.removeChild(this.nodes[p]);
+ }
+ this.nodes[p] = null;
+ }
+}});
+dojo.requireIf(dojo.render.svg.capable, "dojo.charting.svg.Axis");
+dojo.requireIf(dojo.render.vml.capable, "dojo.charting.vml.Axis");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Axis.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,64 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.Chart");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.charting.PlotArea");
+dojo.charting.Chart = function (node, title, description) {
+ this.node = node || null;
+ this.title = title || "Chart";
+ this.description = description || "";
+ this.plotAreas = [];
+};
+dojo.extend(dojo.charting.Chart, {addPlotArea:function (obj, doRender) {
+ if (obj.x != null && obj.left == null) {
+ obj.left = obj.x;
+ }
+ if (obj.y != null && obj.top == null) {
+ obj.top = obj.y;
+ }
+ this.plotAreas.push(obj);
+ if (doRender) {
+ this.render();
+ }
+}, onInitialize:function (chart) {
+}, onRender:function (chart) {
+}, onDestroy:function (chart) {
+}, initialize:function () {
+ if (!this.node) {
+ dojo.raise("dojo.charting.Chart.initialize: there must be a root node defined for the Chart.");
+ }
+ this.destroy();
+ this.render();
+ this.onInitialize(this);
+}, render:function () {
+ if (this.node.style.position != "absolute") {
+ this.node.style.position = "relative";
+ }
+ for (var i = 0; i < this.plotAreas.length; i++) {
+ var area = this.plotAreas[i].plotArea;
+ var node = area.initialize();
+ node.style.position = "absolute";
+ node.style.top = this.plotAreas[i].top + "px";
+ node.style.left = this.plotAreas[i].left + "px";
+ this.node.appendChild(node);
+ area.render();
+ }
+}, destroy:function () {
+ for (var i = 0; i < this.plotAreas.length; i++) {
+ this.plotAreas[i].plotArea.destroy();
+ }
+ while (this.node && this.node.childNodes && this.node.childNodes.length > 0) {
+ this.node.removeChild(this.node.childNodes[0]);
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Chart.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,82 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.Plot");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.charting.Axis");
+dojo.require("dojo.charting.Series");
+dojo.charting.RenderPlotSeries = {Singly:"single", Grouped:"grouped"};
+dojo.charting.Plot = function (xaxis, yaxis, series) {
+ var id = "dojo-charting-plot-" + dojo.charting.Plot.count++;
+ this.getId = function () {
+ return id;
+ };
+ this.setId = function (key) {
+ id = key;
+ };
+ this.axisX = null;
+ this.axisY = null;
+ this.series = [];
+ this.dataNode = null;
+ this.renderType = dojo.charting.RenderPlotSeries.Singly;
+ if (xaxis) {
+ this.setAxis(xaxis, "x");
+ }
+ if (yaxis) {
+ this.setAxis(yaxis, "y");
+ }
+ if (series) {
+ for (var i = 0; i < series.length; i++) {
+ this.addSeries(series[i]);
+ }
+ }
+};
+dojo.charting.Plot.count = 0;
+dojo.extend(dojo.charting.Plot, {addSeries:function (series, plotter) {
+ if (series.plotter) {
+ this.series.push(series);
+ } else {
+ this.series.push({data:series, plotter:plotter || dojo.charting.Plotters["Default"]});
+ }
+}, setAxis:function (axis, which) {
+ if (which.toLowerCase() == "x") {
+ this.axisX = axis;
+ } else {
+ if (which.toLowerCase() == "y") {
+ this.axisY = axis;
+ }
+ }
+}, getRanges:function () {
+ var xmin, xmax, ymin, ymax;
+ xmin = ymin = Number.MAX_VALUE;
+ xmax = ymax = Number.MIN_VALUE;
+ for (var i = 0; i < this.series.length; i++) {
+ var values = this.series[i].data.evaluate();
+ for (var j = 0; j < values.length; j++) {
+ var comp = values[j];
+ xmin = Math.min(comp.x, xmin);
+ ymin = Math.min(comp.y, ymin);
+ xmax = Math.max(comp.x, xmax);
+ ymax = Math.max(comp.y, ymax);
+ }
+ }
+ return {x:{upper:xmax, lower:xmin}, y:{upper:ymax, lower:ymin}, toString:function () {
+ return "[ x:" + xmax + " - " + xmin + ", y:" + ymax + " - " + ymin + "]";
+ }};
+}, destroy:function () {
+ var node = this.dataNode;
+ while (node && node.childNodes && node.childNodes.length > 0) {
+ node.removeChild(node.childNodes[0]);
+ }
+ this.dataNode = null;
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plot.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,137 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.PlotArea");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.gfx.color");
+dojo.require("dojo.gfx.color.hsl");
+dojo.require("dojo.charting.Plot");
+dojo.charting.PlotArea = function () {
+ var id = "dojo-charting-plotarea-" + dojo.charting.PlotArea.count++;
+ this.getId = function () {
+ return id;
+ };
+ this.setId = function (key) {
+ id = key;
+ };
+ this.areaType = "standard";
+ this.plots = [];
+ this.size = {width:600, height:400};
+ this.padding = {top:10, right:10, bottom:20, left:20};
+ this.nodes = {main:null, area:null, background:null, axes:null, plots:null};
+ this._color = {h:140, s:120, l:120, step:27};
+};
+dojo.charting.PlotArea.count = 0;
+dojo.extend(dojo.charting.PlotArea, {nextColor:function () {
+ var rgb = dojo.gfx.color.hsl2rgb(this._color.h, this._color.s, this._color.l);
+ this._color.h = (this._color.h + this._color.step) % 360;
+ while (this._color.h < 140) {
+ this._color.h += this._color.step;
+ }
+ return dojo.gfx.color.rgb2hex(rgb[0], rgb[1], rgb[2]);
+}, getArea:function () {
+ return {left:this.padding.left, right:this.size.width - this.padding.right, top:this.padding.top, bottom:this.size.height - this.padding.bottom, toString:function () {
+ var a = [this.top, this.right, this.bottom, this.left];
+ return "[" + a.join() + "]";
+ }};
+}, getAxes:function () {
+ var axes = {};
+ for (var i = 0; i < this.plots.length; i++) {
+ var plot = this.plots[i];
+ axes[plot.axisX.getId()] = {axis:plot.axisX, drawAgainst:plot.axisY, plot:plot, plane:"x"};
+ axes[plot.axisY.getId()] = {axis:plot.axisY, drawAgainst:plot.axisX, plot:plot, plane:"y"};
+ }
+ return axes;
+}, getLegendInfo:function () {
+ var a = [];
+ for (var i = 0; i < this.plots.length; i++) {
+ for (var j = 0; j < this.plots[i].series.length; j++) {
+ var data = this.plots[i].series[j].data;
+ a.push({label:data.label, color:data.color});
+ }
+ }
+ return a;
+}, setAxesRanges:function () {
+ var ranges = {};
+ var axes = {};
+ for (var i = 0; i < this.plots.length; i++) {
+ var plot = this.plots[i];
+ var ranges = plot.getRanges();
+ var x = ranges.x;
+ var y = ranges.y;
+ var ax, ay;
+ if (!axes[plot.axisX.getId()]) {
+ axes[plot.axisX.getId()] = plot.axisX;
+ ranges[plot.axisX.getId()] = {upper:x.upper, lower:x.lower};
+ }
+ ax = ranges[plot.axisX.getId()];
+ ax.upper = Math.max(ax.upper, x.upper);
+ ax.lower = Math.min(ax.lower, x.lower);
+ if (!axes[plot.axisY.getId()]) {
+ axes[plot.axisY.getId()] = plot.axisY;
+ ranges[plot.axisY.getId()] = {upper:y.upper, lower:y.lower};
+ }
+ ay = ranges[plot.axisY.getId()];
+ ay.upper = Math.max(ay.upper, y.upper);
+ ay.lower = Math.min(ay.lower, y.lower);
+ }
+ for (var p in axes) {
+ axes[p].range = ranges[p];
+ }
+}, render:function (kwArgs, applyToData) {
+ if (!this.nodes.main || !this.nodes.area || !this.nodes.background || !this.nodes.plots || !this.nodes.axes) {
+ this.initialize();
+ }
+ this.resize();
+ for (var i = 0; i < this.plots.length; i++) {
+ var plot = this.plots[i];
+ if (plot.dataNode) {
+ this.nodes.plots.removeChild(plot.dataNode);
+ }
+ var target = this.initializePlot(plot);
+ switch (plot.renderType) {
+ case dojo.charting.RenderPlotSeries.Grouped:
+ if (plot.series[0]) {
+ target.appendChild(plot.series[0].plotter(this, plot, kwArgs, applyToData));
+ }
+ break;
+ case dojo.charting.RenderPlotSeries.Singly:
+ default:
+ for (var j = 0; j < plot.series.length; j++) {
+ var series = plot.series[j];
+ var data = series.data.evaluate(kwArgs);
+ target.appendChild(series.plotter(data, this, plot, applyToData));
+ }
+ }
+ this.nodes.plots.appendChild(target);
+ }
+}, destroy:function () {
+ for (var i = 0; i < this.plots.length; i++) {
+ this.plots[i].destroy();
+ }
+ for (var p in this.nodes) {
+ var node = this.nodes[p];
+ if (!node) {
+ continue;
+ }
+ if (!node.childNodes) {
+ continue;
+ }
+ while (node.childNodes.length > 0) {
+ node.removeChild(node.childNodes[0]);
+ }
+ this.nodes[p] = null;
+ }
+}});
+dojo.requireIf(dojo.render.svg.capable, "dojo.charting.svg.PlotArea");
+dojo.requireIf(dojo.render.vml.capable, "dojo.charting.vml.PlotArea");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/PlotArea.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,16 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.Plotters");
+dojo.requireIf(dojo.render.svg.capable, "dojo.charting.svg.Plotters");
+dojo.requireIf(dojo.render.vml.capable, "dojo.charting.vml.Plotters");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Plotters.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt Thu Jul 16 19:14:41 2009
@@ -0,0 +1,46 @@
+Dojo Charting Engine
+=========================================================================
+The Dojo Charting Engine is a (fairly) complex object structure, designed
+to provide as much flexibility as possible in terms of chart construction.
+To this end, the engine details the following structure:
+
+Chart
+---PlotArea[]
+------Plot[]
+---------Axis (axisX)
+---------Axis (axisY)
+---------Series[]
+
+
+A Chart object is the main entity; it is the entire graphic. A Chart may
+have any number of PlotArea objects, which are the basic canvas against
+which data is plotted. A PlotArea may have any number of Plot objects,
+which is a container representing up to 2 axes and any number of series
+to be plotted against those axes; a Series represents a binding against
+two fields from a data source (initial rev, this data source is always of
+type dojo.collections.Store but this will probably change once dojo.data
+is in production).
+
+The point of this structure is to allow for as much flexibility as possible
+in terms of what kinds of charts can be represented by the engine. The
+current plan is to accomodate up to analytical financial charts, which tend
+to have 3 plot areas and any number of different types of axes on each one.
+
+The main exception to this is the pie chart, which will have it's own
+custom codebase. Also, 3D charts are not accounted for at this time,
+although the only thing that will probably need to be altered to make
+that work would be Plot and Series (to accomodate the additional Z axis).
+
+Finally, a Plot will render its series[] through the use of Plotters, which
+are custom methods to render specific types of charts.
+-------------------------------------------------------------------------
+In terms of widgets, the basic concept is that there is a central, super-
+flexible Chart widget (Chart, oddly enough), and then any number of preset
+chart type widgets, that are basically built to serve a simple, easy
+purpose. For instance, if someone just needs to plot a series of lines,
+they would be better off using the LineChart widget; but if someone needed
+to plot a combo chart, that has 2 Y Axes (one linear, one log) against the
+same X Axis, using lines and areas, then they will want to use a Chart widget.
+Note also that unlike other widgets, the Charting engine *can* be called
+directly from script *without* the need for the actual widget engine to be
+loaded; the Chart widgets are thin wrappers around the charting engine.
\ No newline at end of file
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/README.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,194 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.Series");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.charting.Plotters");
+dojo.charting.Series = function (kwArgs) {
+ var args = kwArgs || {length:1};
+ this.dataSource = args.dataSource || null;
+ this.bindings = {};
+ this.color = args.color;
+ this.label = args.label;
+ if (args.bindings) {
+ for (var p in args.bindings) {
+ this.addBinding(p, args.bindings[p]);
+ }
+ }
+};
+dojo.extend(dojo.charting.Series, {bind:function (src, bindings) {
+ this.dataSource = src;
+ this.bindings = bindings;
+}, addBinding:function (name, binding) {
+ this.bindings[name] = binding;
+}, evaluate:function (kwArgs) {
+ var ret = [];
+ var a = this.dataSource.getData();
+ var l = a.length;
+ var start = 0;
+ var end = l;
+ if (kwArgs) {
+ if (kwArgs.between) {
+ for (var i = 0; i < l; i++) {
+ var fld = this.dataSource.getField(a[i], kwArgs.between.field);
+ if (fld >= kwArgs.between.low && fld <= kwArgs.between.high) {
+ var o = {src:a[i], series:this};
+ for (var p in this.bindings) {
+ o[p] = this.dataSource.getField(a[i], this.bindings[p]);
+ }
+ ret.push(o);
+ }
+ }
+ } else {
+ if (kwArgs.from || kwArgs.length) {
+ if (kwArgs.from) {
+ start = Math.max(kwArgs.from, 0);
+ if (kwArgs.to) {
+ end = Math.min(kwArgs.to, end);
+ }
+ } else {
+ if (kwArgs.length < 0) {
+ start = Math.max((end + length), 0);
+ } else {
+ end = Math.min((start + length), end);
+ }
+ }
+ for (var i = start; i < end; i++) {
+ var o = {src:a[i], series:this};
+ for (var p in this.bindings) {
+ o[p] = this.dataSource.getField(a[i], this.bindings[p]);
+ }
+ ret.push(o);
+ }
+ }
+ }
+ } else {
+ for (var i = start; i < end; i++) {
+ var o = {src:a[i], series:this};
+ for (var p in this.bindings) {
+ o[p] = this.dataSource.getField(a[i], this.bindings[p]);
+ }
+ ret.push(o);
+ }
+ }
+ if (ret.length > 0 && typeof (ret[0].x) != "undefined") {
+ ret.sort(function (a, b) {
+ if (a.x > b.x) {
+ return 1;
+ }
+ if (a.x < b.x) {
+ return -1;
+ }
+ return 0;
+ });
+ }
+ return ret;
+}, trends:{createRange:function (values, len) {
+ var idx = values.length - 1;
+ var length = (len || values.length);
+ return {"index":idx, "length":length, "start":Math.max(idx - length, 0)};
+}, mean:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var total = 0;
+ var count = 0;
+ for (var i = range.index; i >= range.start; i--) {
+ total += values[i].y;
+ count++;
+ }
+ total /= Math.max(count, 1);
+ return total;
+}, variance:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var total = 0;
+ var square = 0;
+ var count = 0;
+ for (var i = range.index; i >= range.start; i--) {
+ total += values[i].y;
+ square += Math.pow(values[i].y, 2);
+ count++;
+ }
+ return (square / count) - Math.pow(total / count, 2);
+}, standardDeviation:function (values, len) {
+ return Math.sqrt(this.getVariance(values, len));
+}, max:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var max = Number.MIN_VALUE;
+ for (var i = range.index; i >= range.start; i--) {
+ max = Math.max(values[i].y, max);
+ }
+ return max;
+}, min:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var min = Number.MAX_VALUE;
+ for (var i = range.index; i >= range.start; i--) {
+ min = Math.min(values[i].y, min);
+ }
+ return min;
+}, median:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var a = [];
+ for (var i = range.index; i >= range.start; i--) {
+ var b = false;
+ for (var j = 0; j < a.length; j++) {
+ if (values[i].y == a[j]) {
+ b = true;
+ break;
+ }
+ }
+ if (!b) {
+ a.push(values[i].y);
+ }
+ }
+ a.sort();
+ if (a.length > 0) {
+ return a[Math.ceil(a.length / 2)];
+ }
+ return 0;
+}, mode:function (values, len) {
+ var range = this.createRange(values, len);
+ if (range.index < 0) {
+ return 0;
+ }
+ var o = {};
+ var ret = 0;
+ var median = Number.MIN_VALUE;
+ for (var i = range.index; i >= range.start; i--) {
+ if (!o[values[i].y]) {
+ o[values[i].y] = 1;
+ } else {
+ o[values[i].y]++;
+ }
+ }
+ for (var p in o) {
+ if (median < o[p]) {
+ median = o[p];
+ ret = p;
+ }
+ }
+ return ret;
+}}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/Series.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,14 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.*");
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/__package__.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/svg/Axis.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/svg/Axis.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/svg/Axis.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/charting/svg/Axis.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,188 @@
+/*
+ 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
+*/
+
+
+
+dojo.provide("dojo.charting.svg.Axis");
+dojo.require("dojo.lang.common");
+if (dojo.render.svg.capable) {
+ dojo.extend(dojo.charting.Axis, {renderLines:function (plotArea, plot, plane) {
+ if (this.nodes.lines) {
+ while (this.nodes.lines.childNodes.length > 0) {
+ this.nodes.lines.removeChild(this.nodes.lines.childNodes[0]);
+ }
+ if (this.nodes.lines.parentNode) {
+ this.nodes.lines.parentNode.removeChild(this.nodes.lines);
+ this.nodes.lines = null;
+ }
+ }
+ var area = plotArea.getArea();
+ var g = this.nodes.lines = document.createElementNS(dojo.svg.xmlns.svg, "g");
+ g.setAttribute("id", this.getId() + "-lines");
+ for (var i = 0; i < this._labels.length; i++) {
+ if (this._labels[i].value == this.origin) {
+ continue;
+ }
+ var v = this.getCoord(this._labels[i].value, plotArea, plot);
+ var l = document.createElementNS(dojo.svg.xmlns.svg, "line");
+ l.setAttribute("style", "stroke:#999;stroke-width:1px;stroke-dasharray:1,4;");
+ if (plane == "x") {
+ l.setAttribute("y1", area.top);
+ l.setAttribute("y2", area.bottom);
+ l.setAttribute("x1", v);
+ l.setAttribute("x2", v);
+ } else {
+ if (plane == "y") {
+ l.setAttribute("y1", v);
+ l.setAttribute("y2", v);
+ l.setAttribute("x1", area.left);
+ l.setAttribute("x2", area.right);
+ }
+ }
+ g.appendChild(l);
+ }
+ return g;
+ }, renderTicks:function (plotArea, plot, plane, coord) {
+ if (this.nodes.ticks) {
+ while (this.nodes.ticks.childNodes.length > 0) {
+ this.nodes.ticks.removeChild(this.nodes.ticks.childNodes[0]);
+ }
+ if (this.nodes.ticks.parentNode) {
+ this.nodes.ticks.parentNode.removeChild(this.nodes.ticks);
+ this.nodes.ticks = null;
+ }
+ }
+ var g = this.nodes.ticks = document.createElementNS(dojo.svg.xmlns.svg, "g");
+ g.setAttribute("id", this.getId() + "-ticks");
+ for (var i = 0; i < this._labels.length; i++) {
+ var v = this.getCoord(this._labels[i].value, plotArea, plot);
+ var l = document.createElementNS(dojo.svg.xmlns.svg, "line");
+ l.setAttribute("style", "stroke:#000;stroke-width:1pt;");
+ if (plane == "x") {
+ l.setAttribute("y1", coord);
+ l.setAttribute("y2", coord + 3);
+ l.setAttribute("x1", v);
+ l.setAttribute("x2", v);
+ } else {
+ if (plane == "y") {
+ l.setAttribute("y1", v);
+ l.setAttribute("y2", v);
+ l.setAttribute("x1", coord - 2);
+ l.setAttribute("x2", coord + 2);
+ }
+ }
+ g.appendChild(l);
+ }
+ return g;
+ }, renderLabels:function (plotArea, plot, plane, coord, textSize, anchor) {
+ function createLabel(label, x, y, textSize, anchor) {
+ var text = document.createElementNS(dojo.svg.xmlns.svg, "text");
+ text.setAttribute("x", x);
+ text.setAttribute("y", (plane == "x" ? y : y + 2));
+ text.setAttribute("style", "text-anchor:" + anchor + ";font-family:sans-serif;font-size:" + textSize + "px;fill:#000;");
+ text.appendChild(document.createTextNode(label));
+ return text;
+ }
+ if (this.nodes.labels) {
+ while (this.nodes.labels.childNodes.length > 0) {
+ this.nodes.labels.removeChild(this.nodes.labels.childNodes[0]);
+ }
+ if (this.nodes.labels.parentNode) {
+ this.nodes.labels.parentNode.removeChild(this.nodes.labels);
+ this.nodes.labels = null;
+ }
+ }
+ var g = this.nodes.labels = document.createElementNS(dojo.svg.xmlns.svg, "g");
+ g.setAttribute("id", this.getId() + "-labels");
+ for (var i = 0; i < this._labels.length; i++) {
+ var v = this.getCoord(this._labels[i].value, plotArea, plot);
+ if (plane == "x") {
+ g.appendChild(createLabel(this._labels[i].label, v, coord, textSize, anchor));
+ } else {
+ if (plane == "y") {
+ g.appendChild(createLabel(this._labels[i].label, coord, v, textSize, anchor));
+ }
+ }
+ }
+ return g;
+ }, render:function (plotArea, plot, drawAgainst, plane) {
+ if (!this._rerender && this.nodes.main) {
+ return this.nodes.main;
+ }
+ this._rerender = false;
+ var area = plotArea.getArea();
+ var stroke = 1;
+ var style = "stroke:#000;stroke-width:" + stroke + "px;";
+ var textSize = 10;
+ var coord = drawAgainst.getCoord(this.origin, plotArea, plot);
+ this.nodes.main = document.createElementNS(dojo.svg.xmlns.svg, "g");
+ var g = this.nodes.main;
+ g.setAttribute("id", this.getId());
+ var line = this.nodes.axis = document.createElementNS(dojo.svg.xmlns.svg, "line");
+ if (plane == "x") {
+ line.setAttribute("y1", coord);
+ line.setAttribute("y2", coord);
+ line.setAttribute("x1", area.left - stroke);
+ line.setAttribute("x2", area.right + stroke);
+ line.setAttribute("style", style);
+ var y = coord + textSize + 2;
+ if (this.showLines) {
+ g.appendChild(this.renderLines(plotArea, plot, plane, y));
+ }
+ if (this.showTicks) {
+ g.appendChild(this.renderTicks(plotArea, plot, plane, coord));
+ }
+ if (this.showLabels) {
+ g.appendChild(this.renderLabels(plotArea, plot, plane, y, textSize, "middle"));
+ }
+ if (this.showLabel && this.label) {
+ var x = plotArea.size.width / 2;
+ var text = document.createElementNS(dojo.svg.xmlns.svg, "text");
+ text.setAttribute("x", x);
+ text.setAttribute("y", (coord + (textSize * 2) + (textSize / 2)));
+ text.setAttribute("style", "text-anchor:middle;font-family:sans-serif;font-weight:bold;font-size:" + (textSize + 2) + "px;fill:#000;");
+ text.appendChild(document.createTextNode(this.label));
+ g.appendChild(text);
+ }
+ } else {
+ line.setAttribute("x1", coord);
+ line.setAttribute("x2", coord);
+ line.setAttribute("y1", area.top);
+ line.setAttribute("y2", area.bottom);
+ line.setAttribute("style", style);
+ var isMax = this.origin == drawAgainst.range.upper;
+ var x = coord + (isMax ? 4 : -4);
+ var anchor = isMax ? "start" : "end";
+ if (this.showLines) {
+ g.appendChild(this.renderLines(plotArea, plot, plane, x));
+ }
+ if (this.showTicks) {
+ g.appendChild(this.renderTicks(plotArea, plot, plane, coord));
+ }
+ if (this.showLabels) {
+ g.appendChild(this.renderLabels(plotArea, plot, plane, x, textSize, anchor));
+ }
+ if (this.showLabel && this.label) {
+ var x = isMax ? (coord + (textSize * 2) + (textSize / 2)) : (coord - (textSize * 4));
+ var y = plotArea.size.height / 2;
+ var text = document.createElementNS(dojo.svg.xmlns.svg, "text");
+ text.setAttribute("x", x);
+ text.setAttribute("y", y);
+ text.setAttribute("transform", "rotate(90, " + x + ", " + y + ")");
+ text.setAttribute("style", "text-anchor:middle;font-family:sans-serif;font-weight:bold;font-size:" + (textSize + 2) + "px;fill:#000;");
+ text.appendChild(document.createTextNode(this.label));
+ g.appendChild(text);
+ }
+ }
+ g.appendChild(line);
+ return g;
+ }});
+}
+