You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sv...@apache.org on 2006/11/10 10:15:40 UTC
svn commit: r473277 [5/45] - in
/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource:
./ src/ src/animation/ src/cal/ src/charting/ src/charting/svg/
src/charting/vml/ src/collections/ src/crypto/ src/data/ src/data/c...
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/flash6_gateway.swf
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/flash6_gateway.swf?view=auto&rev=473277
==============================================================================
Binary file - no diff available.
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/flash6_gateway.swf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/iframe_history.html
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/iframe_history.html?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/iframe_history.html (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/iframe_history.html Fri Nov 10 01:15:01 2006
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+ <script type="text/javascript">
+ // <!--
+ var noInit = false;
+ var domain = "";
+ // document.domain = "localhost";
+ function init(){
+ // parse the query string if there is one to try to get args that
+ // we can act on
+ var sparams = document.location.search;
+ if(sparams.length >= 0){
+ if(sparams.charAt(0) == "?"){
+ sparams = sparams.substring(1);
+ }
+ var ss = (sparams.indexOf("&") >= 0) ? "&" : "&";
+ sparams = sparams.split(ss);
+ for(var x=0; x<sparams.length; x++){
+ var tp = sparams[x].split("=");
+ if(typeof window[tp[0]] != "undefined"){
+ window[tp[0]] = ((tp[1]=="true")||(tp[1]=="false")) ? eval(tp[1]) : tp[1];
+ }
+ }
+ }
+
+ if(noInit){ return; }
+ if(domain.length > 0){
+ document.domain = domain;
+ }
+ if((window.parent != window)&&(window.parent["dojo"])){
+ //Set the page title so IE history shows up with a somewhat correct name.
+ document.title = window.parent.document.title;
+
+ //Notify parent that we are loaded.
+ var pdj = window.parent.dojo;
+ if(pdj["undo"] && pdj["undo"]["browser"]){
+ pdj.undo.browser.iframeLoaded(null, window.location);
+ }
+ }
+ }
+ // -->
+ </script>
+</head>
+<body onload="try{ init(); }catch(e){ alert(e); }">
+ <h4>The Dojo Toolkit -- iframe_history.html</h4>
+
+ <p>This file is used in Dojo's back/fwd button management.</p>
+</body>
+</html>
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/AdapterRegistry.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/AdapterRegistry.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/AdapterRegistry.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/AdapterRegistry.js Fri Nov 10 01:15:01 2006
@@ -11,62 +11,79 @@
dojo.provide("dojo.AdapterRegistry");
dojo.require("dojo.lang.func");
-dojo.AdapterRegistry = function(){
- /***
- A registry to facilitate adaptation.
-
- Pairs is an array of [name, check, wrap] triples
-
- All check/wrap functions in this registry should be of the same arity.
- ***/
- this.pairs = [];
+dojo.AdapterRegistry = function(/*boolean, optional*/returnWrappers){
+ // summary:
+ // A registry to make contextual calling/searching easier.
+ // description:
+ // Objects of this class keep list of arrays in the form [name, check,
+ // wrap, directReturn] that are used to determine what the contextual
+ // result of a set of checked arguments is. All check/wrap functions
+ // in this registry should be of the same arity.
+ this.pairs = [];
+ this.returnWrappers = returnWrappers || false;
}
dojo.lang.extend(dojo.AdapterRegistry, {
- register: function (name, check, wrap, /* optional */ override){
- /***
- The check function should return true if the given arguments are
- appropriate for the wrap function.
-
- If override is given and true, the check function will be given
- highest priority. Otherwise, it will be the lowest priority
- adapter.
- ***/
-
- if (override) {
- this.pairs.unshift([name, check, wrap]);
- } else {
- this.pairs.push([name, check, wrap]);
- }
- },
-
- match: function (/* ... */) {
- /***
- Find an adapter for the given arguments.
-
- If no suitable adapter is found, throws NotFound.
- ***/
- for(var i = 0; i < this.pairs.length; i++){
- var pair = this.pairs[i];
- if(pair[1].apply(this, arguments)){
- return pair[2].apply(this, arguments);
- }
- }
+ register: function( /*string*/ name, /*function*/ check, /*function*/ wrap,
+ /*boolean, optional*/ directReturn,
+ /*boolean, optional*/ override){
+ // summary:
+ // register a check function to determine if the wrap function or
+ // object gets selected
+ // name: a way to identify this matcher.
+ // check:
+ // a function that arguments are passed to from the adapter's
+ // match() function. The check function should return true if the
+ // given arguments are appropriate for the wrap function.
+ // directReturn:
+ // If directReturn is true, the value passed in for wrap will be
+ // returned instead of being called. Alternately, the
+ // AdapterRegistry can be set globally to "return not call" using
+ // the returnWrappers property. Either way, this behavior allows
+ // the registry to act as a "search" function instead of a
+ // function interception library.
+ // override:
+ // If override is given and true, the check function will be given
+ // highest priority. Otherwise, it will be the lowest priority
+ // adapter.
+
+ var type = (override) ? "unshift" : "push";
+ this.pairs[type]([name, check, wrap, directReturn]);
+ },
+
+ match: function(/* ... */){
+ // summary:
+ // Find an adapter for the given arguments. If no suitable adapter
+ // is found, throws an exception. match() accepts any number of
+ // arguments, all of which are passed to all matching functions
+ // from the registered pairs.
+ for(var i = 0; i < this.pairs.length; i++){
+ var pair = this.pairs[i];
+ if(pair[1].apply(this, arguments)){
+ if((pair[3])||(this.returnWrappers)){
+ return pair[2];
+ }else{
+ return pair[2].apply(this, arguments);
+ }
+ }
+ }
throw new Error("No match found");
- // dojo.raise("No match found");
- },
+ // dojo.raise("No match found");
+ },
+
+ unregister: function(name){
+ // summary: Remove a named adapter from the registry
- unregister: function (name) {
- /***
- Remove a named adapter from the registry
- ***/
- for(var i = 0; i < this.pairs.length; i++){
- var pair = this.pairs[i];
- if(pair[0] == name){
- this.pairs.splice(i, 1);
- return true;
- }
- }
- return false;
- }
+ // FIXME: this is kind of a dumb way to handle this. On a large
+ // registry this will be slow-ish and we can use the name as a lookup
+ // should we choose to trade memory for speed.
+ for(var i = 0; i < this.pairs.length; i++){
+ var pair = this.pairs[i];
+ if(pair[0] == name){
+ this.pairs.splice(i, 1);
+ return true;
+ }
+ }
+ return false;
+ }
});
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/Deferred.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/Deferred.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/Deferred.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/Deferred.js Fri Nov 10 01:15:01 2006
@@ -126,6 +126,12 @@
return null;
},
+ makeCalled: function() {
+ var deferred = new dojo.Deferred();
+ deferred.callback();
+ return deferred;
+ },
+
repr: function(){
var state;
if(this.fired == -1){
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js Fri Nov 10 01:15:01 2006
@@ -0,0 +1,88 @@
+/*
+ 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.require("dojo.Deferred");
+
+dojo.provide("dojo.DeferredList");
+
+
+dojo.DeferredList = function (list, /*bool?*/ fireOnOneCallback, /*bool?*/ fireOnOneErrback, /*bool?*/ consumeErrors, /*Function?*/ canceller) {
+ this.list = list;
+ this.resultList = new Array(this.list.length);
+
+ // Deferred init
+ this.chain = [];
+ this.id = this._nextId();
+ this.fired = -1;
+ this.paused = 0;
+ this.results = [null, null];
+ this.canceller = canceller;
+ this.silentlyCancelled = false;
+
+ if (this.list.length === 0 && !fireOnOneCallback) {
+ this.callback(this.resultList);
+ }
+
+ this.finishedCount = 0;
+ this.fireOnOneCallback = fireOnOneCallback;
+ this.fireOnOneErrback = fireOnOneErrback;
+ this.consumeErrors = consumeErrors;
+
+ var index = 0;
+
+ var _this = this;
+
+ dojo.lang.forEach(this.list, function(d) {
+ var _index = index;
+ //dojo.debug("add cb/errb index "+_index);
+ d.addCallback(function(r) { _this._cbDeferred(_index, true, r) });
+ d.addErrback(function(r) { _this._cbDeferred(_index, false, r) });
+ index++;
+ });
+
+};
+
+
+dojo.inherits(dojo.DeferredList, dojo.Deferred);
+
+dojo.lang.extend(dojo.DeferredList, {
+
+ _cbDeferred: function (index, succeeded, result) {
+ //dojo.debug("Fire "+index+" succ "+succeeded+" res "+result);
+ this.resultList[index] = [succeeded, result];
+ this.finishedCount += 1;
+ if (this.fired !== 0) {
+ if (succeeded && this.fireOnOneCallback) {
+ this.callback([index, result]);
+ } else if (!succeeded && this.fireOnOneErrback) {
+ this.errback(result);
+ } else if (this.finishedCount == this.list.length) {
+ this.callback(this.resultList);
+ }
+ }
+ if (!succeeded && this.consumeErrors) {
+ result = null;
+ }
+ return result;
+ },
+
+ gatherResults: function (deferredList) {
+ var d = new dojo.DeferredList(deferredList, false, true, false);
+ d.addCallback(function (results) {
+ var ret = [];
+ for (var i = 0; i < results.length; i++) {
+ ret.push(results[i][1]);
+ }
+ return ret;
+ });
+ return d;
+ }
+});
+
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js
------------------------------------------------------------------------------
svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/DeferredList.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js Fri Nov 10 01:15:01 2006
@@ -0,0 +1,103 @@
+/*
+ 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.a11y");
+
+dojo.require("dojo.uri.*");
+dojo.require("dojo.html.common");
+
+dojo.a11y = {
+ // imgPath: String path to the test image for determining if images are displayed or not
+ // doAccessibleCheck: Boolean if true will perform check for need to create accessible widgets
+ // accessible: Boolean uninitialized when null (accessible check has not been performed)
+ // if true generate accessible widgets
+ imgPath:dojo.uri.dojoUri("src/widget/templates/images"),
+ doAccessibleCheck: true,
+ accessible: null,
+
+ checkAccessible: function(){
+ // summary:
+ // perform check for accessibility if accessibility checking is turned
+ // on and the accessibility test has not been performed yet
+ if(this.accessible === null){
+ this.accessible = false; //default
+ if(this.doAccessibleCheck == true){
+ this.accessible = this.testAccessible();
+ }
+ }
+ return this.accessible; /* Boolean */
+ },
+
+ testAccessible: function(){
+ // summary:
+ // Always perform the accessibility check to determine if high
+ // contrast mode is on or display of images are turned off. Currently only checks
+ // in IE and Mozilla.
+ this.accessible = false; //default
+ if (dojo.render.html.ie || dojo.render.html.mozilla){
+ var div = document.createElement("div");
+ //div.style.color="rgb(153,204,204)";
+ div.style.backgroundImage = "url(\"" + this.imgPath + "/tab_close.gif\")";
+ // must add to hierarchy before can view currentStyle below
+ dojo.body().appendChild(div);
+ // in FF and IE the value for the current background style of the added div
+ // will be "none" in high contrast mode
+ // in FF the return value will be url(invalid-url:) when running over http
+ var bkImg = null;
+ if (window.getComputedStyle ) {
+ var cStyle = getComputedStyle(div, "");
+ bkImg = cStyle.getPropertyValue("background-image");
+ }else{
+ bkImg = div.currentStyle.backgroundImage;
+ }
+ var bUseImgElem = false;
+ if (bkImg != null && (bkImg == "none" || bkImg == "url(invalid-url:)" )) {
+ this.accessible = true;
+ }
+ /*
+ if(this.accessible == false && document.images){
+ // test if images are off in IE
+ var testImg = new Image();
+ if(testImg.fileSize) {
+ testImg.src = this.imgPath + "/tab_close.gif";
+ if(testImg.fileSize < 0){
+ this.accessible = true;
+ }
+ }
+ }*/
+ dojo.body().removeChild(div);
+ }
+ return this.accessible; /* Boolean */
+ },
+
+ setCheckAccessible: function(/* Boolean */ bTest){
+ // summary:
+ // Set whether or not to check for accessibility mode. Default value
+ // of module is true - perform check for accessibility modes.
+ // bTest: Boolean - true to check; false to turn off checking
+ this.doAccessibleCheck = bTest;
+ },
+
+ setAccessibleMode: function(){
+ // summary:
+ // perform the accessibility check and sets the correct mode to load
+ // a11y widgets. Only runs if test for accessiiblity has not been performed yet.
+ // Call testAccessible() to force the test.
+ if (this.accessible === null){
+ if (this.checkAccessible()){
+ dojo.render.html.prefixes.unshift("a11y");
+ }
+ }
+ return this.accessible; /* Boolean */
+ }
+};
+
+//dojo.hostenv.modulesLoadedListeners.unshift(function() { dojo.a11y.setAccessibleMode(); });
+//dojo.event.connect("before", dojo.hostenv, "makeWidgets", dojo.a11y, "setAccessibleMode");
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js
------------------------------------------------------------------------------
svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/a11y.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation.js Fri Nov 10 01:15:01 2006
@@ -10,3 +10,5 @@
dojo.provide("dojo.animation");
dojo.require("dojo.animation.Animation");
+
+dojo.deprecated("dojo.animation is slated for removal in 0.5; use dojo.lfx instead.", "0.5");
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Animation.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Animation.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Animation.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Animation.js Fri Nov 10 01:15:01 2006
@@ -15,13 +15,23 @@
dojo.require("dojo.math");
dojo.require("dojo.math.curves");
+dojo.deprecated("dojo.animation.Animation is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
+
/*
Animation package based off of Dan Pupius' work on Animations:
http://pupius.co.uk/js/Toolkit.Drawing.js
*/
-dojo.animation.Animation = function(/*dojo.math.curves.Line*/ curve, /*int*/ duration, /*Decimal?*/ accel, /*int?*/ repeatCount, /*int?*/ rate) {
- // public properties
+dojo.animation.Animation = function(/*dojo.math.curves.* */ curve, /*int*/ duration, /*Decimal?*/ accel, /*int?*/ repeatCount, /*int?*/ rate) {
+ // summary: Animation object iterates a set of numbers over a curve for a given amount of time, calling 'onAnimate' at each step.
+ // curve: Curve to animate over.
+ // duration: Duration of the animation, in milliseconds.
+ // accel: Either an integer or curve representing amount of acceleration. (?) Default is linear acceleration.
+ // repeatCount: Number of times to repeat the animation. Default is 0.
+ // rate: Time between animation steps, in milliseconds. Default is 25.
+ // description: Calls the following events: "onBegin", "onAnimate", "onEnd", "onPlay", "onPause", "onStop"
+ // If the animation implements a "handler" function, that will be called before each event is called.
+
if(dojo.lang.isArray(curve)) {
// curve: Array
// id: i
@@ -73,7 +83,12 @@
_startRepeatCount: 0,
// public methods
- play: function(gotoStart) {
+ play: function(/*Boolean?*/ gotoStart) {
+ // summary: Play the animation.
+ // goToStart: If true, will restart the animation from the beginning.
+ // Otherwise, starts from current play counter.
+ // description: Sends an "onPlay" event to any observers.
+ // Also sends an "onBegin" event if starting from the beginning.
if( gotoStart ) {
clearTimeout(this._timer);
this._active = false;
@@ -115,6 +130,9 @@
},
pause: function() {
+ // summary: Temporarily stop the animation, leaving the play counter at the current location.
+ // Resume later with sequence.play()
+ // description: Sends an "onPause" AnimationEvent to any observers.
clearTimeout(this._timer);
if( !this._active ) { return; }
this._paused = true;
@@ -125,6 +143,7 @@
},
playPause: function() {
+ // summary: Toggle between play and paused states.
if( !this._active || this._paused ) {
this.play();
} else {
@@ -132,7 +151,10 @@
}
},
- gotoPercent: function(pct, andPlay) {
+ gotoPercent: function(/*int*/ pct, /*Boolean*/ andPlay) {
+ // summary: Set the play counter at a certain point in the animation.
+ // pct: Point to set the play counter to, expressed as a percentage (0 to 100).
+ // andPlay: If true, will start the animation at the counter automatically.
clearTimeout(this._timer);
this._active = true;
this._paused = true;
@@ -140,7 +162,10 @@
if( andPlay ) { this.play(); }
},
- stop: function(gotoEnd) {
+ stop: function(/*Boolean?*/ gotoEnd) {
+ // summary: Stop the animation.
+ // gotoEnd: If true, will advance play counter to the end before sending the event.
+ // description: Sends an "onStop" AnimationEvent to any observers.
clearTimeout(this._timer);
var step = this._percent / 100;
if( gotoEnd ) {
@@ -155,15 +180,18 @@
},
status: function() {
+ // summary: Return the status of the animation.
+ // description: Returns one of "playing", "paused" or "stopped".
if( this._active ) {
- return this._paused ? "paused" : "playing";
+ return this._paused ? "paused" : "playing"; /* String */
} else {
- return "stopped";
+ return "stopped"; /* String */
}
},
// "private" methods
_cycle: function() {
+ // summary: Perform once 'cycle' or step of the animation.
clearTimeout(this._timer);
if( this._active ) {
var curr = new Date().valueOf();
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationEvent.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationEvent.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationEvent.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationEvent.js Fri Nov 10 01:15:01 2006
@@ -9,28 +9,52 @@
*/
dojo.provide("dojo.animation.AnimationEvent");
+dojo.require("dojo.lang.common");
-dojo.require("dojo.lang");
+dojo.deprecated("dojo.animation.AnimationEvent is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
-dojo.animation.AnimationEvent = function(anim, type, coords, sTime, cTime, eTime, dur, pct, fps) {
+dojo.animation.AnimationEvent = function(
+ /*dojo.animation.Animation*/ animation,
+ /*String*/type,
+ /*int[] */ coords,
+ /*int*/ startTime,
+ /*int*/ currentTime,
+ /*int*/ endTime,
+ /*int*/ duration,
+ /*int*/ percent,
+ /*int?*/ fps) {
+ // summary: Event sent at various points during an Animation.
+ // animation: Animation throwing the event.
+ // type: One of: "animate", "begin", "end", "play", "pause" or "stop".
+ // coords: Current coordinates of the animation.
+ // startTime: Time the animation was started, as milliseconds.
+ // currentTime: Time the event was thrown, as milliseconds.
+ // endTime: Time the animation is expected to complete, as milliseconds.
+ // duration: Duration of the animation, in milliseconds.
+ // percent: Percent of the animation that has completed, between 0 and 100.
+ // fps: Frames currently shown per second. (Only sent for "animate" event).
+ // description: The AnimationEvent has public properties of the same name as
+ // all constructor arguments, plus "x", "y" and "z".
+
this.type = type; // "animate", "begin", "end", "play", "pause", "stop"
- this.animation = anim;
+ this.animation = animation;
this.coords = coords;
this.x = coords[0];
this.y = coords[1];
this.z = coords[2];
- this.startTime = sTime;
- this.currentTime = cTime;
- this.endTime = eTime;
+ this.startTime = startTime;
+ this.currentTime = currentTime;
+ this.endTime = endTime;
- this.duration = dur;
- this.percent = pct;
+ this.duration = duration;
+ this.percent = percent;
this.fps = fps;
};
-dojo.lang.extend(dojo.animation.AnimationEvent, {
+dojo.extend(dojo.animation.AnimationEvent, {
coordsAsInts: function() {
+ // summary: Coerce the coordinates into integers.
var cints = new Array(this.coords.length);
for(var i = 0; i < this.coords.length; i++) {
cints[i] = Math.round(this.coords[i]);
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationSequence.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationSequence.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationSequence.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/AnimationSequence.js Fri Nov 10 01:15:01 2006
@@ -12,13 +12,19 @@
dojo.require("dojo.animation.AnimationEvent");
dojo.require("dojo.animation.Animation");
-dojo.animation.AnimationSequence = function(repeatCount){
+dojo.deprecated("dojo.animation.AnimationSequence is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
+
+dojo.animation.AnimationSequence = function(/*int?*/ repeatCount){
+ // summary: Sequence of Animations, played one after the other.
+ // repeatCount: Number of times to repeat the entire sequence. Default is 0 (play once only).
+ // description: Calls the following events: "onBegin", "onEnd", "onNext"
+ // If the animation implements a "handler" function, that will be called before each event is called.
this._anims = [];
this.repeatCount = repeatCount || 0;
}
dojo.lang.extend(dojo.animation.AnimationSequence, {
- repeateCount: 0,
+ repeatCount: 0,
_anims: [],
_currAnim: -1,
@@ -29,13 +35,17 @@
handler: null,
add: function() {
+ // summary: Add one or more Animations to the sequence.
+ // description: args: Animations (dojo.animation.Animation) to add to the sequence.
for(var i = 0; i < arguments.length; i++) {
this._anims.push(arguments[i]);
arguments[i]._animSequence = this;
}
},
- remove: function(anim) {
+ remove: function(/*dojo.animation.Animation*/ anim) {
+ // summary: Remove one particular animation from the sequence.
+ // amim: Animation to remove.
for(var i = 0; i < this._anims.length; i++) {
if( this._anims[i] == anim ) {
this._anims[i]._animSequence = null;
@@ -46,6 +56,7 @@
},
removeAll: function() {
+ // summary: Remove all animations from the sequence.
for(var i = 0; i < this._anims.length; i++) {
this._anims[i]._animSequence = null;
}
@@ -54,10 +65,15 @@
},
clear: function() {
+ // summary: Remove all animations from the sequence.
this.removeAll();
},
- play: function(gotoStart) {
+ play: function(/*Boolean?*/ gotoStart) {
+ // summary: Play the animation sequence.
+ // gotoStart: If true, will start at the beginning of the first sequence.
+ // Otherwise, starts at the current play counter of the current animation.
+ // description: Sends an "onBegin" event to any observers.
if( this._anims.length == 0 ) { return; }
if( gotoStart || !this._anims[this._currAnim] ) {
this._currAnim = 0;
@@ -73,12 +89,14 @@
},
pause: function() {
+ // summary: temporarily stop the current animation. Resume later with sequence.play()
if( this._anims[this._currAnim] ) {
this._anims[this._currAnim].pause();
}
},
playPause: function() {
+ // summary: Toggle between play and paused states.
if( this._anims.length == 0 ) { return; }
if( this._currAnim == -1 ) { this._currAnim = 0; }
if( this._anims[this._currAnim] ) {
@@ -87,12 +105,15 @@
},
stop: function() {
+ // summary: Stop the current animation.
if( this._anims[this._currAnim] ) {
this._anims[this._currAnim].stop();
}
},
status: function() {
+ // summary: Return the status of the current animation.
+ // description: Returns one of "playing", "paused" or "stopped".
if( this._anims[this._currAnim] ) {
return this._anims[this._currAnim].status();
} else {
@@ -100,7 +121,9 @@
}
},
- _setCurrent: function(anim) {
+ _setCurrent: function(/*dojo.animation.Animation*/ anim) {
+ // summary: Set the current animation.
+ // anim: Animation to make current, must have already been added to the sequence.
for(var i = 0; i < this._anims.length; i++) {
if( this._anims[i] == anim ) {
this._currAnim = i;
@@ -110,6 +133,9 @@
},
_playNext: function() {
+ // summary: Play the next animation in the sequence.
+ // description: Sends an "onNext" event to any observers.
+ // Also sends "onEnd" if the last animation is finished.
if( this._currAnim == -1 || this._anims.length == 0 ) { return; }
this._currAnim++;
if( this._anims[this._currAnim] ) {
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Timer.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Timer.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Timer.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/Timer.js Fri Nov 10 01:15:01 2006
@@ -9,31 +9,8 @@
*/
dojo.provide("dojo.animation.Timer");
-dojo.require("dojo.lang.func");
+dojo.require("dojo.lang.timing.Timer");
-dojo.animation.Timer = function(intvl){
- var timer = null;
- this.isRunning = false;
- this.interval = intvl;
+dojo.deprecated("dojo.animation.Timer is now dojo.lang.timing.Timer", "0.5");
- this.onTick = function(){};
- this.onStart = null;
- this.onStop = null;
-
- this.setInterval = function(ms){
- if (this.isRunning) window.clearInterval(timer);
- this.interval = ms;
- if (this.isRunning) timer = window.setInterval(dojo.lang.hitch(this, "onTick"), this.interval);
- };
-
- this.start = function(){
- if (typeof this.onStart == "function") this.onStart();
- this.isRunning = true;
- timer = window.setInterval(this.onTick, this.interval);
- };
- this.stop = function(){
- if (typeof this.onStop == "function") this.onStop();
- this.isRunning = false;
- window.clearInterval(timer);
- };
-};
+dojo.animation.Timer = dojo.lang.timing.Timer;
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/__package__.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/__package__.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/__package__.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/animation/__package__.js Fri Nov 10 01:15:01 2006
@@ -16,3 +16,5 @@
]
});
dojo.provide("dojo.animation.*");
+
+dojo.deprecated("dojo.Animation.* is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap1.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap1.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap1.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap1.js Fri Nov 10 01:15:01 2006
@@ -8,7 +8,7 @@
* TODOC: should the copyright be changed to Dojo Foundation?
* @license Licensed under the Academic Free License 2.1 http://www.opensource.org/licenses/afl-2.1.php
*
-* $Id: bootstrap1.js 4342 2006-06-11 23:03:30Z alex $
+* $Id: bootstrap1.js 6258 2006-10-20 03:12:36Z jburke $
*/
// TODOC: HOW TO DOC THE BELOW?
@@ -24,6 +24,8 @@
// - libraryScriptUri: ""
// - iePreventClobber: false
// - ieClobberMinimal: true
+// - locale: undefined
+// - extraLocale: undefined
// - preventBackButtonFix: true
// - searchIds: []
// - parseWidgets: true
@@ -38,7 +40,6 @@
//
-
//TODOC: HOW TO DOC THIS?
// @global: dj_global
// summary:
@@ -49,34 +50,58 @@
// code runs correctly in contexts other than web browsers (eg: Rhino on a server).
var dj_global = this;
+//TODOC: HOW TO DOC THIS?
+// @global: dj_currentContext
+// summary:
+// Private global context object. Where 'dj_global' always refers to the boot-time
+// global context, 'dj_currentContext' can be modified for temporary context shifting.
+// dojo.global() returns dj_currentContext.
+// description:
+// Refer to dojo.global() rather than referring to dj_global to ensure your
+// code runs correctly in managed contexts.
+var dj_currentContext = this;
+
+// ****************************************************************
+// global public utils
+// TODOC: DO WE WANT TO NOTE THAT THESE ARE GLOBAL PUBLIC UTILS?
+// ****************************************************************
function dj_undef(/*String*/ name, /*Object?*/ object){
//summary: Returns true if 'name' is defined on 'object' (or globally if 'object' is null).
//description: Note that 'defined' and 'exists' are not the same concept.
- if(object==null){ object = dj_global; }
- // exception if object is not an Object
- return (typeof object[name] == "undefined"); // Boolean
+ return (typeof (object || dj_currentContext)[name] == "undefined"); // Boolean
}
-
// make sure djConfig is defined
-if(dj_undef("djConfig")){
+if(dj_undef("djConfig", this)){
var djConfig = {};
}
-
//TODOC: HOW TO DOC THIS?
// dojo is the root variable of (almost all) our public symbols -- make sure it is defined.
-if(dj_undef("dojo")){
+if(dj_undef("dojo", this)){
var dojo = {};
}
+dojo.global = function(){
+ // summary:
+ // return the current global context object
+ // (e.g., the window object in a browser).
+ // description:
+ // Refer to 'dojo.global()' rather than referring to window to ensure your
+ // code runs correctly in contexts other than web browsers (eg: Rhino on a server).
+ return dj_currentContext;
+}
+
+// Override locale setting, if specified
+dojo.locale = djConfig.locale;
+
//TODOC: HOW TO DOC THIS?
dojo.version = {
// summary: version number of this instance of dojo.
- major: 0, minor: 3, patch: 1, flag: "",
- revision: Number("$Rev: 4342 $".match(/[0-9]+/)[0]),
+ major: 0, minor: 3, patch: 1, flag: "+",
+ revision: Number("$Rev: 6258 $".match(/[0-9]+/)[0]),
toString: function(){
with(dojo.version){
return major + "." + minor + "." + patch + flag + " (" + revision + ")"; // String
@@ -89,19 +114,20 @@
// description:
// Returns null if 'object[name]' is not defined and 'create' is not true.
// Note: 'defined' and 'exists' are not the same concept.
- return (object && !dj_undef(name, object) ? object[name] : (create ? (object[name]={}) : undefined)); // mixed
+ if((!object)||(!name)) return undefined; // undefined
+ if(!dj_undef(name, object)) return object[name]; // mixed
+ return (create ? (object[name]={}) : undefined); // mixed
}
-
dojo.parseObjPath = function(/*String*/ path, /*Object?*/ context, /*Boolean?*/ create){
// summary: Parse string path to an object, and return corresponding object reference and property name.
// description:
// Returns an object with two properties, 'obj' and 'prop'.
// 'obj[prop]' is the reference indicated by 'path'.
// path: Path to an object, in the form "A.B.C".
- // context: Object to use as root of path. Defaults to 'dj_global'.
+ // context: Object to use as root of path. Defaults to 'dojo.global()'.
// create: If true, Objects will be created at any point along the 'path' that is undefined.
- var object = (context != null ? context : dj_global);
+ var object = (context || dojo.global());
var names = path.split('.');
var prop = names.pop();
for (var i=0,l=names.length;i<l && object;i++){
@@ -110,32 +136,26 @@
return {obj: object, prop: prop}; // Object: {obj: Object, prop: String}
}
-
dojo.evalObjPath = function(/*String*/ path, /*Boolean?*/ create){
// summary: Return the value of object at 'path' in the global scope, without using 'eval()'.
// path: Path to an object, in the form "A.B.C".
// create: If true, Objects will be created at any point along the 'path' that is undefined.
if(typeof path != "string"){
- return dj_global;
+ return dojo.global();
}
// fast path for no periods
if(path.indexOf('.') == -1){
- return dojo.evalProp(path, dj_global, create); // mixed
+ return dojo.evalProp(path, dojo.global(), create); // mixed
}
//MOW: old 'with' syntax was confusing and would throw an error if parseObjPath returned null.
- var ref = dojo.parseObjPath(path, dj_global, create);
+ var ref = dojo.parseObjPath(path, dojo.global(), create);
if(ref){
return dojo.evalProp(ref.prop, ref.obj, create); // mixed
}
return null;
}
-// ****************************************************************
-// global public utils
-// TODOC: DO WE WANT TO NOTE THAT THESE ARE GLOBAL PUBLIC UTILS?
-// ****************************************************************
-
dojo.errorToString = function(/*Error*/ exception){
// summary: Return an exception's 'message', 'description' or text.
@@ -150,27 +170,27 @@
}
}
-
dojo.raise = function(/*String*/ message, /*Error?*/ exception){
- // summary: Throw an error message, appending text of 'exception' if provided.
- // note: Also prints a message to the user using 'dojo.hostenv.println'.
+ // summary: Common point for raising exceptions in Dojo to enable logging.
+ // Throws an error message with text of 'exception' if provided, or
+ // rethrows exception object.
+
if(exception){
message = message + ": "+dojo.errorToString(exception);
}
// print the message to the user if hostenv.println is defined
- try { dojo.hostenv.println("FATAL: "+message); } catch (e) {}
+ try { if(djConfig.isDebug){ dojo.hostenv.println("FATAL exception raised: "+message); } } catch (e) {}
- throw Error(message);
+ throw exception || Error(message);
}
//Stub functions so things don't break.
//TODOC: HOW TO DOC THESE?
-dojo.debug = function(){}
-dojo.debugShallow = function(obj){}
+dojo.debug = function(){};
+dojo.debugShallow = function(obj){};
dojo.profile = { start: function(){}, end: function(){}, stop: function(){}, dump: function(){} };
-
function dj_eval(/*String*/ scriptFragment){
// summary: Perform an evaluation in the global scope. Use this rather than calling 'eval()' directly.
// description: Placed in a separate function to minimize size of trapped evaluation context.
@@ -181,8 +201,6 @@
return dj_global.eval ? dj_global.eval(scriptFragment) : eval(scriptFragment); // mixed
}
-
-
dojo.unimplemented = function(/*String*/ funcname, /*String?*/ extra){
// summary: Throw an exception because some function is not implemented.
// extra: Text to append to the exception message.
@@ -191,7 +209,6 @@
dojo.raise(message);
}
-
dojo.deprecated = function(/*String*/ behaviour, /*String?*/ extra, /*String?*/ removal){
// summary: Log a debug message to indicate that a behavior has been deprecated.
// extra: Text to append to the message.
@@ -202,20 +219,6 @@
dojo.debug(message);
}
-
-
-dojo.inherits = function(/*Function*/ subclass, /*Function*/ superclass){
- // summary: Set up inheritance between two classes.
- if(typeof superclass != 'function'){
- dojo.raise("dojo.inherits: superclass argument ["+superclass+"] must be a function (subclass: [" + subclass + "']");
- }
- subclass.prototype = new superclass();
- subclass.prototype.constructor = subclass;
- subclass.superclass = superclass.prototype;
- // DEPRICATED: super is a reserved word, use 'superclass'
- subclass['super'] = superclass.prototype;
-}
-
dojo.render = (function(){
//TODOC: HOW TO DOC THIS?
// summary: Details rendering support, OS and browser of the current environment.
@@ -229,8 +232,8 @@
},
prefixes: prefs
};
- for(var prop in names){
- tmp[prop] = false;
+ for(var i=0; i<names.length; i++){
+ tmp[names[i]] = false;
}
return tmp;
}
@@ -276,6 +279,7 @@
iePreventClobber: false,
ieClobberMinimal: true,
preventBackButtonFix: true,
+ delayMozLoadingFix: false,
searchIds: [],
parseWidgets: true
};
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap2.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap2.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap2.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/bootstrap2.js Fri Nov 10 01:15:01 2006
@@ -37,13 +37,6 @@
tmps.push("browser_debug.js");
}
- //Support compatibility packages. Right now this only allows setting one
- //compatibility package. Might need to revisit later down the line to support
- //more than one.
- if((this["djConfig"])&&(djConfig["compat"])){
- tmps.push("compat/" + djConfig["compat"] + ".js");
- }
-
var loaderRoot = djConfig["baseScriptUri"];
if((this["djConfig"])&&(djConfig["baseLoaderUri"])){
loaderRoot = djConfig["baseLoaderUri"];
@@ -64,111 +57,3 @@
}
}
})();
-
-// Localization routines
-
-/**
- * The locale to look for string bundles if none are defined for your locale. Translations for all strings
- * should be provided in this locale.
- */
-//TODO: this really belongs in translation metadata, not in code
-dojo.fallback_locale = 'en';
-
-/**
- * Returns canonical form of locale, as used by Dojo. All variants are case-insensitive and are separated by '-'
- * as specified in RFC 3066
- */
-dojo.normalizeLocale = function(locale) {
- return locale ? locale.toLowerCase() : dojo.locale;
-};
-
-/**
- * requireLocalization() is for loading translated bundles provided within a package in the namespace.
- * Contents are typically strings, but may be any name/value pair, represented in JSON format.
- * A bundle is structured in a program as follows:
- *
- * <package>/
- * nls/
- * de/
- * mybundle.js
- * de-at/
- * mybundle.js
- * en/
- * mybundle.js
- * en-us/
- * mybundle.js
- * en-gb/
- * mybundle.js
- * es/
- * mybundle.js
- * ...etc
- *
- * where package is part of the namespace as used by dojo.require(). Each directory is named for a
- * locale as specified by RFC 3066, (http://www.ietf.org/rfc/rfc3066.txt), normalized in lowercase.
- *
- * For a given locale, string bundles will be loaded for that locale and all general locales above it, as well
- * as a system-specified fallback. For example, "de_at" will also load "de" and "en". Lookups will traverse
- * the locales in this order. A build step can preload the bundles to avoid data redundancy and extra network hits.
- *
- * @param modulename package in which the bundle is found
- * @param bundlename bundle name, typically the filename without the '.js' suffix
- * @param locale the locale to load (optional) By default, the browser's user locale as defined
- * in dojo.locale
- */
-dojo.requireLocalization = function(modulename, bundlename, locale /*optional*/){
-
- dojo.debug("EXPERIMENTAL: dojo.requireLocalization"); //dojo.experimental
-
- var syms = dojo.hostenv.getModuleSymbols(modulename);
- var modpath = syms.concat("nls").join("/");
-
- locale = dojo.normalizeLocale(locale);
-
- var elements = locale.split('-');
- var searchlist = [];
- for(var i = elements.length; i > 0; i--){
- searchlist.push(elements.slice(0, i).join('-'));
- }
- if(searchlist[searchlist.length-1] != dojo.fallback_locale){
- searchlist.push(dojo.fallback_locale);
- }
-
- var bundlepackage = [modulename, "_nls", bundlename].join(".");
- var bundle = dojo.hostenv.startPackage(bundlepackage);
- dojo.hostenv.loaded_modules_[bundlepackage] = bundle;
-
- var inherit = false;
- for(var i = searchlist.length - 1; i >= 0; i--){
- var loc = searchlist[i];
- var pkg = [bundlepackage, loc].join(".");
- var loaded = false;
- if(!dojo.hostenv.findModule(pkg)){
- // Mark loaded whether it's found or not, so that further load attempts will not be made
- dojo.hostenv.loaded_modules_[pkg] = null;
-
- var filespec = [modpath, loc, bundlename].join("/") + '.js';
- loaded = dojo.hostenv.loadPath(filespec, null, function(hash) {
- bundle[loc] = hash;
- if(inherit){
- // Use mixins approach to copy string references from inherit bundle, but skip overrides.
- for(var x in inherit){
- if(!bundle[loc][x]){
- bundle[loc][x] = inherit[x];
- }
- }
- }
-/*
- // Use prototype to point to other bundle, then copy in result from loadPath
- bundle[loc] = new function(){};
- if(inherit){ bundle[loc].prototype = inherit; }
- for(var i in hash){ bundle[loc][i] = hash[i]; }
-*/
- });
- }else{
- loaded = true;
- }
- if(loaded && bundle[loc]){
- inherit = bundle[loc];
- }
- }
-};
Modified: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/browser_debug.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/browser_debug.js?view=diff&rev=473277&r1=473276&r2=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/browser_debug.js (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/browser_debug.js Fri Nov 10 01:15:01 2006
@@ -12,10 +12,12 @@
dojo.hostenv.loadedUris.push("../src/loader.js");
dojo.hostenv.loadedUris.push("../src/hostenv_browser.js");
dojo.hostenv.loadedUris.push("../src/bootstrap2.js");
+dojo.hostenv._loadedUrisListStart = dojo.hostenv.loadedUris.length;
function removeComments(contents){
contents = new String((!contents) ? "" : contents);
// clobber all comments
+ // FIXME broken if // or /* inside quotes or regexp
contents = contents.replace( /^(.*?)\/\/(.*)$/mg , "$1");
contents = contents.replace( /(\n)/mg , "__DOJONEWLINE");
contents = contents.replace( /\/\*(.*?)\*\//g , "");
@@ -31,7 +33,7 @@
var deps = [];
var tmp;
RegExp.lastIndex = 0;
- var testExp = /dojo.(hostenv.loadModule|hosetnv.require|require|requireIf|kwCompoundRequire|hostenv.conditionalLoadModule|hostenv.startPackage|provide)\([\w\W]*?\)/mg;
+ 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]);
}
@@ -116,30 +118,39 @@
var old_dj_eval = dj_eval;
dj_eval = function(){ return true; }
dojo.hostenv.oldLoadUri = dojo.hostenv.loadUri;
-dojo.hostenv.loadUri = function(uri){
+dojo.hostenv.loadUri = function(uri, cb /*optional*/){
if(dojo.hostenv.loadedUris[uri]){
return true; // fixes endless recursion opera trac 471
}
try{
var text = this.getText(uri, null, true);
- 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(";"));
+ if(!text) { return false; }
+ if(cb){
+ // No way to load i18n bundles but to eval them, and they usually
+ // don't have script needing to be debugged anyway
+ 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.writeIncludes = function(){
+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 = {};
+ var seen = dojo.hostenv._writtenIncludes;
for(var x=0; x<dojo.hostenv.loadedUris.length; x++){
var curi = dojo.hostenv.loadedUris[x];
// dojo.debug(curi);
@@ -150,13 +161,16 @@
}
dojo.hostenv._global_omit_module_check = true;
- for(var x=4; x<depList.length; x++){
+
+ 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>");
-
- // turn off debugAtAllCosts, so that dojo.require() calls inside of ContentPane hrefs
- // work correctly
- dj_eval = old_dj_eval;
- dojo.hostenv.loadUri = dojo.hostenv.oldLoadUri;
+ dojo.hostenv._loadedUrisListStart = 0;
+ if (!willCallAgain) {
+ // turn off debugAtAllCosts, so that dojo.require() calls inside of ContentPane hrefs
+ // work correctly
+ dj_eval = old_dj_eval;
+ dojo.hostenv.loadUri = dojo.hostenv.oldLoadUri;
+ }
}
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js Fri Nov 10 01:15:01 2006
@@ -0,0 +1,815 @@
+/*
+ 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 (/* string */text) {
+ // summary
+ // Parse text of an iCalendar and return an array of iCalendar objects
+
+ var properties = dojo.cal.textDirectory.tokenise(text);
+ var calendars = [];
+
+ //dojo.debug("Parsing iCal String");
+ 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 /* array */calendars;
+}
+
+
+dojo.cal.iCalendar.Component = function (/* string */ body ) {
+ // summary
+ // A component is the basic container of all this stuff.
+
+ 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) {
+ // summary
+ // push a new property onto a component.
+ this.properties.push(prop);
+ this[prop.name.toLowerCase()] = prop;
+ },
+
+ addComponent: function (prop) {
+ // summary
+ // add a component to this components list of children.
+ 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);
+ }
+ }
+
+ // parse any rrules
+ if (dojo.lang.isArray(this.rrule)) {
+ for(var x=0; x<this.rrule.length; x++) {
+ var rule = this.rrule[x].value;
+
+ //add a place to cache dates we have checked for recurrance
+ 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 () {
+ // summary
+ // output a string representation of this component.
+ return "[iCalendar.Component; " + this.name + ", " + this.properties.length +
+ " properties, " + this.components.length + " components]";
+ }
+});
+
+dojo.cal.iCalendar.Property = function (prop) {
+ // summary
+ // A single property of a component.
+
+ // unpack the values
+ this.name = prop.name;
+ this.group = prop.group;
+ this.params = prop.params;
+ this.value = prop.value;
+
+}
+
+dojo.extend(dojo.cal.iCalendar.Property, {
+ toString: function () {
+ // summary
+ // output a string reprensentation of this component.
+ return "[iCalenday.Property; " + this.name + ": " + this.value + "]";
+ }
+});
+
+// This is just a little helper function for the Component Properties
+var _P = function (n, oc, req) {
+ return {name: n, required: (req) ? true : false,
+ occurance: (oc == '*' || !oc) ? -1 : oc}
+}
+
+/*
+ * VCALENDAR
+ */
+
+dojo.cal.iCalendar.VCalendar = function (/* string */ calbody) {
+ // summary
+ // VCALENDAR Component
+
+ 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) {
+ // summary
+ // add component to the calenadar that makes it easy to pull them out again later.
+ 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 */ date) {
+ // summary
+ // Gets all events occuring on a particular 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;
+ }
+});
+
+/*
+ * STANDARD
+ */
+
+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 (/* string */ body) {
+ // summary
+ // STANDARD Component
+
+ this.name = "STANDARD";
+ this._ValidProperties = StandardProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.Standard, dojo.cal.iCalendar.Component);
+
+/*
+ * DAYLIGHT
+ */
+
+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 (/* string */ body) {
+ // summary
+ // Daylight Component
+ this.name = "DAYLIGHT";
+ this._ValidProperties = DaylightProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.Daylight, dojo.cal.iCalendar.Component);
+
+/*
+ * VEVENT
+ */
+
+var VEventProperties = [
+ // these can occur once only
+ _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),
+ // these two are exclusive
+ [_P("dtend", 1), _P("duration", 1)],
+ // these can occur many times over
+ _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 (/* string */ body) {
+ // summary
+ // VEVENT Component
+ 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};
+
+ // expand rrules into the recurrance
+ 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;
+ }
+ }
+ }
+
+
+ // while the spec doesn't prohibit it, it makes no sense to have a bymonth and a byweekno at the same time
+ // and if i'm wrong then i don't know how to apply that rule. This is also documented elsewhere on the web
+ if (rrule["byweekno"] && !rrule["bymonth"]) {
+ dojo.debug("TODO: no support for byweekno yet");
+ }
+
+
+ // while the spec doesn't prohibit it, it makes no sense to have a bymonth and a byweekno at the same time
+ // and if i'm wrong then i don't know how to apply that rule. This is also documented elsewhere on the web
+ 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] == "-") {
+ //find the nth to last occurance of date
+ 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 {
+ //we're gonna expand here to add a date for each of the specified days for each month
+ 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");
+
+ //add this set of events to the complete recurranceSet
+ var tmp = recurranceSet.concat(set);
+ recurranceSet = tmp;
+ }
+ }
+
+ // TODO: add rdates to the recurrance set here
+
+ // TODO: subtract exdates from the recurrance set here
+
+ //TODO: subtract dates generated by exrules from recurranceSet here
+
+ recurranceSet.push(dtstart);
+ return recurranceSet;
+ },
+
+ getDate: function() {
+ return dojo.date.fromIso8601(this.dtstart.value);
+ }
+});
+
+/*
+ * VTIMEZONE
+ */
+
+var VTimeZoneProperties = [
+ _P("tzid", 1, true), _P("last-mod", 1), _P("tzurl", 1)
+
+ // one of 'standardc' or 'daylightc' must occur
+ // and each may occur more than once.
+];
+
+dojo.cal.iCalendar.VTimeZone = function (/* string */ body) {
+ // summary
+ // VTIMEZONE Component
+ this.name = "VTIMEZONE";
+ this._ValidProperties = VTimeZoneProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.VTimeZone, dojo.cal.iCalendar.Component);
+
+/*
+ * VTODO
+ */
+
+var VTodoProperties = [
+ // these can occur once only
+ _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),
+ // these two are exclusive
+ [_P("due", 1), _P("duration", 1)],
+ // these can occur many times over
+ _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 (/* string */ body) {
+ // summary
+ // VTODO Componenet
+ this.name = "VTODO";
+ this._ValidProperties = VTodoProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.VTodo, dojo.cal.iCalendar.Component);
+
+/*
+ * VJOURNAL
+ */
+
+var VJournalProperties = [
+ // these can occur once only
+ _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),
+ // these can occur many times over
+ _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 (/* string */ body) {
+ // summary
+ // VJOURNAL Component
+ this.name = "VJOURNAL";
+ this._ValidProperties = VJournalProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.VJournal, dojo.cal.iCalendar.Component);
+
+/*
+ * VFREEBUSY
+ */
+
+var VFreeBusyProperties = [
+ // these can occur once only
+ _P("contact"), _P("dtstart", 1), _P("dtend"), _P("duration"),
+ _P("organizer", 1), _P("dtstamp", 1), _P("uid", 1), _P("url", 1),
+ // these can occur many times over
+ _P("attendee"), _P("comment"), _P("freebusy"), _P("rstatus")
+];
+
+dojo.cal.iCalendar.VFreeBusy= function (/* string */ body) {
+ // summary
+ // VFREEBUSY Component
+ this.name = "VFREEBUSY";
+ this._ValidProperties = VFreeBusyProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.VFreeBusy, dojo.cal.iCalendar.Component);
+
+/*
+ * VALARM
+ */
+
+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 (/* string */ body) {
+ // summary
+ // VALARM Component
+ this.name = "VALARM";
+ this._ValidProperties = VAlarmProperties;
+ dojo.cal.iCalendar.Component.call(this, body);
+}
+
+dojo.inherits(dojo.cal.iCalendar.VAlarm, dojo.cal.iCalendar.Component);
+
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/iCalendar.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js Fri Nov 10 01:15:01 2006
@@ -0,0 +1,75 @@
+/*
+ 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");
+
+/*
+ * This class parses a single line from a text/directory file
+ * and returns an object with four named values; name, group, params
+ * and value. name, group and value are strings containing the original
+ * tokens unaltered and values is an array containing name/value pairs
+ * or a single name token packed into arrays.
+ */
+dojo.cal.textDirectory.Property = function (line) {
+ // split into name/value pair
+ var left = dojo.string.trim(line.substring(0, line.indexOf(':')));
+ var right = dojo.string.trim(line.substr(line.indexOf(':') + 1));
+
+ // seperate name and paramters
+ var parameters = dojo.string.splitEscaped(left,';');
+ this.name = parameters[0]
+ parameters.splice(0, 1);
+
+ // parse paramters
+ this.params = [];
+ for (var i = 0; i < parameters.length; i++) {
+ var 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])]);
+ }
+ }
+ }
+
+ // seperate group
+ if (this.name.indexOf('.') > 0) {
+ var arr = this.name.split('.');
+ this.group = arr[0];
+ this.name = arr[1];
+ }
+
+ // don't do any parsing, leave to implementation
+ this.value = right;
+}
+
+
+// tokeniser, parses into an array of properties.
+dojo.cal.textDirectory.tokenise = function (text) {
+ // normlize to one propterty per line and parse
+ var nText = dojo.string.normalizeNewlines(text,"\n");
+ nText = nText.replace(/\n[ \t]/g, '');
+ nText = nText.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: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/cal/textDirectory.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js?view=auto&rev=473277
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js Fri Nov 10 01:15:01 2006
@@ -0,0 +1,146 @@
+/*
+ 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(/* string? */label, /* string? */scale, /* array? */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"; // linear || log
+ this.label = label || "";
+ this.showLabel = true; // show axis label.
+ this.showLabels = true; // show interval ticks.
+ this.showLines = false; // if you want lines over the range of the plot area
+ this.showTicks = false; // if you want tick marks on the axis.
+ this.range = { upper : 0, lower : 0 }; // range of individual axis.
+ this.origin = "min"; // this can be any number, "min" or "max". min/max is translated on init.
+
+ this.labels = labels || [];
+ this._labels = []; // what we really use to draw things.
+ this.nodes={ main: null, axis: null, label: null, labels: null, lines: null, ticks: null };
+};
+dojo.charting.Axis.count = 0;
+
+dojo.extend(dojo.charting.Axis, {
+ // TODO: implement log scaling.
+ getCoord: function(
+ /* float */val,
+ /* dojo.charting.PlotArea */plotArea,
+ /* dojo.charting.Plot */plot
+ ){
+ // summary
+ // returns the coordinate of val based on this axis range, plot area and 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; // FIXME: check this.
+ var max = this.range.upper + offset;
+ val += offset;
+ return (val*((area.right-area.left)/max))+area.left; // float
+ } 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){
+ // figure out the origin value.
+ 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(){
+ // Translate the labels if needed.
+ 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 {
+ // clone me
+ var a = [];
+ for(var i=0; i<this.labels.length; i++){
+ a.push(this.labels[i]);
+ }
+
+ // do the bottom one.
+ var s=a.shift();
+ this._labels.push({ label: s, value: this.range.lower });
+
+ // do the top one.
+ if(a.length>0){
+ var s=a.pop();
+ this._labels.push({ label: s, value: this.range.upper });
+ }
+ // do the rest.
+ 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){
+ // summary
+ // Initialize the passed axis descriptor. Note that this should always
+ // be the result of plotArea.getAxes, and not the axis directly!
+ 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.svg.capable && dojo.render.vml.capable, "dojo.charting.vml.Axis");
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js
------------------------------------------------------------------------------
svn:keywords = "Id Author LastChangedDate LastChangedBy LastChangedRevision"
Propchange: myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/custom/dojo/resource/src/charting/Axis.js
------------------------------------------------------------------------------
svn:mime-type = text/plain