You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2009/03/19 11:37:20 UTC

svn commit: r755904 [23/40] - in /camel/trunk/components/camel-web/src/main/webapp/js/dojox: ./ analytics/ analytics/logger/ analytics/plugins/ analytics/profiles/ atom/ atom/io/ atom/widget/ atom/widget/nls/ atom/widget/nls/cs/ atom/widget/nls/de/ ato...

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx.js.uncompressed.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx.js.uncompressed.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx.js.uncompressed.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx.js.uncompressed.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,853 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+/*
+	This is a compiled version of Dojo, built for deployment and not for
+	development. To get an editable version, please visit:
+
+		http://dojotoolkit.org
+
+	for documentation and information on getting the source.
+*/
+
+if(!dojo._hasResource["dojox.gfx.matrix"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.gfx.matrix"] = true;
+dojo.provide("dojox.gfx.matrix");
+
+(function(){
+	var m = dojox.gfx.matrix;
+
+	// candidates for dojox.math:
+	m._degToRad = function(degree){ return Math.PI * degree / 180; };
+	m._radToDeg = function(radian){ return radian / Math.PI * 180; };
+
+	m.Matrix2D = function(arg){
+		// summary: a 2D matrix object
+		// description: Normalizes a 2D matrix-like object. If arrays is passed,
+		//		all objects of the array are normalized and multiplied sequentially.
+		// arg: Object
+		//		a 2D matrix-like object, a number, or an array of such objects
+		if(arg){
+			if(typeof arg == "number"){
+				this.xx = this.yy = arg;
+			}else if(arg instanceof Array){
+				if(arg.length > 0){
+					var matrix = m.normalize(arg[0]);
+					// combine matrices
+					for(var i = 1; i < arg.length; ++i){
+						var l = matrix, r = dojox.gfx.matrix.normalize(arg[i]);
+						matrix = new m.Matrix2D();
+						matrix.xx = l.xx * r.xx + l.xy * r.yx;
+						matrix.xy = l.xx * r.xy + l.xy * r.yy;
+						matrix.yx = l.yx * r.xx + l.yy * r.yx;
+						matrix.yy = l.yx * r.xy + l.yy * r.yy;
+						matrix.dx = l.xx * r.dx + l.xy * r.dy + l.dx;
+						matrix.dy = l.yx * r.dx + l.yy * r.dy + l.dy;
+					}
+					dojo.mixin(this, matrix);
+				}
+			}else{
+				dojo.mixin(this, arg);
+			}
+		}
+	};
+
+	// the default (identity) matrix, which is used to fill in missing values
+	dojo.extend(m.Matrix2D, {xx: 1, xy: 0, yx: 0, yy: 1, dx: 0, dy: 0});
+
+	dojo.mixin(m, {
+		// summary: class constants, and methods of dojox.gfx.matrix
+
+		// matrix constants
+
+		// identity: dojox.gfx.matrix.Matrix2D
+		//		an identity matrix constant: identity * (x, y) == (x, y)
+		identity: new m.Matrix2D(),
+
+		// flipX: dojox.gfx.matrix.Matrix2D
+		//		a matrix, which reflects points at x = 0 line: flipX * (x, y) == (-x, y)
+		flipX:    new m.Matrix2D({xx: -1}),
+
+		// flipY: dojox.gfx.matrix.Matrix2D
+		//		a matrix, which reflects points at y = 0 line: flipY * (x, y) == (x, -y)
+		flipY:    new m.Matrix2D({yy: -1}),
+
+		// flipXY: dojox.gfx.matrix.Matrix2D
+		//		a matrix, which reflects points at the origin of coordinates: flipXY * (x, y) == (-x, -y)
+		flipXY:   new m.Matrix2D({xx: -1, yy: -1}),
+
+		// matrix creators
+
+		translate: function(a, b){
+			// summary: forms a translation matrix
+			// description: The resulting matrix is used to translate (move) points by specified offsets.
+			// a: Number: an x coordinate value
+			// b: Number: a y coordinate value
+			if(arguments.length > 1){
+				return new m.Matrix2D({dx: a, dy: b}); // dojox.gfx.matrix.Matrix2D
+			}
+			// branch
+			// a: dojox.gfx.Point: a point-like object, which specifies offsets for both dimensions
+			// b: null
+			return new m.Matrix2D({dx: a.x, dy: a.y}); // dojox.gfx.matrix.Matrix2D
+		},
+		scale: function(a, b){
+			// summary: forms a scaling matrix
+			// description: The resulting matrix is used to scale (magnify) points by specified offsets.
+			// a: Number: a scaling factor used for the x coordinate
+			// b: Number: a scaling factor used for the y coordinate
+			if(arguments.length > 1){
+				return new m.Matrix2D({xx: a, yy: b}); // dojox.gfx.matrix.Matrix2D
+			}
+			if(typeof a == "number"){
+				// branch
+				// a: Number: a uniform scaling factor used for the both coordinates
+				// b: null
+				return new m.Matrix2D({xx: a, yy: a}); // dojox.gfx.matrix.Matrix2D
+			}
+			// branch
+			// a: dojox.gfx.Point: a point-like object, which specifies scale factors for both dimensions
+			// b: null
+			return new m.Matrix2D({xx: a.x, yy: a.y}); // dojox.gfx.matrix.Matrix2D
+		},
+		rotate: function(angle){
+			// summary: forms a rotating matrix
+			// description: The resulting matrix is used to rotate points
+			//		around the origin of coordinates (0, 0) by specified angle.
+			// angle: Number: an angle of rotation in radians (>0 for CW)
+			var c = Math.cos(angle);
+			var s = Math.sin(angle);
+			return new m.Matrix2D({xx: c, xy: -s, yx: s, yy: c}); // dojox.gfx.matrix.Matrix2D
+		},
+		rotateg: function(degree){
+			// summary: forms a rotating matrix
+			// description: The resulting matrix is used to rotate points
+			//		around the origin of coordinates (0, 0) by specified degree.
+			//		See dojox.gfx.matrix.rotate() for comparison.
+			// degree: Number: an angle of rotation in degrees (>0 for CW)
+			return m.rotate(m._degToRad(degree)); // dojox.gfx.matrix.Matrix2D
+		},
+		skewX: function(angle) {
+			// summary: forms an x skewing matrix
+			// description: The resulting matrix is used to skew points in the x dimension
+			//		around the origin of coordinates (0, 0) by specified angle.
+			// angle: Number: an skewing angle in radians
+			return new m.Matrix2D({xy: Math.tan(angle)}); // dojox.gfx.matrix.Matrix2D
+		},
+		skewXg: function(degree){
+			// summary: forms an x skewing matrix
+			// description: The resulting matrix is used to skew points in the x dimension
+			//		around the origin of coordinates (0, 0) by specified degree.
+			//		See dojox.gfx.matrix.skewX() for comparison.
+			// degree: Number: an skewing angle in degrees
+			return m.skewX(m._degToRad(degree)); // dojox.gfx.matrix.Matrix2D
+		},
+		skewY: function(angle){
+			// summary: forms a y skewing matrix
+			// description: The resulting matrix is used to skew points in the y dimension
+			//		around the origin of coordinates (0, 0) by specified angle.
+			// angle: Number: an skewing angle in radians
+			return new m.Matrix2D({yx: Math.tan(angle)}); // dojox.gfx.matrix.Matrix2D
+		},
+		skewYg: function(degree){
+			// summary: forms a y skewing matrix
+			// description: The resulting matrix is used to skew points in the y dimension
+			//		around the origin of coordinates (0, 0) by specified degree.
+			//		See dojox.gfx.matrix.skewY() for comparison.
+			// degree: Number: an skewing angle in degrees
+			return m.skewY(m._degToRad(degree)); // dojox.gfx.matrix.Matrix2D
+		},
+		reflect: function(a, b){
+			// summary: forms a reflection matrix
+			// description: The resulting matrix is used to reflect points around a vector,
+			//		which goes through the origin.
+			// a: dojox.gfx.Point: a point-like object, which specifies a vector of reflection
+			// b: null
+			if(arguments.length == 1){
+				b = a.y;
+				a = a.x;
+			}
+			// branch
+			// a: Number: an x coordinate value
+			// b: Number: a y coordinate value
+
+			// make a unit vector
+			var a2 = a * a, b2 = b * b, n2 = a2 + b2, xy = 2 * a * b / n2;
+			return new m.Matrix2D({xx: 2 * a2 / n2 - 1, xy: xy, yx: xy, yy: 2 * b2 / n2 - 1}); // dojox.gfx.matrix.Matrix2D
+		},
+		project: function(a, b){
+			// summary: forms an orthogonal projection matrix
+			// description: The resulting matrix is used to project points orthogonally on a vector,
+			//		which goes through the origin.
+			// a: dojox.gfx.Point: a point-like object, which specifies a vector of projection
+			// b: null
+			if(arguments.length == 1){
+				b = a.y;
+				a = a.x;
+			}
+			// branch
+			// a: Number: an x coordinate value
+			// b: Number: a y coordinate value
+
+			// make a unit vector
+			var a2 = a * a, b2 = b * b, n2 = a2 + b2, xy = a * b / n2;
+			return new m.Matrix2D({xx: a2 / n2, xy: xy, yx: xy, yy: b2 / n2}); // dojox.gfx.matrix.Matrix2D
+		},
+
+		// ensure matrix 2D conformance
+		normalize: function(matrix){
+			// summary: converts an object to a matrix, if necessary
+			// description: Converts any 2D matrix-like object or an array of
+			//		such objects to a valid dojox.gfx.matrix.Matrix2D object.
+			// matrix: Object: an object, which is converted to a matrix, if necessary
+			return (matrix instanceof m.Matrix2D) ? matrix : new m.Matrix2D(matrix); // dojox.gfx.matrix.Matrix2D
+		},
+
+		// common operations
+
+		clone: function(matrix){
+			// summary: creates a copy of a 2D matrix
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix-like object to be cloned
+			var obj = new m.Matrix2D();
+			for(var i in matrix){
+				if(typeof(matrix[i]) == "number" && typeof(obj[i]) == "number" && obj[i] != matrix[i]) obj[i] = matrix[i];
+			}
+			return obj; // dojox.gfx.matrix.Matrix2D
+		},
+		invert: function(matrix){
+			// summary: inverts a 2D matrix
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix-like object to be inverted
+			var M = m.normalize(matrix),
+				D = M.xx * M.yy - M.xy * M.yx,
+				M = new m.Matrix2D({
+					xx: M.yy/D, xy: -M.xy/D,
+					yx: -M.yx/D, yy: M.xx/D,
+					dx: (M.xy * M.dy - M.yy * M.dx) / D,
+					dy: (M.yx * M.dx - M.xx * M.dy) / D
+				});
+			return M; // dojox.gfx.matrix.Matrix2D
+		},
+		_multiplyPoint: function(matrix, x, y){
+			// summary: applies a matrix to a point
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix object to be applied
+			// x: Number: an x coordinate of a point
+			// y: Number: a y coordinate of a point
+			return {x: matrix.xx * x + matrix.xy * y + matrix.dx, y: matrix.yx * x + matrix.yy * y + matrix.dy}; // dojox.gfx.Point
+		},
+		multiplyPoint: function(matrix, /* Number||Point */ a, /* Number, optional */ b){
+			// summary: applies a matrix to a point
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix object to be applied
+			// a: Number: an x coordinate of a point
+			// b: Number: a y coordinate of a point
+			var M = m.normalize(matrix);
+			if(typeof a == "number" && typeof b == "number"){
+				return m._multiplyPoint(M, a, b); // dojox.gfx.Point
+			}
+			// branch
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix object to be applied
+			// a: dojox.gfx.Point: a point
+			// b: null
+			return m._multiplyPoint(M, a.x, a.y); // dojox.gfx.Point
+		},
+		multiply: function(matrix){
+			// summary: combines matrices by multiplying them sequentially in the given order
+			// matrix: dojox.gfx.matrix.Matrix2D...: a 2D matrix-like object,
+			//		all subsequent arguments are matrix-like objects too
+			var M = m.normalize(matrix);
+			// combine matrices
+			for(var i = 1; i < arguments.length; ++i){
+				var l = M, r = m.normalize(arguments[i]);
+				M = new m.Matrix2D();
+				M.xx = l.xx * r.xx + l.xy * r.yx;
+				M.xy = l.xx * r.xy + l.xy * r.yy;
+				M.yx = l.yx * r.xx + l.yy * r.yx;
+				M.yy = l.yx * r.xy + l.yy * r.yy;
+				M.dx = l.xx * r.dx + l.xy * r.dy + l.dx;
+				M.dy = l.yx * r.dx + l.yy * r.dy + l.dy;
+			}
+			return M; // dojox.gfx.matrix.Matrix2D
+		},
+
+		// high level operations
+
+		_sandwich: function(matrix, x, y){
+			// summary: applies a matrix at a centrtal point
+			// matrix: dojox.gfx.matrix.Matrix2D: a 2D matrix-like object, which is applied at a central point
+			// x: Number: an x component of the central point
+			// y: Number: a y component of the central point
+			return m.multiply(m.translate(x, y), matrix, m.translate(-x, -y)); // dojox.gfx.matrix.Matrix2D
+		},
+		scaleAt: function(a, b, c, d){
+			// summary: scales a picture using a specified point as a center of scaling
+			// description: Compare with dojox.gfx.matrix.scale().
+			// a: Number: a scaling factor used for the x coordinate
+			// b: Number: a scaling factor used for the y coordinate
+			// c: Number: an x component of a central point
+			// d: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) uniform scale factor, Point
+			//	2) uniform scale factor, x, y
+			//	3) x scale, y scale, Point
+			//	4) x scale, y scale, x, y
+
+			switch(arguments.length){
+				case 4:
+					// a and b are scale factor components, c and d are components of a point
+					return m._sandwich(m.scale(a, b), c, d); // dojox.gfx.matrix.Matrix2D
+				case 3:
+					if(typeof c == "number"){
+						// branch
+						// a: Number: a uniform scaling factor used for both coordinates
+						// b: Number: an x component of a central point
+						// c: Number: a y component of a central point
+						// d: null
+						return m._sandwich(m.scale(a), b, c); // dojox.gfx.matrix.Matrix2D
+					}
+					// branch
+					// a: Number: a scaling factor used for the x coordinate
+					// b: Number: a scaling factor used for the y coordinate
+					// c: dojox.gfx.Point: a central point
+					// d: null
+					return m._sandwich(m.scale(a, b), c.x, c.y); // dojox.gfx.matrix.Matrix2D
+			}
+			// branch
+			// a: Number: a uniform scaling factor used for both coordinates
+			// b: dojox.gfx.Point: a central point
+			// c: null
+			// d: null
+			return m._sandwich(m.scale(a), b.x, b.y); // dojox.gfx.matrix.Matrix2D
+		},
+		rotateAt: function(angle, a, b){
+			// summary: rotates a picture using a specified point as a center of rotation
+			// description: Compare with dojox.gfx.matrix.rotate().
+			// angle: Number: an angle of rotation in radians (>0 for CW)
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) rotation angle in radians, Point
+			//	2) rotation angle in radians, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.rotate(angle), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// angle: Number: an angle of rotation in radians (>0 for CCW)
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.rotate(angle), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		},
+		rotategAt: function(degree, a, b){
+			// summary: rotates a picture using a specified point as a center of rotation
+			// description: Compare with dojox.gfx.matrix.rotateg().
+			// degree: Number: an angle of rotation in degrees (>0 for CW)
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) rotation angle in degrees, Point
+			//	2) rotation angle in degrees, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.rotateg(degree), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// degree: Number: an angle of rotation in degrees (>0 for CCW)
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.rotateg(degree), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		},
+		skewXAt: function(angle, a, b){
+			// summary: skews a picture along the x axis using a specified point as a center of skewing
+			// description: Compare with dojox.gfx.matrix.skewX().
+			// angle: Number: an skewing angle in radians
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) skew angle in radians, Point
+			//	2) skew angle in radians, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.skewX(angle), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// angle: Number: an skewing angle in radians
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.skewX(angle), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		},
+		skewXgAt: function(degree, a, b){
+			// summary: skews a picture along the x axis using a specified point as a center of skewing
+			// description: Compare with dojox.gfx.matrix.skewXg().
+			// degree: Number: an skewing angle in degrees
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) skew angle in degrees, Point
+			//	2) skew angle in degrees, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.skewXg(degree), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// degree: Number: an skewing angle in degrees
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.skewXg(degree), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		},
+		skewYAt: function(angle, a, b){
+			// summary: skews a picture along the y axis using a specified point as a center of skewing
+			// description: Compare with dojox.gfx.matrix.skewY().
+			// angle: Number: an skewing angle in radians
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) skew angle in radians, Point
+			//	2) skew angle in radians, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.skewY(angle), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// angle: Number: an skewing angle in radians
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.skewY(angle), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		},
+		skewYgAt: function(/* Number */ degree, /* Number||Point */ a, /* Number, optional */ b){
+			// summary: skews a picture along the y axis using a specified point as a center of skewing
+			// description: Compare with dojox.gfx.matrix.skewYg().
+			// degree: Number: an skewing angle in degrees
+			// a: Number: an x component of a central point
+			// b: Number: a y component of a central point
+
+			// accepts several signatures:
+			//	1) skew angle in degrees, Point
+			//	2) skew angle in degrees, x, y
+
+			if(arguments.length > 2){
+				return m._sandwich(m.skewYg(degree), a, b); // dojox.gfx.matrix.Matrix2D
+			}
+
+			// branch
+			// degree: Number: an skewing angle in degrees
+			// a: dojox.gfx.Point: a central point
+			// b: null
+			return m._sandwich(m.skewYg(degree), a.x, a.y); // dojox.gfx.matrix.Matrix2D
+		}
+
+		//TODO: rect-to-rect mapping, scale-to-fit (isotropic and anisotropic versions)
+
+	});
+})();
+
+// propagate Matrix2D up
+dojox.gfx.Matrix2D = dojox.gfx.matrix.Matrix2D;
+
+}
+
+if(!dojo._hasResource["dojox.gfx._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.gfx._base"] = true;
+dojo.provide("dojox.gfx._base");
+
+(function(){
+	var g = dojox.gfx, b = g._base;
+
+	// candidates for dojox.style (work on VML and SVG nodes)
+	g._hasClass = function(/*DomNode*/node, /*String*/classStr){
+		//	summary:
+		//		Returns whether or not the specified classes are a portion of the
+		//		class list currently applied to the node.
+		// return (new RegExp('(^|\\s+)'+classStr+'(\\s+|$)')).test(node.className)	// Boolean
+		var cls = node.getAttribute("className");
+		return cls && (" " + cls + " ").indexOf(" " + classStr + " ") >= 0;  // Boolean
+	}
+	g._addClass = function(/*DomNode*/node, /*String*/classStr){
+		//	summary:
+		//		Adds the specified classes to the end of the class list on the
+		//		passed node.
+		var cls = node.getAttribute("className") || "";
+		if(!cls || (" " + cls + " ").indexOf(" " + classStr + " ") < 0){
+			node.setAttribute("className", cls + (cls ? " " : "") + classStr);
+		}
+	}
+	g._removeClass = function(/*DomNode*/node, /*String*/classStr){
+		//	summary: Removes classes from node.
+		var cls = node.getAttribute("className");
+		if(cls){
+			node.setAttribute("className", cls.replace(new RegExp('(^|\\s+)' + classStr + '(\\s+|$)'), "$1$2"));
+		}
+	}
+
+	// candidate for dojox.html.metrics (dynamic font resize handler is not implemented here)
+
+	//	derived from Morris John's emResized measurer
+	b._getFontMeasurements = function(){
+		//	summary
+		//	Returns an object that has pixel equivilents of standard font size values.
+		var heights = {
+			'1em':0, '1ex':0, '100%':0, '12pt':0, '16px':0, 'xx-small':0, 'x-small':0,
+			'small':0, 'medium':0, 'large':0, 'x-large':0, 'xx-large':0
+		};
+
+		if(dojo.isIE){
+			//	we do a font-size fix if and only if one isn't applied already.
+			//	NOTE: If someone set the fontSize on the HTML Element, this will kill it.
+			dojo.doc.documentElement.style.fontSize="100%";
+		}
+
+		//	set up the measuring node.
+		var div=dojo.doc.createElement("div");
+		div.style.position="absolute";
+		div.style.left="-100px";
+		div.style.top="0";
+		div.style.width="30px";
+		div.style.height="1000em";
+		div.style.border="0";
+		div.style.margin="0";
+		div.style.padding="0";
+		div.style.outline="0";
+		div.style.lineHeight="1";
+		div.style.overflow="hidden";
+		dojo.body().appendChild(div);
+
+		//	do the measurements.
+		for(var p in heights){
+			div.style.fontSize = p;
+			heights[p] = Math.round(div.offsetHeight * 12/16) * 16/12 / 1000;
+		}
+
+		dojo.body().removeChild(div);
+		div = null;
+		return heights; 	//	object
+	};
+
+	var fontMeasurements = null;
+
+	b._getCachedFontMeasurements = function(recalculate){
+		if(recalculate || !fontMeasurements){
+			fontMeasurements = b._getFontMeasurements();
+		}
+		return fontMeasurements;
+	};
+
+	// candidate for dojox.html.metrics
+
+	var measuringNode = null, empty = {};
+	b._getTextBox = function(/* String */ text, /* Object */ style, /* String? */ className){
+		var m;
+		if(!measuringNode){
+			m = measuringNode = dojo.doc.createElement("div");
+			m.style.position = "absolute";
+			m.style.left = "-10000px";
+			m.style.top = "0";
+			dojo.body().appendChild(m);
+		}else{
+			m = measuringNode;
+		}
+		// reset styles
+		m.className = "";
+		m.style.border = "0";
+		m.style.margin = "0";
+		m.style.padding = "0";
+		m.style.outline = "0";
+		// set new style
+		if(arguments.length > 1 && style){
+			for(var i in style){
+				if(i in empty){ continue; }
+				m.style[i] = style[i];
+			}
+		}
+		// set classes
+		if(arguments.length > 2 && className){
+			m.className = className;
+		}
+		// take a measure
+		m.innerHTML = text;
+		return dojo.marginBox(m);
+	};
+
+	// candidate for dojo.dom
+
+	var uniqueId = 0;
+	b._getUniqueId = function(){
+		// summary: returns a unique string for use with any DOM element
+		var id;
+		do{
+			id = dojo._scopeName + "Unique" + (++uniqueId);
+		}while(dojo.byId(id));
+		return id;
+	};
+})();
+
+dojo.mixin(dojox.gfx, {
+	// summary: defines constants, prototypes, and utility functions
+
+	// default shapes, which are used to fill in missing parameters
+	defaultPath:     {type: "path",     path: ""},
+	defaultPolyline: {type: "polyline", points: []},
+	defaultRect:     {type: "rect",     x: 0, y: 0, width: 100, height: 100, r: 0},
+	defaultEllipse:  {type: "ellipse",  cx: 0, cy: 0, rx: 200, ry: 100},
+	defaultCircle:   {type: "circle",   cx: 0, cy: 0, r: 100},
+	defaultLine:     {type: "line",     x1: 0, y1: 0, x2: 100, y2: 100},
+	defaultImage:    {type: "image",    x: 0, y: 0, width: 0, height: 0, src: ""},
+	defaultText:     {type: "text",     x: 0, y: 0, text: "",
+		align: "start", decoration: "none", rotated: false, kerning: true },
+	defaultTextPath: {type: "textpath", text: "",
+		align: "start", decoration: "none", rotated: false, kerning: true },
+
+	// default geometric attributes
+	defaultStroke: {type: "stroke", color: "black", style: "solid", width: 1, cap: "butt", join: 4},
+	defaultLinearGradient: {type: "linear", x1: 0, y1: 0, x2: 100, y2: 100,
+		colors: [{offset: 0, color: "black"}, {offset: 1, color: "white"}]},
+	defaultRadialGradient: {type: "radial", cx: 0, cy: 0, r: 100,
+		colors: [{offset: 0, color: "black"}, {offset: 1, color: "white"}]},
+	defaultPattern: {type: "pattern", x: 0, y: 0, width: 0, height: 0, src: ""},
+	defaultFont: {type: "font", style: "normal", variant: "normal", weight: "normal",
+		size: "10pt", family: "serif"},
+
+	normalizeColor: function(/*Color*/ color){
+		// summary: converts any legal color representation to normalized dojo.Color object
+		return (color instanceof dojo.Color) ? color : new dojo.Color(color); // dojo.Color
+	},
+	normalizeParameters: function(existed, update){
+		// summary: updates an existing object with properties from an "update" object
+		// existed: Object: the "target" object to be updated
+		// update:  Object: the "update" object, whose properties will be used to update the existed object
+		if(update){
+			var empty = {};
+			for(var x in existed){
+				if(x in update && !(x in empty)){
+					existed[x] = update[x];
+				}
+			}
+		}
+		return existed;	// Object
+	},
+	makeParameters: function(defaults, update){
+		// summary: copies the original object, and all copied properties from the "update" object
+		// defaults: Object: the object to be cloned before updating
+		// update:   Object: the object, which properties are to be cloned during updating
+		if(!update) return dojo.clone(defaults);
+		var result = {};
+		for(var i in defaults){
+			if(!(i in result)){
+				result[i] = dojo.clone((i in update) ? update[i] : defaults[i]);
+			}
+		}
+		return result; // Object
+	},
+	formatNumber: function(x, addSpace){
+		// summary: converts a number to a string using a fixed notation
+		// x:			Number:		number to be converted
+		// addSpace:	Boolean?:	if it is true, add a space before a positive number
+		var val = x.toString();
+		if(val.indexOf("e") >= 0){
+			val = x.toFixed(4);
+		}else{
+			var point = val.indexOf(".");
+			if(point >= 0 && val.length - point > 5){
+				val = x.toFixed(4);
+			}
+		}
+		if(x < 0){
+			return val; // String
+		}
+		return addSpace ? " " + val : val; // String
+	},
+	// font operations
+	makeFontString: function(font){
+		// summary: converts a font object to a CSS font string
+		// font:	Object:	font object (see dojox.gfx.defaultFont)
+		return font.style + " " + font.variant + " " + font.weight + " " + font.size + " " + font.family; // Object
+	},
+	splitFontString: function(str){
+		// summary: converts a CSS font string to a font object
+		// str:		String:	a CSS font string
+		var font = dojo.clone(dojox.gfx.defaultFont);
+		var t = str.split(/\s+/);
+		do{
+			if(t.length < 5){ break; }
+			font.style  = t[0];
+			font.varian = t[1];
+			font.weight = t[2];
+			var i = t[3].indexOf("/");
+			font.size = i < 0 ? t[3] : t[3].substring(0, i);
+			var j = 4;
+			if(i < 0){
+				if(t[4] == "/"){
+					j = 6;
+					break;
+				}
+				if(t[4].substr(0, 1) == "/"){
+					j = 5;
+					break;
+				}
+			}
+			if(j + 3 > t.length){ break; }
+			font.size = t[j];
+			font.family = t[j + 1];
+		}while(false);
+		return font;	// Object
+	},
+	// length operations
+	cm_in_pt: 72 / 2.54,	// Number: points per centimeter
+	mm_in_pt: 7.2 / 2.54,	// Number: points per millimeter
+	px_in_pt: function(){
+		// summary: returns a number of pixels per point
+		return dojox.gfx._base._getCachedFontMeasurements()["12pt"] / 12;	// Number
+	},
+	pt2px: function(len){
+		// summary: converts points to pixels
+		// len: Number: a value in points
+		return len * dojox.gfx.px_in_pt();	// Number
+	},
+	px2pt: function(len){
+		// summary: converts pixels to points
+		// len: Number: a value in pixels
+		return len / dojox.gfx.px_in_pt();	// Number
+	},
+	normalizedLength: function(len) {
+		// summary: converts any length value to pixels
+		// len: String: a length, e.g., "12pc"
+		if(len.length == 0) return 0;
+		if(len.length > 2){
+			var px_in_pt = dojox.gfx.px_in_pt();
+			var val = parseFloat(len);
+			switch(len.slice(-2)){
+				case "px": return val;
+				case "pt": return val * px_in_pt;
+				case "in": return val * 72 * px_in_pt;
+				case "pc": return val * 12 * px_in_pt;
+				case "mm": return val * dojox.gfx.mm_in_pt * px_in_pt;
+				case "cm": return val * dojox.gfx.cm_in_pt * px_in_pt;
+			}
+		}
+		return parseFloat(len);	// Number
+	},
+
+	// a constant used to split a SVG/VML path into primitive components
+	pathVmlRegExp: /([A-Za-z]+)|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,
+	pathSvgRegExp: /([A-Za-z])|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,
+
+	equalSources: function(a, b){
+		// summary: compares event sources, returns true if they are equal
+		return a && b && a == b;
+	}
+});
+
+}
+
+if(!dojo._hasResource["dojox.gfx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.gfx"] = true;
+dojo.provide("dojox.gfx");
+
+
+
+
+dojo.loadInit(function(){
+	//Since loaderInit can be fired before any dojo.provide/require calls,
+	//make sure the dojox.gfx object exists and only run this logic if dojox.gfx.renderer
+	//has not been defined yet.
+	var gfx = dojo.getObject("dojox.gfx", true), sl, flag, match;
+	if(!gfx.renderer){
+		var renderers = (typeof dojo.config.gfxRenderer == "string" ?
+			dojo.config.gfxRenderer : "svg,vml,silverlight,canvas").split(",");
+
+		// mobile platform detection
+		// TODO: move to the base?
+
+		var ua = navigator.userAgent, iPhoneOsBuild = 0, androidVersion = 0;
+		if(dojo.isSafari >= 3){
+			// detect mobile version of WebKit starting with "version 3"
+
+			//	comprehensive iPhone test.  Have to figure out whether it's SVG or Canvas based on the build.
+			//	iPhone OS build numbers from en.wikipedia.org.
+			if(ua.indexOf("iPhone") >= 0 || ua.indexOf("iPod") >= 0){
+				//	grab the build out of this.  Expression is a little nasty because we want
+				//		to be sure we have the whole version string.
+				match = ua.match(/Version\/(\d(\.\d)?(\.\d)?)\sMobile\/([^\s]*)\s?/);
+				if(match){
+					//	grab the build out of the match.  Only use the first three because of specific builds.
+					iPhoneOsBuild = parseInt(match[4].substr(0,3), 16);
+				}
+			}
+		}
+		if(dojo.isWebKit){
+			// Android detection
+			if(!iPhoneOsBuild){
+				match = ua.match(/Android\s+(\d+\.\d+)/);
+				if(match){
+					androidVersion = parseFloat(match[1]);
+					// Android 1.0-1.1 doesn't support SVG but supports Canvas
+				}
+			}
+		}
+
+		for(var i = 0; i < renderers.length; ++i){
+			switch(renderers[i]){
+				case "svg":
+					//	iPhone OS builds greater than 5F1 should have SVG.
+					if(!dojo.isIE && (!iPhoneOsBuild || iPhoneOsBuild >= 0x5f1) && !androidVersion && !dojo.isAIR){
+						dojox.gfx.renderer = "svg";
+					}
+					break;
+				case "vml":
+					if(dojo.isIE){
+						dojox.gfx.renderer = "vml";
+					}
+					break;
+				case "silverlight":
+					try{
+						if(dojo.isIE){
+							sl = new ActiveXObject("AgControl.AgControl");
+							if(sl && sl.IsVersionSupported("1.0")){
+								flag = true;
+							}
+						}else{
+							if(navigator.plugins["Silverlight Plug-In"]){
+								flag = true;
+							}
+						}
+					}catch(e){
+						flag = false;
+					}finally{
+						sl = null;
+					}
+					if(flag){ dojox.gfx.renderer = "silverlight"; }
+					break;
+				case "canvas":
+					//TODO: need more comprehensive test for Canvas
+					if(!dojo.isIE){
+						dojox.gfx.renderer = "canvas";
+					}
+					break;
+			}
+			if(dojox.gfx.renderer){ break; }
+		}
+		if(dojo.config.isDebug){
+			
+		}
+	}
+});
+
+// include a renderer conditionally
+dojo.requireIf(dojox.gfx.renderer == "svg", "dojox.gfx.svg");
+dojo.requireIf(dojox.gfx.renderer == "vml", "dojox.gfx.vml");
+dojo.requireIf(dojox.gfx.renderer == "silverlight", "dojox.gfx.silverlight");
+dojo.requireIf(dojox.gfx.renderer == "canvas", "dojox.gfx.canvas");
+
+}
+

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx.js.uncompressed.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Moveable.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Moveable.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Moveable.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Moveable.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,53 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.Moveable"]){
+dojo._hasResource["dojox.gfx.Moveable"]=true;
+dojo.provide("dojox.gfx.Moveable");
+dojo.require("dojox.gfx.Mover");
+dojo.declare("dojox.gfx.Moveable",null,{constructor:function(_1,_2){
+this.shape=_1;
+this.delay=(_2&&_2.delay>0)?_2.delay:0;
+this.mover=(_2&&_2.mover)?_2.mover:dojox.gfx.Mover;
+this.events=[this.shape.connect("onmousedown",this,"onMouseDown")];
+},destroy:function(){
+dojo.forEach(this.events,this.shape.disconnect,this.shape);
+this.events=this.shape=null;
+},onMouseDown:function(e){
+if(this.delay){
+this.events.push(this.shape.connect("onmousemove",this,"onMouseMove"));
+this.events.push(this.shape.connect("onmouseup",this,"onMouseUp"));
+this._lastX=e.clientX;
+this._lastY=e.clientY;
+}else{
+new this.mover(this.shape,e,this);
+}
+dojo.stopEvent(e);
+},onMouseMove:function(e){
+if(Math.abs(e.clientX-this._lastX)>this.delay||Math.abs(e.clientY-this._lastY)>this.delay){
+this.onMouseUp(e);
+new this.mover(this.shape,e,this);
+}
+dojo.stopEvent(e);
+},onMouseUp:function(e){
+this.shape.disconnect(this.events.pop());
+this.shape.disconnect(this.events.pop());
+},onMoveStart:function(_6){
+dojo.publish("/gfx/move/start",[_6]);
+dojo.addClass(dojo.body(),"dojoMove");
+},onMoveStop:function(_7){
+dojo.publish("/gfx/move/stop",[_7]);
+dojo.removeClass(dojo.body(),"dojoMove");
+},onFirstMove:function(_8){
+},onMove:function(_9,_a){
+this.onMoving(_9,_a);
+this.shape.applyLeftTransform(_a);
+this.onMoved(_9,_a);
+},onMoving:function(_b,_c){
+},onMoved:function(_d,_e){
+}});
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Moveable.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Mover.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Mover.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Mover.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Mover.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,38 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.Mover"]){
+dojo._hasResource["dojox.gfx.Mover"]=true;
+dojo.provide("dojox.gfx.Mover");
+dojo.declare("dojox.gfx.Mover",null,{constructor:function(_1,e,_3){
+this.shape=_1;
+this.lastX=e.clientX;
+this.lastY=e.clientY;
+var h=this.host=_3,d=document,_6=dojo.connect(d,"onmousemove",this,"onFirstMove");
+this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"destroy"),dojo.connect(d,"ondragstart",dojo,"stopEvent"),dojo.connect(d,"onselectstart",dojo,"stopEvent"),_6];
+if(h&&h.onMoveStart){
+h.onMoveStart(this);
+}
+},onMouseMove:function(e){
+var x=e.clientX;
+var y=e.clientY;
+this.host.onMove(this,{dx:x-this.lastX,dy:y-this.lastY});
+this.lastX=x;
+this.lastY=y;
+dojo.stopEvent(e);
+},onFirstMove:function(){
+this.host.onFirstMove(this);
+dojo.disconnect(this.events.pop());
+},destroy:function(){
+dojo.forEach(this.events,dojo.disconnect);
+var h=this.host;
+if(h&&h.onMoveStop){
+h.onMoveStop(this);
+}
+this.events=this.shape=null;
+}});
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/Mover.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/README
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/README?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/README (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/README Thu Mar 19 10:37:00 2009
@@ -0,0 +1,102 @@
+-------------------------------------------------------------------------------
+dojox.gfx
+-------------------------------------------------------------------------------
+Version 1.100
+Release date: 08/01/2006
+-------------------------------------------------------------------------------
+Project state:
+beta
+HTMLCanvas renderer: experimental
+-------------------------------------------------------------------------------
+Credits
+	Eugene Lazutkin (eugene.lazutkin@gmail.com)
+	Kun Xi (bookstack@gmail.com)
+	Chris Mitchell (ccmitchellusa@gmail.com) HTML Canvas
+-------------------------------------------------------------------------------
+Project description
+
+Implementation of simple portable 2D graphics library.
+-------------------------------------------------------------------------------
+Dependencies:
+
+Dojo Core
+-------------------------------------------------------------------------------
+Documentation
+
+Currently it can be found here: http://docs.google.com/Doc?id=d764479_1hnb2tn
+
+HTMLCanvas Renderer Status
+
+To use canvas rendering, insert 'canvas' at the beginning of the gfxRenderers list in your
+djConfig, for example:
+<script type="text/javascript" src="../../../dojo/dojo.js"
+	djConfig="parseOnLoad: true, gfxRenderer: 'canvas,svg,silverlight,vml'"></script>
+canvas currently will only render on non-IE browsers (see dojox/gfx.js for where the renderer is loaded);
+although it should be possible to use an IE canvas implementation (like Google's); however, it will be very slow.
+
+The following tests can be made to work with HTML Canvas with minor testcase modification:
+dojox/gfx/tests
+	test_gfx.html-Bugs #1
+	test_arc.html
+	test_bezier.html
+	test_pattern.html
+	test_gradient.html
+	test_linearGradient.html
+	test_image1.html - Limitation #3
+	test_transform.html - Bug #1
+	test_poly.html - Bug #1
+dojox/gfx/demos
+	butterfly.html - Bug #1
+	lion.html - Bug #1
+	tiger.html - Bug #1
+	circles.html - No event processing yet :(
+	creator.html
+dojox/chart
+	test_pie2d.html - Dojo Charts on iPhone anyone? :)
+	test_chart2d.html -
+
+	// To make charts work, the following line needs to be added to the end of the
+	// Chart2D.js render() method (prior to return)
+	if(this.surface.render){this.surface.render()};
+
+Known Limitations:
+1) event handling- plan is to capture all events at canvas, perform intersect/hit
+   tests (not implemented) against scene graph, then propogate event to top-most
+   intersected shape.  HtmlCanvas shape need intersectsStroke and intersectsBounds,
+   and intersects (region).
+2) SVG and VML are "live" scene graphs; eg. any state change to objects in the
+   scene automatically get rendered in next engine render pass. For canvas, it's
+   procedural, and current implementation requires application to call surface.render()
+   whenever scene needs to be updated. Plan is to do dirty region checking based
+   on bounding boxes (currently not properly computed), and track dirty areas anytime
+   state changes (invalidate) separate from render phase.
+   Add the following call where changes to the scene graph are complete and you want to
+   render:
+
+	if (surface.render){surface.render();}
+
+4) Text/Text Paths - Text shape is implemented using DIV overlays.  Many text styles are not
+   applied, and outline/fills are not possible.  This is due to limitations in Canvas spec.
+   Firefox 3.0 has proprietary text functions that we could test for and use once FF3 is out.
+   No luck on Safari.
+3) No Image skewing - Limitation of Canvas
+
+Known Bugs:
+1) Matrix xformations (applied from root to shape leaf nodes) not quite right--but very close.
+   Canvas does not have a built in transformation function that allows skewing.  Need to
+   track skew matrix with Shape, and perform other trans/rot/scale transformations without
+   using canvas transform functions.
+
+
+-------------------------------------------------------------------------------
+Installation instructions
+
+Grab the following from the Dojo SVN Repository:
+http://svn.dojotoolkit.org/var/src/dojo/dojox/trunk/gfx.js
+http://svn.dojotoolkit.org/var/src/dojo/dojox/trunk/gfx/*
+
+Install into the following directory structure:
+/dojox/gfx/
+
+...which should be at the same level as your Dojo checkout.
+-------------------------------------------------------------------------------

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/README
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/VectorText.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/VectorText.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/VectorText.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/VectorText.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,366 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.VectorText"]){
+dojo._hasResource["dojox.gfx.VectorText"]=true;
+dojo.provide("dojox.gfx.VectorText");
+dojo.require("dojox.gfx");
+dojo.require("dojox.xml.DomParser");
+dojo.require("dojox.html.metrics");
+(function(){
+dojo.mixin(dojox.gfx,{vectorFontFitting:{NONE:0,FLOW:1,FIT:2},defaultVectorText:{type:"vectortext",x:0,y:0,width:null,height:null,text:"",align:"start",decoration:"none",fitting:0,leading:1.5},defaultVectorFont:{type:"vectorfont",size:"10pt",family:null},_vectorFontCache:{},_svgFontCache:{},getVectorFont:function(_1){
+if(dojox.gfx._vectorFontCache[_1]){
+return dojox.gfx._vectorFontCache[_1];
+}
+return new dojox.gfx.VectorFont(_1);
+}});
+dojo.declare("dojox.gfx.VectorFont",null,{_entityRe:/&(quot|apos|lt|gt|amp|#x[^;]+|#\d+);/g,_decodeEntitySequence:function(_2){
+if(!_2.match(this._entityRe)){
+return;
+}
+var _3={amp:"&",apos:"'",quot:"\"",lt:"<",gt:">"};
+var r,_5="";
+while((r=this._entityRe.exec(_2))!==null){
+if(r[1].charAt(1)=="x"){
+_5+=String.fromCharCode(r[1].slice(2),16);
+}else{
+if(!isNaN(parseInt(r[1].slice(1),10))){
+_5+=String.fromCharCode(r[1].slice(1));
+}else{
+_5+=_3(r[1]);
+}
+}
+}
+return _5;
+},_parse:function(_6,_7){
+var _8=dojox.gfx._svgFontCache[_7]||dojox.xml.DomParser.parse(_6);
+var f=_8.documentElement.byName("font")[0],_a=_8.documentElement.byName("font-face")[0];
+var _b=parseFloat(_a.getAttribute("units-per-em")||1000,10);
+var _c={x:parseFloat(f.getAttribute("horiz-adv-x"),10),y:parseFloat(f.getAttribute("vert-adv-y")||0,10)};
+if(!_c.y){
+_c.y=_b;
+}
+var _d={horiz:{x:parseFloat(f.getAttribute("horiz-origin-x")||0,10),y:parseFloat(f.getAttribute("horiz-origin-y")||0,10)},vert:{x:parseFloat(f.getAttribute("vert-origin-x")||0,10),y:parseFloat(f.getAttribute("vert-origin-y")||0,10)}};
+var _e=_a.getAttribute("font-family"),_f=_a.getAttribute("font-style")||"all",_10=_a.getAttribute("font-variant")||"normal",_11=_a.getAttribute("font-weight")||"all",_12=_a.getAttribute("font-stretch")||"normal",_13=_a.getAttribute("unicode-range")||"U+0-10FFFF",_14=_a.getAttribute("panose-1")||"0 0 0 0 0 0 0 0 0 0",_15=_a.getAttribute("cap-height"),_16=parseFloat(_a.getAttribute("ascent")||(_b-_d.vert.y),10),_17=parseFloat(_a.getAttribute("descent")||_d.vert.y,10),_18={};
+var _19=_e;
+if(_a.byName("font-face-name")[0]){
+_19=_a.byName("font-face-name")[0].getAttribute("name");
+}
+if(dojox.gfx._vectorFontCache[_19]){
+return;
+}
+dojo.forEach(["alphabetic","ideographic","mathematical","hanging"],function(_1a){
+var a=_a.getAttribute(_1a);
+if(a!==null){
+_18[_1a]=parseFloat(a,10);
+}
+});
+var _1c=parseFloat(_8.documentElement.byName("missing-glyph")[0].getAttribute("horiz-adv-x")||_c.x,10);
+var _1d={},_1e={},g=_8.documentElement.byName("glyph");
+dojo.forEach(g,function(_20){
+var _21=_20.getAttribute("unicode"),_19=_20.getAttribute("glyph-name"),_22=parseFloat(_20.getAttribute("horiz-adv-x")||_c.x,10),_23=_20.getAttribute("d");
+if(_21.match(this._entityRe)){
+_21=this._decodeEntitySequence(_21);
+}
+var o={code:_21,name:_19,xAdvance:_22,path:_23};
+_1d[_21]=o;
+_1e[_19]=o;
+},this);
+var _25=_8.documentElement.byName("hkern");
+dojo.forEach(_25,function(_26,i){
+var k=-parseInt(_26.getAttribute("k"),10);
+var u1=_26.getAttribute("u1"),g1=_26.getAttribute("g1"),u2=_26.getAttribute("u2"),g2=_26.getAttribute("g2"),gl;
+if(u1){
+u1=this._decodeEntitySequence(u1);
+if(_1d[u1]){
+gl=_1d[u1];
+}
+}else{
+if(_1e[g1]){
+gl=_1e[g1];
+}
+}
+if(gl){
+if(!gl.kern){
+gl.kern={};
+}
+if(u2){
+u2=this._decodeEntitySequence(u2);
+gl.kern[u2]={x:k};
+}else{
+if(_1e[g2]){
+gl.kern[_1e[g2].code]={x:k};
+}
+}
+}
+},this);
+dojo.mixin(this,{family:_e,name:_19,style:_f,variant:_10,weight:_11,stretch:_12,range:_13,viewbox:{width:_b,height:_b},origin:_d,advance:dojo.mixin(_c,{missing:{x:_1c,y:_1c}}),ascent:_16,descent:_17,baseline:_18,glyphs:_1d});
+dojox.gfx._vectorFontCache[_19]=this;
+dojox.gfx._vectorFontCache[_7]=this;
+if(_19!=_e&&!dojox.gfx._vectorFontCache[_e]){
+dojox.gfx._vectorFontCache[_e]=this;
+}
+if(!dojox.gfx._svgFontCache[_7]){
+dojox.gfx._svgFontCache[_7]=_8;
+}
+},_clean:function(){
+var _2e=this.name,_2f=this.family;
+dojo.forEach(["family","name","style","variant","weight","stretch","range","viewbox","origin","advance","ascent","descent","baseline","glyphs"],function(_30){
+try{
+delete this[_30];
+}
+catch(e){
+}
+},this);
+if(dojox.gfx._vectorFontCache[_2e]){
+delete dojox.gfx._vectorFontCache[_2e];
+}
+if(dojox.gfx._vectorFontCache[_2f]){
+delete dojox.gfx._vectorFontCache[_2f];
+}
+return this;
+},constructor:function(url){
+this._defaultLeading=1.5;
+if(url!==undefined){
+this.load(url);
+}
+},load:function(url){
+this.onLoadBegin(url.toString());
+this._parse(dojox.gfx._svgFontCache[url.toString()]||dojo._getText(url.toString()),url.toString());
+this.onLoad(this);
+return this;
+},initialized:function(){
+return (this.glyphs!==null);
+},_round:function(n){
+return Math.round(1000*n)/1000;
+},_leading:function(_34){
+return this.viewbox.height*(_34||this._defaultLeading);
+},_normalize:function(str){
+return str.replace(/\s+/g,String.fromCharCode(32));
+},_getWidth:function(_36){
+var w=0,_38=0,_39=null;
+dojo.forEach(_36,function(_3a,i){
+_38=_3a.xAdvance;
+if(_36[i]&&_3a.kern&&_3a.kern[_36[i].code]){
+_38+=_3a.kern[_36[i].code].x;
+}
+w+=_38;
+_39=_3a;
+});
+if(_39&&_39.code==" "){
+w-=_39.xAdvance;
+}
+return this._round(w);
+},_getLongestLine:function(_3c){
+var _3d=0,idx=0;
+dojo.forEach(_3c,function(_3f,i){
+var max=Math.max(_3d,this._getWidth(_3f));
+if(max>_3d){
+_3d=max;
+idx=i;
+}
+},this);
+return {width:_3d,index:idx,line:_3c[idx]};
+},_trim:function(_42){
+var fn=function(arr){
+if(!arr.length){
+return;
+}
+if(arr[arr.length-1].code==" "){
+arr.splice(arr.length-1,1);
+}
+if(!arr.length){
+return;
+}
+if(arr[0].code==" "){
+arr.splice(0,1);
+}
+};
+if(dojo.isArray(_42[0])){
+dojo.forEach(_42,fn);
+}else{
+fn(_42);
+}
+return _42;
+},_split:function(_45,_46){
+var w=this._getWidth(_45),_48=Math.floor(w/_46),_49=[],cw=0,c=[],_4c=false;
+for(var i=0,l=_45.length;i<l;i++){
+if(_45[i].code==" "){
+_4c=true;
+}
+cw+=_45[i].xAdvance;
+if(i+1<l&&_45[i].kern&&_45[i].kern[_45[i+1].code]){
+cw+=_45[i].kern[_45[i+1].code].x;
+}
+if(cw>=_48){
+var chr=_45[i];
+while(_4c&&chr.code!=" "&&i>=0){
+chr=c.pop();
+i--;
+}
+_49.push(c);
+c=[];
+cw=0;
+_4c=false;
+}
+c.push(_45[i]);
+}
+if(c.length){
+_49.push(c);
+}
+return this._trim(_49);
+},_getSizeFactor:function(_50){
+_50+="";
+var _51=dojox.html.metrics.getCachedFontMeasurements(),_52=this.viewbox.height,f=_51["1em"],_54=parseFloat(_50,10);
+if(_50.indexOf("em")>-1){
+return this._round((_51["1em"]*_54)/_52);
+}else{
+if(_50.indexOf("ex")>-1){
+return this._round((_51["1ex"]*_54)/_52);
+}else{
+if(_50.indexOf("pt")>-1){
+return this._round(((_51["12pt"]/12)*_54)/_52);
+}else{
+if(_50.indexOf("px")>-1){
+return this._round(((_51["16px"]/16)*_54)/_52);
+}else{
+if(_50.indexOf("%")>-1){
+return this._round((_51["1em"]*(_54/100))/_52);
+}else{
+f=_51[_50]||_51.medium;
+return this._round(f/_52);
+}
+}
+}
+}
+}
+},_getFitFactor:function(_55,w,h,l){
+if(!h){
+return this._round(w/this._getWidth(_55));
+}else{
+var _59=this._getLongestLine(_55).width,_5a=(_55.length*(this.viewbox.height*l))-((this.viewbox.height*l)-this.viewbox.height);
+return this._round(Math.min(w/_59,h/_5a));
+}
+},_getBestFit:function(_5b,w,h,_5e){
+var _5f=32,_60=0,_61=_5f;
+while(_5f>0){
+var f=this._getFitFactor(this._split(_5b,_5f),w,h,_5e);
+if(f>_60){
+_60=f;
+_61=_5f;
+}
+_5f--;
+}
+return {scale:_60,lines:this._split(_5b,_61)};
+},_getBestFlow:function(_63,w,_65){
+var _66=[],cw=0,c=[],_69=false;
+for(var i=0,l=_63.length;i<l;i++){
+if(_63[i].code==" "){
+_69=true;
+}
+var tw=_63[i].xAdvance;
+if(i+1<l&&_63[i].kern&&_63[i].kern[_63[i+1].code]){
+tw+=_63[i].kern[_63[i+1].code].x;
+}
+cw+=_65*tw;
+if(cw>=w){
+var chr=_63[i];
+while(_69&&chr.code!=" "&&i>=0){
+chr=c.pop();
+i--;
+}
+_66.push(c);
+c=[];
+cw=0;
+_69=false;
+}
+c.push(_63[i]);
+}
+if(c.length){
+_66.push(c);
+}
+return this._trim(_66);
+},getWidth:function(_6e,_6f){
+return this._getWidth(dojo.map(this._normalize(_6e).split(""),function(chr){
+return this.glyphs[chr]||{xAdvance:this.advance.missing.x};
+},this))*(_6f||1);
+},getLineHeight:function(_71){
+return this.viewbox.height*(_71||1);
+},getCenterline:function(_72){
+return (_72||1)*(this.viewbox.height/2);
+},getBaseline:function(_73){
+return (_73||1)*(this.viewbox.height+this.descent);
+},draw:function(_74,_75,_76,_77,_78){
+if(!this.initialized()){
+throw new Error("dojox.gfx.VectorFont.draw(): we have not been initialized yet.");
+}
+var g=_74.createGroup();
+if(_75.x||_75.y){
+_74.applyTransform({dx:_75.x||0,dy:_75.y||0});
+}
+var _7a=dojo.map(this._normalize(_75.text).split(""),function(chr){
+return this.glyphs[chr]||{path:null,xAdvance:this.advance.missing.x};
+},this);
+var _7c=_76.size,_7d=_75.fitting,_7e=_75.width,_7f=_75.height,_80=_75.align,_81=_75.leading||this._defaultLeading;
+if(_7d){
+if((_7d==dojox.gfx.vectorFontFitting.FLOW&&!_7e)||(_7d==dojox.gfx.vectorFontFitting.FIT&&(!_7e||!_7f))){
+_7d=dojox.gfx.vectorFontFitting.NONE;
+}
+}
+var _82,_83;
+switch(_7d){
+case dojox.gfx.vectorFontFitting.FIT:
+var o=this._getBestFit(_7a,_7e,_7f,_81);
+_83=o.scale;
+_82=o.lines;
+break;
+case dojox.gfx.vectorFontFitting.FLOW:
+_83=this._getSizeFactor(_7c);
+_82=this._getBestFlow(_7a,_7e,_83);
+break;
+default:
+_83=this._getSizeFactor(_7c);
+_82=[_7a];
+}
+_82=dojo.filter(_82,function(_85){
+return _85.length>0;
+});
+var cy=0,_87=this._getLongestLine(_82).width;
+for(var i=0,l=_82.length;i<l;i++){
+var cx=0,_8b=_82[i],_8c=this._getWidth(_8b),lg=g.createGroup();
+for(var j=0;j<_8b.length;j++){
+var _8f=_8b[j];
+if(_8f.path!==null){
+var p=lg.createPath(_8f.path).setFill(_77);
+if(_78){
+p.setStroke(_78);
+}
+p.setTransform([dojox.gfx.matrix.flipY,dojox.gfx.matrix.translate(cx,-this.viewbox.height-this.descent)]);
+}
+cx+=_8f.xAdvance;
+if(j+1<_8b.length&&_8f.kern&&_8f.kern[_8b[j+1].code]){
+cx+=_8f.kern[_8b[j+1].code].x;
+}
+}
+var dx=0;
+if(_80=="middle"){
+dx=_87/2-_8c/2;
+}else{
+if(_80=="end"){
+dx=_87-_8c;
+}
+}
+lg.setTransform({dx:dx,dy:cy});
+cy+=this.viewbox.height*_81;
+}
+g.setTransform(dojox.gfx.matrix.scale(_83));
+return g;
+},onLoadBegin:function(url){
+},onLoad:function(_93){
+}});
+})();
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/VectorText.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/_base.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/_base.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/_base.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/_base.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,203 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx._base"]){
+dojo._hasResource["dojox.gfx._base"]=true;
+dojo.provide("dojox.gfx._base");
+(function(){
+var g=dojox.gfx,b=g._base;
+g._hasClass=function(_3,_4){
+var _5=_3.getAttribute("className");
+return _5&&(" "+_5+" ").indexOf(" "+_4+" ")>=0;
+};
+g._addClass=function(_6,_7){
+var _8=_6.getAttribute("className")||"";
+if(!_8||(" "+_8+" ").indexOf(" "+_7+" ")<0){
+_6.setAttribute("className",_8+(_8?" ":"")+_7);
+}
+};
+g._removeClass=function(_9,_a){
+var _b=_9.getAttribute("className");
+if(_b){
+_9.setAttribute("className",_b.replace(new RegExp("(^|\\s+)"+_a+"(\\s+|$)"),"$1$2"));
+}
+};
+b._getFontMeasurements=function(){
+var _c={"1em":0,"1ex":0,"100%":0,"12pt":0,"16px":0,"xx-small":0,"x-small":0,"small":0,"medium":0,"large":0,"x-large":0,"xx-large":0};
+if(dojo.isIE){
+dojo.doc.documentElement.style.fontSize="100%";
+}
+var _d=dojo.doc.createElement("div");
+_d.style.position="absolute";
+_d.style.left="-100px";
+_d.style.top="0";
+_d.style.width="30px";
+_d.style.height="1000em";
+_d.style.border="0";
+_d.style.margin="0";
+_d.style.padding="0";
+_d.style.outline="0";
+_d.style.lineHeight="1";
+_d.style.overflow="hidden";
+dojo.body().appendChild(_d);
+for(var p in _c){
+_d.style.fontSize=p;
+_c[p]=Math.round(_d.offsetHeight*12/16)*16/12/1000;
+}
+dojo.body().removeChild(_d);
+_d=null;
+return _c;
+};
+var _f=null;
+b._getCachedFontMeasurements=function(_10){
+if(_10||!_f){
+_f=b._getFontMeasurements();
+}
+return _f;
+};
+var _11=null,_12={};
+b._getTextBox=function(_13,_14,_15){
+var m;
+if(!_11){
+m=_11=dojo.doc.createElement("div");
+m.style.position="absolute";
+m.style.left="-10000px";
+m.style.top="0";
+dojo.body().appendChild(m);
+}else{
+m=_11;
+}
+m.className="";
+m.style.border="0";
+m.style.margin="0";
+m.style.padding="0";
+m.style.outline="0";
+if(arguments.length>1&&_14){
+for(var i in _14){
+if(i in _12){
+continue;
+}
+m.style[i]=_14[i];
+}
+}
+if(arguments.length>2&&_15){
+m.className=_15;
+}
+m.innerHTML=_13;
+return dojo.marginBox(m);
+};
+var _18=0;
+b._getUniqueId=function(){
+var id;
+do{
+id=dojo._scopeName+"Unique"+(++_18);
+}while(dojo.byId(id));
+return id;
+};
+})();
+dojo.mixin(dojox.gfx,{defaultPath:{type:"path",path:""},defaultPolyline:{type:"polyline",points:[]},defaultRect:{type:"rect",x:0,y:0,width:100,height:100,r:0},defaultEllipse:{type:"ellipse",cx:0,cy:0,rx:200,ry:100},defaultCircle:{type:"circle",cx:0,cy:0,r:100},defaultLine:{type:"line",x1:0,y1:0,x2:100,y2:100},defaultImage:{type:"image",x:0,y:0,width:0,height:0,src:""},defaultText:{type:"text",x:0,y:0,text:"",align:"start",decoration:"none",rotated:false,kerning:true},defaultTextPath:{type:"textpath",text:"",align:"start",decoration:"none",rotated:false,kerning:true},defaultStroke:{type:"stroke",color:"black",style:"solid",width:1,cap:"butt",join:4},defaultLinearGradient:{type:"linear",x1:0,y1:0,x2:100,y2:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultRadialGradient:{type:"radial",cx:0,cy:0,r:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultPattern:{type:"pattern",x:0,y:0,width:0,height:0,src:""},defaultFont:{type:"font",style:"no
 rmal",variant:"normal",weight:"normal",size:"10pt",family:"serif"},normalizeColor:function(_1a){
+return (_1a instanceof dojo.Color)?_1a:new dojo.Color(_1a);
+},normalizeParameters:function(_1b,_1c){
+if(_1c){
+var _1d={};
+for(var x in _1b){
+if(x in _1c&&!(x in _1d)){
+_1b[x]=_1c[x];
+}
+}
+}
+return _1b;
+},makeParameters:function(_1f,_20){
+if(!_20){
+return dojo.clone(_1f);
+}
+var _21={};
+for(var i in _1f){
+if(!(i in _21)){
+_21[i]=dojo.clone((i in _20)?_20[i]:_1f[i]);
+}
+}
+return _21;
+},formatNumber:function(x,_24){
+var val=x.toString();
+if(val.indexOf("e")>=0){
+val=x.toFixed(4);
+}else{
+var _26=val.indexOf(".");
+if(_26>=0&&val.length-_26>5){
+val=x.toFixed(4);
+}
+}
+if(x<0){
+return val;
+}
+return _24?" "+val:val;
+},makeFontString:function(_27){
+return _27.style+" "+_27.variant+" "+_27.weight+" "+_27.size+" "+_27.family;
+},splitFontString:function(str){
+var _29=dojo.clone(dojox.gfx.defaultFont);
+var t=str.split(/\s+/);
+do{
+if(t.length<5){
+break;
+}
+_29.style=t[0];
+_29.varian=t[1];
+_29.weight=t[2];
+var i=t[3].indexOf("/");
+_29.size=i<0?t[3]:t[3].substring(0,i);
+var j=4;
+if(i<0){
+if(t[4]=="/"){
+j=6;
+break;
+}
+if(t[4].substr(0,1)=="/"){
+j=5;
+break;
+}
+}
+if(j+3>t.length){
+break;
+}
+_29.size=t[j];
+_29.family=t[j+1];
+}while(false);
+return _29;
+},cm_in_pt:72/2.54,mm_in_pt:7.2/2.54,px_in_pt:function(){
+return dojox.gfx._base._getCachedFontMeasurements()["12pt"]/12;
+},pt2px:function(len){
+return len*dojox.gfx.px_in_pt();
+},px2pt:function(len){
+return len/dojox.gfx.px_in_pt();
+},normalizedLength:function(len){
+if(len.length==0){
+return 0;
+}
+if(len.length>2){
+var _30=dojox.gfx.px_in_pt();
+var val=parseFloat(len);
+switch(len.slice(-2)){
+case "px":
+return val;
+case "pt":
+return val*_30;
+case "in":
+return val*72*_30;
+case "pc":
+return val*12*_30;
+case "mm":
+return val*dojox.gfx.mm_in_pt*_30;
+case "cm":
+return val*dojox.gfx.cm_in_pt*_30;
+}
+}
+return parseFloat(len);
+},pathVmlRegExp:/([A-Za-z]+)|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,pathSvgRegExp:/([A-Za-z])|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,equalSources:function(a,b){
+return a&&b&&a==b;
+}});
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/_base.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/arc.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/arc.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/arc.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/arc.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,65 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.arc"]){
+dojo._hasResource["dojox.gfx.arc"]=true;
+dojo.provide("dojox.gfx.arc");
+dojo.require("dojox.gfx.matrix");
+(function(){
+var m=dojox.gfx.matrix,_2=function(_3){
+var _4=Math.cos(_3),_5=Math.sin(_3),p2={x:_4+(4/3)*(1-_4),y:_5-(4/3)*_4*(1-_4)/_5};
+return {s:{x:_4,y:-_5},c1:{x:p2.x,y:-p2.y},c2:p2,e:{x:_4,y:_5}};
+},_7=2*Math.PI,_8=Math.PI/4,_9=Math.PI/8,_a=_8+_9,_b=_2(_9);
+dojo.mixin(dojox.gfx.arc,{unitArcAsBezier:_2,curvePI4:_b,arcAsBezier:function(_c,rx,ry,_f,_10,_11,x,y){
+_10=Boolean(_10);
+_11=Boolean(_11);
+var _14=m._degToRad(_f),rx2=rx*rx,ry2=ry*ry,pa=m.multiplyPoint(m.rotate(-_14),{x:(_c.x-x)/2,y:(_c.y-y)/2}),_18=pa.x*pa.x,_19=pa.y*pa.y,c1=Math.sqrt((rx2*ry2-rx2*_19-ry2*_18)/(rx2*_19+ry2*_18));
+if(isNaN(c1)){
+c1=0;
+}
+var ca={x:c1*rx*pa.y/ry,y:-c1*ry*pa.x/rx};
+if(_10==_11){
+ca={x:-ca.x,y:-ca.y};
+}
+var c=m.multiplyPoint([m.translate((_c.x+x)/2,(_c.y+y)/2),m.rotate(_14)],ca);
+var _1d=m.normalize([m.translate(c.x,c.y),m.rotate(_14),m.scale(rx,ry)]);
+var _1e=m.invert(_1d),sp=m.multiplyPoint(_1e,_c),ep=m.multiplyPoint(_1e,x,y),_21=Math.atan2(sp.y,sp.x),_22=Math.atan2(ep.y,ep.x),_23=_21-_22;
+if(_11){
+_23=-_23;
+}
+if(_23<0){
+_23+=_7;
+}else{
+if(_23>_7){
+_23-=_7;
+}
+}
+var _24=_9,_25=_b,_26=_11?_24:-_24,_27=[];
+for(var _28=_23;_28>0;_28-=_8){
+if(_28<_a){
+_24=_28/2;
+_25=_2(_24);
+_26=_11?_24:-_24;
+_28=0;
+}
+var c1,c2,e,M=m.normalize([_1d,m.rotate(_21+_26)]);
+if(_11){
+c1=m.multiplyPoint(M,_25.c1);
+c2=m.multiplyPoint(M,_25.c2);
+e=m.multiplyPoint(M,_25.e);
+}else{
+c1=m.multiplyPoint(M,_25.c2);
+c2=m.multiplyPoint(M,_25.c1);
+e=m.multiplyPoint(M,_25.s);
+}
+_27.push([c1.x,c1.y,c2.x,c2.y,e.x,e.y]);
+_21+=2*_26;
+}
+return _27;
+}});
+})();
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/arc.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/attach.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/attach.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/attach.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/attach.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,12 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo.require("dojox.gfx");
+dojo.requireIf(dojox.gfx.renderer=="svg","dojox.gfx.svg_attach");
+dojo.requireIf(dojox.gfx.renderer=="vml","dojox.gfx.vml_attach");
+dojo.requireIf(dojox.gfx.renderer=="silverlight","dojox.gfx.silverlight_attach");
+dojo.requireIf(dojox.gfx.renderer=="canvas","dojox.gfx.canvas_attach");

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/attach.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,498 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.canvas"]){
+dojo._hasResource["dojox.gfx.canvas"]=true;
+dojo.provide("dojox.gfx.canvas");
+dojo.require("dojox.gfx._base");
+dojo.require("dojox.gfx.shape");
+dojo.require("dojox.gfx.path");
+dojo.require("dojox.gfx.arc");
+dojo.require("dojox.gfx.decompose");
+dojo.experimental("dojox.gfx.canvas");
+(function(){
+var g=dojox.gfx,gs=g.shape,ga=g.arc,m=g.matrix,mp=m.multiplyPoint,pi=Math.PI,_7=2*pi,_8=pi/2;
+dojo.extend(g.Shape,{_render:function(_9){
+_9.save();
+this._renderTransform(_9);
+this._renderShape(_9);
+this._renderFill(_9,true);
+this._renderStroke(_9,true);
+_9.restore();
+},_renderTransform:function(_a){
+if("canvasTransform" in this){
+var t=this.canvasTransform;
+_a.translate(t.dx,t.dy);
+_a.rotate(t.angle2);
+_a.scale(t.sx,t.sy);
+_a.rotate(t.angle1);
+}
+},_renderShape:function(_c){
+},_renderFill:function(_d,_e){
+if("canvasFill" in this){
+if("canvasFillImage" in this){
+this.canvasFill=_d.createPattern(this.canvasFillImage,"repeat");
+delete this.canvasFillImage;
+}
+_d.fillStyle=this.canvasFill;
+if(_e){
+_d.fill();
+}
+}else{
+_d.fillStyle="rgba(0,0,0,0.0)";
+}
+},_renderStroke:function(_f,_10){
+var s=this.strokeStyle;
+if(s){
+_f.strokeStyle=s.color.toString();
+_f.lineWidth=s.width;
+_f.lineCap=s.cap;
+if(typeof s.join=="number"){
+_f.lineJoin="miter";
+_f.miterLimit=s.join;
+}else{
+_f.lineJoin=s.join;
+}
+if(_10){
+_f.stroke();
+}
+}else{
+if(!_10){
+_f.strokeStyle="rgba(0,0,0,0.0)";
+}
+}
+},getEventSource:function(){
+return null;
+},connect:function(){
+},disconnect:function(){
+}});
+var _12=function(_13,_14,_15){
+var old=_13.prototype[_14];
+_13.prototype[_14]=_15?function(){
+this.surface.makeDirty();
+old.apply(this,arguments);
+_15.call(this);
+return this;
+}:function(){
+this.surface.makeDirty();
+return old.apply(this,arguments);
+};
+};
+_12(g.Shape,"setTransform",function(){
+if(this.matrix){
+this.canvasTransform=g.decompose(this.matrix);
+}else{
+delete this.canvasTransform;
+}
+});
+_12(g.Shape,"setFill",function(){
+var fs=this.fillStyle,f;
+if(fs){
+if(typeof (fs)=="object"&&"type" in fs){
+var ctx=this.surface.rawNode.getContext("2d");
+switch(fs.type){
+case "linear":
+case "radial":
+f=fs.type=="linear"?ctx.createLinearGradient(fs.x1,fs.y1,fs.x2,fs.y2):ctx.createRadialGradient(fs.cx,fs.cy,0,fs.cx,fs.cy,fs.r);
+dojo.forEach(fs.colors,function(_1a){
+f.addColorStop(_1a.offset,g.normalizeColor(_1a.color).toString());
+});
+break;
+case "pattern":
+var img=new Image(fs.width,fs.height);
+this.surface.downloadImage(img,fs.src);
+this.canvasFillImage=img;
+}
+}else{
+f=fs.toString();
+}
+this.canvasFill=f;
+}else{
+delete this.canvasFill;
+}
+});
+_12(g.Shape,"setStroke");
+_12(g.Shape,"setShape");
+dojo.declare("dojox.gfx.Group",g.Shape,{constructor:function(){
+gs.Container._init.call(this);
+},_render:function(ctx){
+ctx.save();
+this._renderTransform(ctx);
+this._renderFill(ctx);
+this._renderStroke(ctx);
+for(var i=0;i<this.children.length;++i){
+this.children[i]._render(ctx);
+}
+ctx.restore();
+}});
+dojo.declare("dojox.gfx.Rect",gs.Rect,{_renderShape:function(ctx){
+var s=this.shape,r=Math.min(s.r,s.height/2,s.width/2),xl=s.x,xr=xl+s.width,yt=s.y,yb=yt+s.height,xl2=xl+r,xr2=xr-r,yt2=yt+r,yb2=yb-r;
+ctx.beginPath();
+ctx.moveTo(xl2,yt);
+if(r){
+ctx.arc(xr2,yt2,r,-_8,0,false);
+ctx.arc(xr2,yb2,r,0,_8,false);
+ctx.arc(xl2,yb2,r,_8,pi,false);
+ctx.arc(xl2,yt2,r,pi,_8,false);
+}else{
+ctx.lineTo(xr2,yt);
+ctx.lineTo(xr,yb2);
+ctx.lineTo(xl2,yb);
+ctx.lineTo(xl,yt2);
+}
+ctx.closePath();
+}});
+var _29=[];
+(function(){
+var u=ga.curvePI4;
+_29.push(u.s,u.c1,u.c2,u.e);
+for(var a=45;a<360;a+=45){
+var r=m.rotateg(a);
+_29.push(mp(r,u.c1),mp(r,u.c2),mp(r,u.e));
+}
+})();
+dojo.declare("dojox.gfx.Ellipse",gs.Ellipse,{setShape:function(){
+g.Ellipse.superclass.setShape.apply(this,arguments);
+var s=this.shape,t,c1,c2,r=[],M=m.normalize([m.translate(s.cx,s.cy),m.scale(s.rx,s.ry)]);
+t=mp(M,_29[0]);
+r.push([t.x,t.y]);
+for(var i=1;i<_29.length;i+=3){
+c1=mp(M,_29[i]);
+c2=mp(M,_29[i+1]);
+t=mp(M,_29[i+2]);
+r.push([c1.x,c1.y,c2.x,c2.y,t.x,t.y]);
+}
+this.canvasEllipse=r;
+return this;
+},_renderShape:function(ctx){
+var r=this.canvasEllipse;
+ctx.beginPath();
+ctx.moveTo.apply(ctx,r[0]);
+for(var i=1;i<r.length;++i){
+ctx.bezierCurveTo.apply(ctx,r[i]);
+}
+ctx.closePath();
+}});
+dojo.declare("dojox.gfx.Circle",gs.Circle,{_renderShape:function(ctx){
+var s=this.shape;
+ctx.beginPath();
+ctx.arc(s.cx,s.cy,s.r,0,_7,1);
+}});
+dojo.declare("dojox.gfx.Line",gs.Line,{_renderShape:function(ctx){
+var s=this.shape;
+ctx.beginPath();
+ctx.moveTo(s.x1,s.y1);
+ctx.lineTo(s.x2,s.y2);
+}});
+dojo.declare("dojox.gfx.Polyline",gs.Polyline,{setShape:function(){
+g.Polyline.superclass.setShape.apply(this,arguments);
+var p=this.shape.points,f=p[0],r=[],c,i;
+if(p.length){
+if(typeof f=="number"){
+r.push(f,p[1]);
+i=2;
+}else{
+r.push(f.x,f.y);
+i=1;
+}
+for(;i<p.length;++i){
+c=p[i];
+if(typeof c=="number"){
+r.push(c,p[++i]);
+}else{
+r.push(c.x,c.y);
+}
+}
+}
+this.canvasPolyline=r;
+return this;
+},_renderShape:function(ctx){
+var p=this.canvasPolyline;
+if(p.length){
+ctx.beginPath();
+ctx.moveTo(p[0],p[1]);
+for(var i=2;i<p.length;i+=2){
+ctx.lineTo(p[i],p[i+1]);
+}
+}
+}});
+dojo.declare("dojox.gfx.Image",gs.Image,{setShape:function(){
+g.Image.superclass.setShape.apply(this,arguments);
+var img=new Image();
+this.surface.downloadImage(img,this.shape.src);
+this.canvasImage=img;
+return this;
+},_renderShape:function(ctx){
+var s=this.shape;
+ctx.drawImage(this.canvasImage,s.x,s.y,s.width,s.height);
+}});
+dojo.declare("dojox.gfx.Text",gs.Text,{_renderShape:function(ctx){
+var s=this.shape;
+}});
+_12(g.Text,"setFont");
+var _48={M:"_moveToA",m:"_moveToR",L:"_lineToA",l:"_lineToR",H:"_hLineToA",h:"_hLineToR",V:"_vLineToA",v:"_vLineToR",C:"_curveToA",c:"_curveToR",S:"_smoothCurveToA",s:"_smoothCurveToR",Q:"_qCurveToA",q:"_qCurveToR",T:"_qSmoothCurveToA",t:"_qSmoothCurveToR",A:"_arcTo",a:"_arcTo",Z:"_closePath",z:"_closePath"};
+dojo.declare("dojox.gfx.Path",g.path.Path,{constructor:function(){
+this.lastControl={};
+},setShape:function(){
+this.canvasPath=[];
+return g.Path.superclass.setShape.apply(this,arguments);
+},_updateWithSegment:function(_49){
+var _4a=dojo.clone(this.last);
+this[_48[_49.action]](this.canvasPath,_49.action,_49.args);
+this.last=_4a;
+g.Path.superclass._updateWithSegment.apply(this,arguments);
+},_renderShape:function(ctx){
+var r=this.canvasPath;
+ctx.beginPath();
+for(var i=0;i<r.length;i+=2){
+ctx[r[i]].apply(ctx,r[i+1]);
+}
+},_moveToA:function(_4e,_4f,_50){
+_4e.push("moveTo",[_50[0],_50[1]]);
+for(var i=2;i<_50.length;i+=2){
+_4e.push("lineTo",[_50[i],_50[i+1]]);
+}
+this.last.x=_50[_50.length-2];
+this.last.y=_50[_50.length-1];
+this.lastControl={};
+},_moveToR:function(_52,_53,_54){
+if("x" in this.last){
+_52.push("moveTo",[this.last.x+=_54[0],this.last.y+=_54[1]]);
+}else{
+_52.push("moveTo",[this.last.x=_54[0],this.last.y=_54[1]]);
+}
+for(var i=2;i<_54.length;i+=2){
+_52.push("lineTo",[this.last.x+=_54[i],this.last.y+=_54[i+1]]);
+}
+this.lastControl={};
+},_lineToA:function(_56,_57,_58){
+for(var i=0;i<_58.length;i+=2){
+_56.push("lineTo",[_58[i],_58[i+1]]);
+}
+this.last.x=_58[_58.length-2];
+this.last.y=_58[_58.length-1];
+this.lastControl={};
+},_lineToR:function(_5a,_5b,_5c){
+for(var i=0;i<_5c.length;i+=2){
+_5a.push("lineTo",[this.last.x+=_5c[i],this.last.y+=_5c[i+1]]);
+}
+this.lastControl={};
+},_hLineToA:function(_5e,_5f,_60){
+for(var i=0;i<_60.length;++i){
+_5e.push("lineTo",[_60[i],this.last.y]);
+}
+this.last.x=_60[_60.length-1];
+this.lastControl={};
+},_hLineToR:function(_62,_63,_64){
+for(var i=0;i<_64.length;++i){
+_62.push("lineTo",[this.last.x+=_64[i],this.last.y]);
+}
+this.lastControl={};
+},_vLineToA:function(_66,_67,_68){
+for(var i=0;i<_68.length;++i){
+_66.push("lineTo",[this.last.x,_68[i]]);
+}
+this.last.y=_68[_68.length-1];
+this.lastControl={};
+},_vLineToR:function(_6a,_6b,_6c){
+for(var i=0;i<_6c.length;++i){
+_6a.push("lineTo",[this.last.x,this.last.y+=_6c[i]]);
+}
+this.lastControl={};
+},_curveToA:function(_6e,_6f,_70){
+for(var i=0;i<_70.length;i+=6){
+_6e.push("bezierCurveTo",_70.slice(i,i+6));
+}
+this.last.x=_70[_70.length-2];
+this.last.y=_70[_70.length-1];
+this.lastControl.x=_70[_70.length-4];
+this.lastControl.y=_70[_70.length-3];
+this.lastControl.type="C";
+},_curveToR:function(_72,_73,_74){
+for(var i=0;i<_74.length;i+=6){
+_72.push("bezierCurveTo",[this.last.x+_74[i],this.last.y+_74[i+1],this.lastControl.x=this.last.x+_74[i+2],this.lastControl.y=this.last.y+_74[i+3],this.last.x+_74[i+4],this.last.y+_74[i+5]]);
+this.last.x+=_74[i+4];
+this.last.y+=_74[i+5];
+}
+this.lastControl.type="C";
+},_smoothCurveToA:function(_76,_77,_78){
+for(var i=0;i<_78.length;i+=4){
+var _7a=this.lastControl.type=="C";
+_76.push("bezierCurveTo",[_7a?2*this.last.x-this.lastControl.x:this.last.x,_7a?2*this.last.y-this.lastControl.y:this.last.y,_78[i],_78[i+1],_78[i+2],_78[i+3]]);
+this.lastControl.x=_78[i];
+this.lastControl.y=_78[i+1];
+this.lastControl.type="C";
+}
+this.last.x=_78[_78.length-2];
+this.last.y=_78[_78.length-1];
+},_smoothCurveToR:function(_7b,_7c,_7d){
+for(var i=0;i<_7d.length;i+=4){
+var _7f=this.lastControl.type=="C";
+_7b.push("bezierCurveTo",[_7f?2*this.last.x-this.lastControl.x:this.last.x,_7f?2*this.last.y-this.lastControl.y:this.last.y,this.last.x+_7d[i],this.last.y+_7d[i+1],this.last.x+_7d[i+2],this.last.y+_7d[i+3]]);
+this.lastControl.x=this.last.x+_7d[i];
+this.lastControl.y=this.last.y+_7d[i+1];
+this.lastControl.type="C";
+this.last.x+=_7d[i+2];
+this.last.y+=_7d[i+3];
+}
+},_qCurveToA:function(_80,_81,_82){
+for(var i=0;i<_82.length;i+=4){
+_80.push("quadraticCurveTo",_82.slice(i,i+4));
+}
+this.last.x=_82[_82.length-2];
+this.last.y=_82[_82.length-1];
+this.lastControl.x=_82[_82.length-4];
+this.lastControl.y=_82[_82.length-3];
+this.lastControl.type="Q";
+},_qCurveToR:function(_84,_85,_86){
+for(var i=0;i<_86.length;i+=4){
+_84.push("quadraticCurveTo",[this.lastControl.x=this.last.x+_86[i],this.lastControl.y=this.last.y+_86[i+1],this.last.x+_86[i+2],this.last.y+_86[i+3]]);
+this.last.x+=_86[i+2];
+this.last.y+=_86[i+3];
+}
+this.lastControl.type="Q";
+},_qSmoothCurveToA:function(_88,_89,_8a){
+for(var i=0;i<_8a.length;i+=2){
+var _8c=this.lastControl.type=="Q";
+_88.push("quadraticCurveTo",[this.lastControl.x=_8c?2*this.last.x-this.lastControl.x:this.last.x,this.lastControl.y=_8c?2*this.last.y-this.lastControl.y:this.last.y,_8a[i],_8a[i+1]]);
+this.lastControl.type="Q";
+}
+this.last.x=_8a[_8a.length-2];
+this.last.y=_8a[_8a.length-1];
+},_qSmoothCurveToR:function(_8d,_8e,_8f){
+for(var i=0;i<_8f.length;i+=2){
+var _91=this.lastControl.type=="Q";
+_8d.push("quadraticCurveTo",[this.lastControl.x=_91?2*this.last.x-this.lastControl.x:this.last.x,this.lastControl.y=_91?2*this.last.y-this.lastControl.y:this.last.y,this.last.x+_8f[i],this.last.y+_8f[i+1]]);
+this.lastControl.type="Q";
+this.last.x+=_8f[i];
+this.last.y+=_8f[i+1];
+}
+},_arcTo:function(_92,_93,_94){
+var _95=_93=="a";
+for(var i=0;i<_94.length;i+=7){
+var x1=_94[i+5],y1=_94[i+6];
+if(_95){
+x1+=this.last.x;
+y1+=this.last.y;
+}
+var _99=ga.arcAsBezier(this.last,_94[i],_94[i+1],_94[i+2],_94[i+3]?1:0,_94[i+4]?1:0,x1,y1);
+dojo.forEach(_99,function(p){
+_92.push("bezierCurveTo",p);
+});
+this.last.x=x1;
+this.last.y=y1;
+}
+this.lastControl={};
+},_closePath:function(_9b,_9c,_9d){
+_9b.push("closePath",[]);
+this.lastControl={};
+}});
+dojo.forEach(["moveTo","lineTo","hLineTo","vLineTo","curveTo","smoothCurveTo","qCurveTo","qSmoothCurveTo","arcTo","closePath"],function(_9e){
+_12(g.Path,_9e);
+});
+dojo.declare("dojox.gfx.TextPath",g.path.TextPath,{_renderShape:function(ctx){
+var s=this.shape;
+}});
+dojo.declare("dojox.gfx.Surface",gs.Surface,{constructor:function(){
+gs.Container._init.call(this);
+this.pendingImageCount=0;
+this.makeDirty();
+},setDimensions:function(_a1,_a2){
+this.width=g.normalizedLength(_a1);
+this.height=g.normalizedLength(_a2);
+if(!this.rawNode){
+return this;
+}
+this.rawNode.width=_a1;
+this.rawNode.height=_a2;
+this.makeDirty();
+return this;
+},getDimensions:function(){
+return this.rawNode?{width:this.rawNode.width,height:this.rawNode.height}:null;
+},_render:function(){
+if(this.pendingImageCount){
+return;
+}
+var ctx=this.rawNode.getContext("2d");
+ctx.save();
+ctx.clearRect(0,0,this.rawNode.width,this.rawNode.height);
+for(var i=0;i<this.children.length;++i){
+this.children[i]._render(ctx);
+}
+ctx.restore();
+if("pendingRender" in this){
+clearTimeout(this.pendingRender);
+delete this.pendingRender;
+}
+},makeDirty:function(){
+if(!this.pendingImagesCount&&!("pendingRender" in this)){
+this.pendingRender=setTimeout(dojo.hitch(this,this._render),0);
+}
+},downloadImage:function(img,url){
+var _a7=dojo.hitch(this,this.onImageLoad);
+if(!this.pendingImageCount++&&"pendingRender" in this){
+clearTimeout(this.pendingRender);
+delete this.pendingRender;
+}
+img.onload=_a7;
+img.onerror=_a7;
+img.onabort=_a7;
+img.src=url;
+},onImageLoad:function(){
+if(!--this.pendingImageCount){
+this._render();
+}
+},getEventSource:function(){
+return null;
+},connect:function(){
+},disconnect:function(){
+}});
+g.createSurface=function(_a8,_a9,_aa){
+if(!_a9){
+_a9="100%";
+}
+if(!_aa){
+_aa="100%";
+}
+var s=new g.Surface(),p=dojo.byId(_a8),c=p.ownerDocument.createElement("canvas");
+c.width=_a9;
+c.height=_aa;
+p.appendChild(c);
+s.rawNode=c;
+s._parent=p;
+s.surface=s;
+return s;
+};
+var C=gs.Container,_af={add:function(_b0){
+this.surface.makeDirty();
+return C.add.apply(this,arguments);
+},remove:function(_b1,_b2){
+this.surface.makeDirty();
+return C.remove.apply(this,arguments);
+},clear:function(){
+this.surface.makeDirty();
+return C.clear.apply(this,arguments);
+},_moveChildToFront:function(_b3){
+this.surface.makeDirty();
+return C._moveChildToFront.apply(this,arguments);
+},_moveChildToBack:function(_b4){
+this.surface.makeDirty();
+return C._moveChildToBack.apply(this,arguments);
+}};
+dojo.mixin(gs.Creator,{createObject:function(_b5,_b6){
+var _b7=new _b5();
+_b7.surface=this.surface;
+_b7.setShape(_b6);
+this.add(_b7);
+return _b7;
+}});
+dojo.extend(g.Group,_af);
+dojo.extend(g.Group,gs.Creator);
+dojo.extend(g.Surface,_af);
+dojo.extend(g.Surface,gs.Creator);
+})();
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas_attach.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas_attach.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas_attach.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas_attach.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,12 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo.require("dojox.gfx.canvas");
+dojo.experimental("dojox.gfx.canvas_attach");
+dojox.gfx.attachNode=function(){
+return null;
+};

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/canvas_attach.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/decompose.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/decompose.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/decompose.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/decompose.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,106 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.decompose"]){
+dojo._hasResource["dojox.gfx.decompose"]=true;
+dojo.provide("dojox.gfx.decompose");
+dojo.require("dojox.gfx.matrix");
+(function(){
+var m=dojox.gfx.matrix;
+var eq=function(a,b){
+return Math.abs(a-b)<=0.000001*(Math.abs(a)+Math.abs(b));
+};
+var _5=function(r1,m1,r2,m2){
+if(!isFinite(r1)){
+return r2;
+}else{
+if(!isFinite(r2)){
+return r1;
+}
+}
+m1=Math.abs(m1),m2=Math.abs(m2);
+return (m1*r1+m2*r2)/(m1+m2);
+};
+var _a=function(_b){
+var M=new m.Matrix2D(_b);
+return dojo.mixin(M,{dx:0,dy:0,xy:M.yx,yx:M.xy});
+};
+var _d=function(_e){
+return (_e.xx*_e.yy<0||_e.xy*_e.yx>0)?-1:1;
+};
+var _f=function(_10){
+var M=m.normalize(_10),b=-M.xx-M.yy,c=M.xx*M.yy-M.xy*M.yx,d=Math.sqrt(b*b-4*c),l1=-(b+(b<0?-d:d))/2,l2=c/l1,vx1=M.xy/(l1-M.xx),vy1=1,vx2=M.xy/(l2-M.xx),vy2=1;
+if(eq(l1,l2)){
+vx1=1,vy1=0,vx2=0,vy2=1;
+}
+if(!isFinite(vx1)){
+vx1=1,vy1=(l1-M.xx)/M.xy;
+if(!isFinite(vy1)){
+vx1=(l1-M.yy)/M.yx,vy1=1;
+if(!isFinite(vx1)){
+vx1=1,vy1=M.yx/(l1-M.yy);
+}
+}
+}
+if(!isFinite(vx2)){
+vx2=1,vy2=(l2-M.xx)/M.xy;
+if(!isFinite(vy2)){
+vx2=(l2-M.yy)/M.yx,vy2=1;
+if(!isFinite(vx2)){
+vx2=1,vy2=M.yx/(l2-M.yy);
+}
+}
+}
+var d1=Math.sqrt(vx1*vx1+vy1*vy1),d2=Math.sqrt(vx2*vx2+vy2*vy2);
+if(!isFinite(vx1/=d1)){
+vx1=0;
+}
+if(!isFinite(vy1/=d1)){
+vy1=0;
+}
+if(!isFinite(vx2/=d2)){
+vx2=0;
+}
+if(!isFinite(vy2/=d2)){
+vy2=0;
+}
+return {value1:l1,value2:l2,vector1:{x:vx1,y:vy1},vector2:{x:vx2,y:vy2}};
+};
+var _1d=function(M,_1f){
+var _20=_d(M),a=_1f.angle1=(Math.atan2(M.yx,M.yy)+Math.atan2(-_20*M.xy,_20*M.xx))/2,cos=Math.cos(a),sin=Math.sin(a);
+_1f.sx=_5(M.xx/cos,cos,-M.xy/sin,sin);
+_1f.sy=_5(M.yy/cos,cos,M.yx/sin,sin);
+return _1f;
+};
+var _24=function(M,_26){
+var _27=_d(M),a=_26.angle2=(Math.atan2(_27*M.yx,_27*M.xx)+Math.atan2(-M.xy,M.yy))/2,cos=Math.cos(a),sin=Math.sin(a);
+_26.sx=_5(M.xx/cos,cos,M.yx/sin,sin);
+_26.sy=_5(M.yy/cos,cos,-M.xy/sin,sin);
+return _26;
+};
+dojox.gfx.decompose=function(_2b){
+var M=m.normalize(_2b),_2d={dx:M.dx,dy:M.dy,sx:1,sy:1,angle1:0,angle2:0};
+if(eq(M.xy,0)&&eq(M.yx,0)){
+return dojo.mixin(_2d,{sx:M.xx,sy:M.yy});
+}
+if(eq(M.xx*M.yx,-M.xy*M.yy)){
+return _1d(M,_2d);
+}
+if(eq(M.xx*M.xy,-M.yx*M.yy)){
+return _24(M,_2d);
+}
+var MT=_a(M),u=_f([M,MT]),v=_f([MT,M]),U=new m.Matrix2D({xx:u.vector1.x,xy:u.vector2.x,yx:u.vector1.y,yy:u.vector2.y}),VT=new m.Matrix2D({xx:v.vector1.x,xy:v.vector1.y,yx:v.vector2.x,yy:v.vector2.y}),S=new m.Matrix2D([m.invert(U),M,m.invert(VT)]);
+_1d(VT,_2d);
+S.xx*=_2d.sx;
+S.yy*=_2d.sy;
+_24(U,_2d);
+S.xx*=_2d.sx;
+S.yy*=_2d.sy;
+return dojo.mixin(_2d,{sx:S.xx,sy:S.yy});
+};
+})();
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/decompose.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/fx.js
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/fx.js?rev=755904&view=auto
==============================================================================
--- camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/fx.js (added)
+++ camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/fx.js Thu Mar 19 10:37:00 2009
@@ -0,0 +1,227 @@
+/*
+	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
+	Available via Academic Free License >= 2.1 OR the modified BSD license.
+	see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.gfx.fx"]){
+dojo._hasResource["dojox.gfx.fx"]=true;
+dojo.provide("dojox.gfx.fx");
+dojo.require("dojox.gfx.matrix");
+(function(){
+var d=dojo,g=dojox.gfx,m=g.matrix;
+var _4=function(_5,_6){
+this.start=_5,this.end=_6;
+};
+d.extend(_4,{getValue:function(r){
+return (this.end-this.start)*r+this.start;
+}});
+var _8=function(_9,_a,_b){
+this.start=_9,this.end=_a;
+this.unit=_b;
+};
+d.extend(_8,{getValue:function(r){
+return (this.end-this.start)*r+this.start+this.unit;
+}});
+var _d=function(_e,_f){
+this.start=_e,this.end=_f;
+this.temp=new dojo.Color();
+};
+d.extend(_d,{getValue:function(r){
+return d.blendColors(this.start,this.end,r,this.temp);
+}});
+var _11=function(_12){
+this.values=_12;
+this.length=_12.length;
+};
+d.extend(_11,{getValue:function(r){
+return this.values[Math.min(Math.floor(r*this.length),this.length-1)];
+}});
+var _14=function(_15,def){
+this.values=_15;
+this.def=def?def:{};
+};
+d.extend(_14,{getValue:function(r){
+var ret=dojo.clone(this.def);
+for(var i in this.values){
+ret[i]=this.values[i].getValue(r);
+}
+return ret;
+}});
+var _1a=function(_1b,_1c){
+this.stack=_1b;
+this.original=_1c;
+};
+d.extend(_1a,{getValue:function(r){
+var ret=[];
+dojo.forEach(this.stack,function(t){
+if(t instanceof m.Matrix2D){
+ret.push(t);
+return;
+}
+if(t.name=="original"&&this.original){
+ret.push(this.original);
+return;
+}
+if(!(t.name in m)){
+return;
+}
+var f=m[t.name];
+if(typeof f!="function"){
+ret.push(f);
+return;
+}
+var val=dojo.map(t.start,function(v,i){
+return (t.end[i]-v)*r+v;
+}),_24=f.apply(m,val);
+if(_24 instanceof m.Matrix2D){
+ret.push(_24);
+}
+},this);
+return ret;
+}});
+var _25=new d.Color(0,0,0,0);
+var _26=function(_27,obj,_29,def){
+if(_27.values){
+return new _11(_27.values);
+}
+var _2b,_2c,end;
+if(_27.start){
+_2c=g.normalizeColor(_27.start);
+}else{
+_2c=_2b=obj?(_29?obj[_29]:obj):def;
+}
+if(_27.end){
+end=g.normalizeColor(_27.end);
+}else{
+if(!_2b){
+_2b=obj?(_29?obj[_29]:obj):def;
+}
+end=_2b;
+}
+return new _d(_2c,end);
+};
+var _2e=function(_2f,obj,_31,def){
+if(_2f.values){
+return new _11(_2f.values);
+}
+var _33,_34,end;
+if(_2f.start){
+_34=_2f.start;
+}else{
+_34=_33=obj?obj[_31]:def;
+}
+if(_2f.end){
+end=_2f.end;
+}else{
+if(typeof _33!="number"){
+_33=obj?obj[_31]:def;
+}
+end=_33;
+}
+return new _4(_34,end);
+};
+g.fx.animateStroke=function(_36){
+if(!_36.easing){
+_36.easing=d._defaultEasing;
+}
+var _37=new d._Animation(_36),_38=_36.shape,_39;
+d.connect(_37,"beforeBegin",_37,function(){
+_39=_38.getStroke();
+var _3a=_36.color,_3b={},_3c,_3d,end;
+if(_3a){
+_3b.color=_26(_3a,_39,"color",_25);
+}
+_3a=_36.style;
+if(_3a&&_3a.values){
+_3b.style=new _11(_3a.values);
+}
+_3a=_36.width;
+if(_3a){
+_3b.width=_2e(_3a,_39,"width",1);
+}
+_3a=_36.cap;
+if(_3a&&_3a.values){
+_3b.cap=new _11(_3a.values);
+}
+_3a=_36.join;
+if(_3a){
+if(_3a.values){
+_3b.join=new _11(_3a.values);
+}else{
+_3d=_3a.start?_3a.start:(_39&&_39.join||0);
+end=_3a.end?_3a.end:(_39&&_39.join||0);
+if(typeof _3d=="number"&&typeof end=="number"){
+_3b.join=new _4(_3d,end);
+}
+}
+}
+this.curve=new _14(_3b,_39);
+});
+d.connect(_37,"onAnimate",_38,"setStroke");
+return _37;
+};
+g.fx.animateFill=function(_3f){
+if(!_3f.easing){
+_3f.easing=d._defaultEasing;
+}
+var _40=new d._Animation(_3f),_41=_3f.shape,_42;
+d.connect(_40,"beforeBegin",_40,function(){
+_42=_41.getFill();
+var _43=_3f.color,_44={};
+if(_43){
+this.curve=_26(_43,_42,"",_25);
+}
+});
+d.connect(_40,"onAnimate",_41,"setFill");
+return _40;
+};
+g.fx.animateFont=function(_45){
+if(!_45.easing){
+_45.easing=d._defaultEasing;
+}
+var _46=new d._Animation(_45),_47=_45.shape,_48;
+d.connect(_46,"beforeBegin",_46,function(){
+_48=_47.getFont();
+var _49=_45.style,_4a={},_4b,_4c,end;
+if(_49&&_49.values){
+_4a.style=new _11(_49.values);
+}
+_49=_45.variant;
+if(_49&&_49.values){
+_4a.variant=new _11(_49.values);
+}
+_49=_45.weight;
+if(_49&&_49.values){
+_4a.weight=new _11(_49.values);
+}
+_49=_45.family;
+if(_49&&_49.values){
+_4a.family=new _11(_49.values);
+}
+_49=_45.size;
+if(_49&&_49.unit){
+_4c=parseFloat(_49.start?_49.start:(_47.font&&_47.font.size||"0"));
+end=parseFloat(_49.end?_49.end:(_47.font&&_47.font.size||"0"));
+_4a.size=new _8(_4c,end,_49.unit);
+}
+this.curve=new _14(_4a,_48);
+});
+d.connect(_46,"onAnimate",_47,"setFont");
+return _46;
+};
+g.fx.animateTransform=function(_4e){
+if(!_4e.easing){
+_4e.easing=d._defaultEasing;
+}
+var _4f=new d._Animation(_4e),_50=_4e.shape,_51;
+d.connect(_4f,"beforeBegin",_4f,function(){
+_51=_50.getTransform();
+this.curve=new _1a(_4e.transform,_51);
+});
+d.connect(_4f,"onAnimate",_50,"setTransform");
+return _4f;
+};
+})();
+}

Propchange: camel/trunk/components/camel-web/src/main/webapp/js/dojox/gfx/fx.js
------------------------------------------------------------------------------
    svn:eol-style = native