charts-debug.js revision e393eced613f9b4a5fb6bdd461d0e0bf5064d5ec
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Specifies a bitmap fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifes a solid fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Specifies a gradient fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._gradientId = "lg" + Math.round(100000 * Math.random());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Removes all nodes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp destroy: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears the graphics object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp clear: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a bezier curve
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.path.indexOf("C") < 0 || this._pathType !== "C")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.path += Math.round(cp1x) + ", " + Math.round(cp1y) + ", " + Math.round(cp2x) + ", " + Math.round(cp2y) + ", " + x + ", " + y + " ";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a quadratic bezier curve
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.path.indexOf("Q") < 0 || this._pathType !== "Q")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.path += Math.round(cpx) + " " + Math.round(cpy) + " " + Math.round(x) + " " + Math.round(y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a circle
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawCircle: function(x, y, r) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._x = x - r;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._y = y - r;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws an ellipse
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawEllipse: function(x, y, w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a rectangle
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawRect: function(x, y, w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.moveTo(x, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x + w, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x + w, y + h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x, y + h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a rectangle with rounded corners
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.quadraticCurveTo(x + w, y + h, x + w, y + h - eh);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a wedge.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param x x component of the wedge's center point
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param y y component of the wedge's center point
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param startAngle starting angle in degrees
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param arc sweep of the wedge. Negative values draw clockwise.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param yRadius [optional] y radius for wedge.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawWedge: function(x, y, startAngle, arc, radius, yRadius)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.path = this._getWedgePath({x:x, y:y, startAngle:startAngle, arc:arc, radius:radius, yRadius:yRadius});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp end: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Not implemented
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifies a gradient to use for the stroke when drawing lines.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.log('lineGradientStyle not implemented', 'warn', 'graphics-canvas');
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifies a line style used for subsequent calls to drawing methods
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp lineStyle: function(thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._strokeAlpha = Y.Lang.isNumber(alpha) ? alpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a line segment using the current line style from the current drawing position to the specified x and y coordinates.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (typeof point1 === 'string' || typeof point1 === 'number') {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.path.indexOf("L") < 0 || this._pathType !== "L")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Moves the current drawing position to specified x and y coordinates.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp moveTo: function(x, y) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Generates a path string for a wedge shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // limit sweep to reasonable numbers
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // First we calculate how many segments are needed
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // for a smooth arc.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // Now calculate the sweep of each segment.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // The math requires radians rather than degrees. To convert from degrees
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // use the formula (degrees/180)*Math.PI to get radians.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // convert angle startAngle to radians
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // draw a line from the center to the start of the curve
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ax = x + Math.cos(startAngle / 180 * Math.PI) * radius;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ay = y + Math.sin(startAngle / 180 * Math.PI) * yRadius;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp path += " L" + Math.round(ax) + ", " + Math.round(ay);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < segs; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cx = x + Math.cos(angleMid) * (radius / Math.cos(theta / 2));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cy = y + Math.sin(angleMid) * (yRadius / Math.cos(theta / 2));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp path += Math.round(cx) + " " + Math.round(cy) + " " + Math.round(bx) + " " + Math.round(by) + " ";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the size of the graphics object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp setSize: function(w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Updates the size of the graphics object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _trackSize: function(w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (w > this._width) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (h > this._height) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp setPosition: function(x, y)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var w = parentNode.get("width") || parentNode.get("offsetWidth"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp h = parentNode.get("height") || parentNode.get("offsetHeight");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears the properties
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _initProps: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._shape = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillColor = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillProps = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillAlphas = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillColors = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillType = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillRatios = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillWidth = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillHeight = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fill = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._stroked = false;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._pathType = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears path properties
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._shape = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._shapeType = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._pathType = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Completes a vml shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i in this._attributes)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp shape.setAttribute("stroke-width", this._strokeWeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp shape.setAttribute("stroke-opacity", this._strokeAlpha);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp shape.setAttribute("fill", "url(#" + this._gradientId + ")");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns ths actual fill object to be used in a drawing or shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _getFill: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case 'linear':
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case 'radial':
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //fill = this._getRadialGradient('fill');
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case 'bitmap':
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //fill = this._bitmapFill;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a linear gradient fill
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(r > 0 && r < 90)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp else if(r > 90 && r < 180)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp r = 90 + ((r-90) * w/h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp tanRadians = parseFloat(parseFloat(Math.tan(r * radCon)).toFixed(8));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(r < 180)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("spreadMethod", "pad");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("x1", Math.round(100 * x1/w) + "%");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("y1", Math.round(100 * y1/h) + "%");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("x2", Math.round(100 * x2/w) + "%");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("y2", Math.round(100 * y2/h) + "%");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fill.setAttribute("gradientTransform", "rotate(" + r + ")");//," + (w/2) + ", " + (h/2) + ")");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i = 0; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a group element
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _createGraphics: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a vml node.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var node = document.createElementNS("http://www.w3.org/2000/svg", "svg:" + type),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(type !== "defs" && type !== "stop" && type !== "linearGradient")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a shape.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Specifies a bitmap fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifes a solid fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Specifies a gradient fill used by subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) for the object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(;i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears the graphics object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp clear: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Removes all nodes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp destroy: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a bezier curve
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._path += ' c ' + Math.round(cp1x) + ", " + Math.round(cp1y) + ", " + Math.round(cp2x) + ", " + Math.round(cp2y) + ", " + x + ", " + y;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a quadratic bezier curve
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._path += ' qb ' + cpx + ", " + cpy + ", " + x + ", " + y;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a circle
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawCircle: function(x, y, r) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._x = x - r;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._y = y - r;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //this._path += ' ar ' + this._x + ", " + this._y + ", " + (this._x + this._width) + ", " + (this._y + this._height) + ", " + this._x + " " + this._y + ", " + this._x + " " + this._y;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws an ellipse
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawEllipse: function(x, y, w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //this._path += ' ar ' + this._x + ", " + this._y + ", " + (this._x + this._width) + ", " + (this._y + this._height) + ", " + this._x + " " + this._y + ", " + this._x + " " + this._y;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a rectangle
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawRect: function(x, y, w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.moveTo(x, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x + w, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x + w, y + h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x, y + h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.lineTo(x, y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a rectangle with rounded corners
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.quadraticCurveTo(x + w, y + h, x + w, y + h - eh);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawWedge: function(x, y, startAngle, arc, radius, yRadius)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._path += this._getWedgePath({x:x, y:y, startAngle:startAngle, arc:arc, radius:radius, yRadius:yRadius});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Generates a path string for a wedge shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp path = " m " + x + " " + y + " ae " + x + " " + y + " " + radius + " " + yRadius + " " + startAngle + " " + arc;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp end: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Not implemented
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifies a gradient to use for the stroke when drawing lines.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.log('lineGradientStyle not implemented', 'warn', 'graphics-canvas');
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Specifies a line style used for subsequent calls to drawing methods
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp lineStyle: function(thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._strokeOpacity = Y.Lang.isNumber(alpha) ? alpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a line segment using the current line style from the current drawing position to the specified x and y coordinates.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (typeof point1 === 'string' || typeof point1 === 'number') {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._path += ' ' + Math.round(args[i][0]) + ', ' + Math.round(args[i][1]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Moves the current drawing position to specified x and y coordinates.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp moveTo: function(x, y) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._path += ' m ' + Math.round(x) + ', ' + Math.round(y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the size of the graphics object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp setSize: function(w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp w = Math.round(w);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp h = Math.round(h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp setPosition: function(x, y)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp x = Math.round(x);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp y = Math.round(y);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var w = Math.max(parentNode.offsetWidth || 0, this._canvasWidth),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp h = Math.max(parentNode.offsetHeight || 0, this._canvasHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to current vml shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Updates the size of the graphics object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _trackSize: function(w, h) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (w > this._width) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (h > this._height) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears the properties
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _initProps: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillColor = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fillProps = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._fill = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._stroked = false;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Clears path properties
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._shape = null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Completes a vml shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.setSize(w, h);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (this._fill) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(Y.Lang.isNumber(this._strokeOpacity) && this._strokeOpacity < 1)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns ths actual fill object to be used in a drawing or shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _getFill: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cx= Math.round( (this._gradientBox.width/2 - ((this._x - this._gradientBox.tx) * hyp/w))/(w * w/hyp) * 100);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cy = Math.round( (this._gradientBox.height/2 - ((this._y - this._gradientBox.ty) * hyp/h))/(h * h/hyp) * 100);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fillProps.focussize = (this._gradientBox.width/w)/10 + " " + (this._gradientBox.height/h)/10;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(;i < len; ++i) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a group element
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _createGraphics: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a vml node.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return document.createElement('<' + type + ' xmlns="urn:schemas-microsft.com:vml" class="vml' + type + '"/>');
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a shape.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlgroup", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlgroup", "display:inline-block", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlgroup", "zoom:1", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlshape", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlshape", "display:inline-block", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmloval", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmloval", "display:inline-block", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlrect", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlrect", "display:block", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlfill", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sheet.addRule(".vmlstroke", "behavior:url(#default#VML)", sheet.rules.length);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.pointerEvents = cfg.pointerEvents || this.pointerEvents;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node = this._createGraphicNode(this.nodetype, this.pointerEvents);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.border && this.border.weight && this.border.weight > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.border && this.border.weight && this.border.weight > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.border.alpha = Y.Lang.isNumber(borderAlpha) ? borderAlpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.border.linecap = this.border.linecap || "square";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.setAttribute("stroke-linecap", this.border.linecap);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.setAttribute("stroke-width", this.border.weight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.setAttribute("stroke-opacity", this.border.alpha);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.fill.type === "linear" || this.fill.type === "radial")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.fill.alpha = Y.Lang.isNumber(fillAlpha) ? fillAlpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp end: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp node.className.baseVal = Y.Lang.trim([node.className.baseVal, className].join(' '));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Type of shape
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a shape.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.width = cfg.width && cfg.width >= 0 ? cfg.width : this.width;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.height = cfg.height && cfg.height >= 0 ? cfg.height : this.height;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp else if(!this.node)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node = this.graphics._createGraphicNode(this.graphics._getNodeShapeType(this.type));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.border && this.border.weight && this.border.weight > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.style.width = Math.max(fillWidth, 0) + "px";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.style.height = Math.max(fillHeight, 0) + "px";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.border && this.border.weight && this.border.weight > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp borderAlpha = Y.Lang.isNumber(borderAlpha) ? borderAlpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp borderWeight = Y.Lang.isNumber(borderWeight) ? borderWeight : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.node.strokecolor = this.border.color || "#000000";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._strokeNode = this.graphics._createGraphicNode("stroke");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp else if(this._strokeNode)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this.fill.type === "linear" || this.fill.type === "radial")
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp fillAlpha = Y.Lang.isNumber(fillAlpha) ? fillAlpha : 1;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.fillnode = this.graphics._createGraphicNode("fill");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Hash of style properties for class
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._styles = this._styles || this._getDefaultStyles();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._styles;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The graphic in which the series will be rendered.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Storage for styles
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets multiple style properties on the instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @method _setStyles
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Object} styles Hash of styles to be applied.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Merges to object literals only overriding properties explicitly.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Object} newHash hash of properties to set
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Object} default hash of properties to be overwritten
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return {Object}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _mergeStyles: function(a, b)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(b.hasOwnProperty(key) && Y.Lang.isObject(value) && !Y.Lang.isArray(value))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Default style values.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.Axis = Y.Base.create("axis", Y.Widget, [Y.Renderer], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Handler for data changes.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp syncUI: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a <code>Graphic</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Returns the default style values for the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Y.merge(Y.Renderer.prototype._getDefaultStyles(), axisstyles);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if((hor && type == "widthChange") || (vert && type == "heightChange"))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Strategy for drawing the axis dependent upon the axis position.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Returns the correct _layout class instance to be used for drawing the
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "top" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "bottom" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "left" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "right" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Draws line based on start point, end point and line object.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineStyle(line.weight, line.color, line.alpha);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Basic logic for drawing an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _drawAxis: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp majorUnitDistance = this.getMajorUnitDistance(len, layoutLength, majorUnit);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("edgeOffset", this.getEdgeOffset(len, layoutLength) * 0.5);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.drawLine(lineStart, this.getLineEnd(tickPoint), styles.line);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.innerHTML = labelFunction.apply(labelFunctionScope, [this.getLabelByIndex(i, len), labelFormat]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp tickPoint = this.getNextPoint(tickPoint, majorUnitDistance);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp layout.positionLabel(this.get("labels")[i], this._tickPoints[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Collection of labels used in creating an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Collection of labels to be reused in creating an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Draws and positions a label based on its style properties.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(styles.hasOwnProperty(i) && !customStyles.hasOwnProperty(i))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a cache of labels for reuse.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Removes unused labels from the label cache
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates how to include tick length in the size calculation of an
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * axis. If set to true, the length of the tick is used to calculate
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * this size. If false, the offset of tick will be used.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicate the end point of the axis line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return {x:w, y:pt.y};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return {x:pt.x, y:h};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the distance between the first and last data points.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the first point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp np.y += this.get("height") - (padding.top + this.get("edgeOffset"));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the next majorUnit point.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the last point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the position of a point on the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Numeric data on a vertical axis is displayed from bottom to top.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Categorical and Timeline data is displayed from top to bottom.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp p = (h - (padding.top + padding.bottom)) - (point.y - padding.top);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The graphic in which the axis line and ticks will be rendered.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Contains the contents of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Direction of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance determined by the tick styles used to calculate the distance between the axis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * line in relation to the top of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance determined by the tick styles used to calculate the distance between the axis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * line in relation to the bottom of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance determined by the tick styles used to calculate the distance between the axis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * line in relation to the left of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance determined by the tick styles used to calculate the distance between the axis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * line in relation to the right side of the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._labels;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of points used for placement of labels and ticks along the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._tickPoints;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether the axis overlaps the graph. If an axis is the inner most axis on a given
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * position and the tick position is inside or cross, the axis will need to overlap the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Object which should have by the labelFunction
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Contains algorithms for rendering a left axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp LeftAxisLayout.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the length of the tick on either side of the axis line.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "inside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "outside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "cross":
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a tick
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the first point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the point for a label.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return {x:point.x - ar.get("leftTickOffset"), y:point.y};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(rotation=" + rot + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), label.offsetWidth));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp max = (cosRadians * label.offsetWidth) + (sinRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), max));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) + (label.offsetHeight * rot/90);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * (label.offsetHeight * 0.5));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) + (absRot/90 * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.left = (this.get("maxLabelSize") + leftOffset) + "px";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(labelAlpha * 100) + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString += 'progid:DXImageTransform.Microsoft.Matrix(M11=' + m11 + ' M12=' + m12 + ' M21=' + m21 + ' M22=' + m22 + ' sizingMethod="auto expand")';
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) + (sinRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset += (sinRadians * label.offsetWidth) - (cosRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.left = (this.get("maxLabelSize") + leftOffset) + "px";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.webkitTransform = "rotate(" + rot + "deg)";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the size and positions the content elements.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ttl = ar.get("leftTickOffset") + this.get("maxLabelSize") + style.margin.right;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Contains algorithms for rendering a right axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp RightAxisLayout.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the length of the tick on either side of the axis line.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "inside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "outside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "cross":
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the first point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the point for a label.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return {x:point.x + ar.get("rightTickOffset"), y:point.y};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(rotation=" + rot + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), label.offsetWidth));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp max = (cosRadians * label.offsetWidth) + (sinRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), max));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (cosRadians * (label.offsetHeight * 0.5));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * (label.offsetHeight * 0.5));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(labelAlpha * 100) + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString += 'progid:DXImageTransform.Microsoft.Matrix(M11=' + m11 + ' M12=' + m12 + ' M21=' + m21 + ' M22=' + m22 + ' sizingMethod="auto expand")';
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (cosRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.webkitTransform = "rotate(" + rot + "deg)";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the size and positions the content elements.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ttl = ar.get("rightTickOffset") + this.get("maxLabelSize") + style.margin.left;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Contains algorithms for rendering a bottom axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp BottomAxisLayout.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the length of the tick on either side of the axis line.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "inside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "outside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "cross":
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the first point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a tick
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the point for a label.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return {x:point.x, y:point.y + ar.get("bottomTickOffset")};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(rotation=" + rot + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), label.offsetHeight));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp max = (sinRadians * label.offsetWidth) + (cosRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), max));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Rotate and position labels.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= sinRadians * (label.offsetHeight * 0.5);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= sinRadians * (label.offsetHeight * 0.5);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(labelAlpha * 100) + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString += 'progid:DXImageTransform.Microsoft.Matrix(M11=' + m11 + ' M12=' + m12 + ' M21=' + m21 + ' M22=' + m22 + ' sizingMethod="auto expand")';
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) + (sinRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset += sinRadians * (label.offsetHeight * 0.6);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.webkitTransform = "rotate(" + rot + "deg)";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the size and positions the content elements.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Adjusts position for inner ticks.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cb.setStyle("marginTop", (0 - (tickLength * 0.5)) + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ttl = ar.get("bottomTickOffset") + this.get("maxLabelSize") + style.margin.top;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Contains algorithms for rendering a top axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp TopAxisLayout.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Sets the length of the tick on either side of the axis line.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "inside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "outside" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "cross":
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the coordinates for the first point on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a tick
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the point for a label.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(rotation=" + rot + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), label.offsetHeight));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp max = (sinRadians * label.offsetWidth) + (cosRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.set("maxLabelSize", Math.max(this.get("maxLabelSize"), max));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) + Math.min((sinRadians * label.offsetHeight), (rot/180 * label.offsetHeight));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * (label.offsetHeight));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= sinRadians * (label.offsetHeight * 0.5);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * (label.offsetHeight));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(labelAlpha * 100) + ")";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp filterString += 'progid:DXImageTransform.Microsoft.Matrix(M11=' + m11 + ' M12=' + m12 + ' M21=' + m21 + ' M22=' + m22 + ' sizingMethod="auto expand")';
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (sinRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp leftOffset -= (cosRadians * label.offsetWidth) - (sinRadians * (label.offsetHeight * 0.6));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topOffset -= (sinRadians * label.offsetWidth) + (cosRadians * label.offsetHeight);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp label.style.webkitTransform = "rotate(" + rot + "deg)";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Calculates the size and positions the content elements.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ar.get("contentBox").setStyle("top", labelSize + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp cb.setStyle("marginBottom", (0 - (tickLength * 0.5)) + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ttl = ar.get("topTickOffset") + this.get("maxLabelSize") + style.margin.bottom;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * BaseAxis is the base class for observable baseAxis classes.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates the BaseAxis instance and contains initialization data
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Object} config (optional) Configuration parameters for the Chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @class SWFWidget
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @constructor
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp bindUI: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("dataReady", Y.bind(this._dataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("dataUpdate", Y.bind(this._dataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("dataProviderChange", this._dataProviderChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("positionChange", this._positionChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("overlapGraphChange", this._updateHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("alwaysShowZeroChange", this._keyChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("roundingMethodChange", this._keyChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var keyCollection = this.get("keyCollection").concat(),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Constant used to generate unique id.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for type
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for maximum when autoMax is false.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for dataMaximum
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for minimum when autoMin is false.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for data
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for keys
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates that the axis has a data source and at least one
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Adds an array to the key hash.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param value Indicates what key to use in retrieving
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the array.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Returns an array of values for a given key.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates an array of data based on a key value.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Removes an array from the key hash.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param value Indicates what key to use in removing from
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the hash.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return Boolean
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a numeric value based of a key value and an index.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns an array of values based on an identifier key.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Updates the <code>dataMaximum</code> and <code>dataMinimum</code> values.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the total number of majorUnits that will appear on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Returns the distance between major units on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getLabelByIndex: function(i, l)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Hash of array identifed by a string value.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Indicates how to round unit values.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>niceNumber</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>auto</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>numeric value</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>null</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp *Returns the type of axis data
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li><code>time</code></li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li><code>numeric</code></li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li><code>category</code></li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._type;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Instance of <code>ChartDataProvider</code> that the class uses
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * to build its own data.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The maximum value contained in the <code>data</code> array. Used for
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <code>maximum</code> when <code>autoMax</code> is true.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The maximum value that will appear on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The minimum value contained in the <code>data</code> array. Used for
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <code>minimum</code> when <code>autoMin</code> is true.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The minimum value that will appear on an axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Determines whether the maximum is calculated or explicitly
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * set by the user.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Determines whether the minimum is calculated or explicitly
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * set by the user.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Array of axis data
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._data;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp NumericAxis.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether 0 should always be displayed.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Storage for alwaysShowZero
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._getNiceNumber(Math.ceil((max - min)/units));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp order = Math.ceil(Math.log(tempMajorUnit) * 0.4342944819032518),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp roundedDiff = Math.floor((roundedMajorUnit / 2 - tempMajorUnit) / (Math.pow(10,order-1)/2));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp tempMajorUnit = roundedMajorUnit/2 - roundedDiff*Math.pow(10,order-1)/2;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Determines the maximum and minimum values for the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //hloc values
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topTicks = Math.round( units / ((-1 * min)/max + 1) );
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(alwaysShowZero || max === 0 || max + roundingUnit > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //roundingUnit = Math.ceil((max - min)/units);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp topTicks = Math.round( units / ( (-1 * min) /max + 1) );
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //roundingUnit = Math.ceil((max - min)/units);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(alwaysShowZero || max === 0 || max + roundingUnit > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp else if(!isNaN(roundingMethod) && isFinite(roundingMethod))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp minRound = this._roundDownToNearest(min, roundingUnit);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Rounds a Number to the nearest multiple of an input. For example, by rounding
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * 16 to the nearest 10, you will receive 20. Similar to the built-in function Math.round().
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param numberToRound the number to round
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param nearest the number whose mutiple must be found
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return the rounded number
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var roundedNumber = Math.round(this._roundToPrecision(number / nearest, 10)) * nearest;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Rounds a Number <em>up</em> to the nearest multiple of an input. For example, by rounding
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * 16 up to the nearest 10, you will receive 20. Similar to the built-in function Math.ceil().
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param numberToRound the number to round up
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param nearest the number whose mutiple must be found
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return the rounded number
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Math.ceil(this._roundToPrecision(number / nearest, 10)) * nearest;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Rounds a Number <em>down</em> to the nearest multiple of an input. For example, by rounding
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * 16 down to the nearest 10, you will receive 10. Similar to the built-in function Math.floor().
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param numberToRound the number to round down
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param nearest the number whose mutiple must be found
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return the rounded number
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Math.floor(this._roundToPrecision(number / nearest, 10)) * nearest;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Rounds a number to a certain level of precision. Useful for limiting the number of
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * decimal places on a fractional number.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param number the input number to round.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param precision the number of decimal digits to keep
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return the rounded number, or the original input if no rounding is needed
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Math.round(decimalPlaces * number) / decimalPlaces;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp StackedAxis.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Determines the maximum and minimum values for the axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp TimeAxis.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function ()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Constant used to generate unique id.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (override)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp CategoryAxis.superclass.constructor.apply(this, arguments);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Constant used to generate unique id.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._dataMaximum = Math.max(this.get("data").length - 1, 0);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns an array of values based on an identifier key.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Utility class used for calculating curve points.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return {Object}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates an array of start, end and control points for splines.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // Too few points, need at least two
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp // Special case, the Bezier should be a straight line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (l === 1)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[0].ctrlx1 = (2.0*xcoords[0] + xcoords[1])/3.0;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[0].ctrly2 = (2.0*ycoords[0] + ycoords[1])/3.0;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[0].ctrlx2 = 2.0*outpoints[0].ctrlx1 - xcoords[0];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[0].ctrly2 = 2.0*outpoints[0].ctrly1 - ycoords[0];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for (; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints.push({startx: Math.round(xcoords[i]), starty: Math.round(ycoords[i]), endx: Math.round(xcoords[i+1]), endy: Math.round(ycoords[i+1])});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for (i = 0; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if (i < l-1)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[i].ctrlx2 = Math.round(2*xcoords[i+1] - xvals[i+1]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[i].ctrly2 = Math.round(2*ycoords[i+1] - yvals[i+1]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[i].ctrlx2 = Math.round((xcoords[l] + xvals[l-1])/2);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp outpoints[i].ctrly2 = Math.round((ycoords[l] + yvals[l-1])/2);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for (; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for (i = 1; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Methods used for creating stacked series
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Adjusts coordinate values for stacked series.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevXCoords = seriesCollection[order - 1].get("xcoords").concat();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevYCoords = seriesCollection[order - 1].get("ycoords").concat();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippfunction Lines(){}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp len = direction === "vertical" ? ycoords.length : xcoords.length,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp lc = styles.color || this._getDefaultColor(this.get("graphOrder"), "line"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp connectDiscontinuousPoints = styles.connectDiscontinuousPoints,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp discontinuousDashLength = styles.discontinuousDashLength,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.drawDashedLine(lastValidX, lastValidY, nextX, nextY,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.drawDashedLine(lastValidX, lastValidY, nextX, nextY,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp curvecoords = this.getCurveControlPoints(xcoords, ycoords),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp color = styles.color || this._getDefaultColor(this.get("graphOrder"), "line");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; i = ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws a dashed line between two points.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param xStart The x position of the start of the line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param yStart The y position of the start of the line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param xEnd The x position of the end of the line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param yEnd The y position of the end of the line
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param dashSize the size of dashes, in pixels
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param gapSize the size of gaps between dashes, in pixels
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp drawDashedLine: function(xStart, yStart, xEnd, yEnd, dashSize, gapSize)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp delta = Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp segmentCount = Math.floor(Math.abs(delta / segmentLength)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineTo(xCurrent + Math.cos(radians) * dashSize, yCurrent + Math.sin(radians) * dashSize);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp delta = Math.sqrt((xEnd - xCurrent) * (xEnd - xCurrent) + (yEnd - yCurrent) * (yEnd - yCurrent));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineTo(xCurrent + Math.cos(radians) * dashSize, yCurrent + Math.sin(radians) * dashSize);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineTo(xCurrent + Math.cos(radians) * delta, yCurrent + Math.sin(radians) * delta);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var defaults = this._defaults || this._getAreaDefaults();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp color = styles.color || this._getDefaultColor(this.get("graphOrder"), "slice");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; i = ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp curvecoords = this.getCurveControlPoints(xcoords, ycoords),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp color = styles.color || this._getDefaultColor(this.get("graphOrder"), "slice");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; i = ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp color = styles.color || this._getDefaultColor(this.get("graphOrder"), "slice");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp curvecoords = this.getCurveControlPoints(xcoords, ycoords);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; i = ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevXCoords = seriesCollection[order - 1].get("xcoords").concat().reverse();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevYCoords = seriesCollection[order - 1].get("ycoords").concat().reverse();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp curvecoords = this.getCurveControlPoints(prevXCoords, prevYCoords);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; i = ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineTo(this._leftOrigin, ycoords[ycoords.length-1]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.lineTo(xcoords[xcoords.length-1], this._bottomOrigin);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Concatenates coordinate array with the correct coordinates for closing an area stack.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevXCoords = seriesCollection[order - 1].get("xcoords").concat();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp prevYCoords = seriesCollection[order - 1].get("ycoords").concat();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp allXCoords = allXCoords.concat(prevXCoords.concat().reverse());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp allYCoords = allYCoords.concat(prevYCoords.concat().reverse());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._markers;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!this.get("xcoords") || this.get("xcoords").length < 1)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!top || !left || top === undefined || left === undefined || top == "undefined" || left == "undefined" || isNaN(top) || isNaN(left))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp style.border.colors = borderColors[i % borderColors.length];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of markers to be used in the series.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of markers to be re-used on a series redraw.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Creates a marker based on its style properties.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graphic.node.setAttribute("id", "markerParent_" + order + "_" + index);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp marker.node.setAttribute("id", "series_" + order + "_" + index);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a cache of markers for reuse.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Removes unused markers from the marker cache
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.fill.color = this._getItemColor(markerStyles.fill.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.border.color = this._getItemColor(markerStyles.border.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @protected
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description parses a color from an array.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Y.Renderer.prototype._setStyles.apply(this, [val]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp val.marker.over = this._mergeStyles(val.marker.over, val.marker);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp val.marker.down = this._mergeStyles(val.marker.down, val.marker);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns marker state based on event type
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "mouseout" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "mouseover" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "mouseup" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "mousedown" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < seriesLen; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesSize += renderer.get("styles").marker[setSizeKey];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp config = this._getMarkerDimensions(xcoords[i], ycoords[i], calculatedSize, offset);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp style.border.colors = borderColors[i % borderColors.length];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultFillColors: ["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp render: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp xAxis.after("dataReady", Y.bind(this._xDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp xAxis.after("dataUpdate", Y.bind(this._xDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp yAxis.after("dataReady", Y.bind(this._yDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp yAxis.after("dataUpdate", Y.bind(this._yDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp xAxis.after("dataReady", Y.bind(this._xDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp xAxis.after("dataUpdate", Y.bind(this._xDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp yAxis.after("dataReady", Y.bind(this._yDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp yAxis.after("dataUpdate", Y.bind(this._yDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Constant used to generate unique id.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (protected)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Handles updating the graph when the x < code>Axis</code> values
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (protected)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Handles updating the chart when the y <code>Axis</code> values
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return false;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return false;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return true;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if((this.get("xData") && this.get("yData")) || this._updateAxisData())
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a <code>Graphic</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("graphic").render(this.get("graph").get("contentBox"));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp dataWidth = w - (leftPadding + padding.right + xOffset),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp dataHeight = h - (topPadding + padding.bottom + yOffset),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Assuming a vertical graph has a range/category for its vertical axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._leftOrigin = Math.round(((0 - xMin) * xScaleFactor) + leftPadding + xOffset);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._bottomOrigin = Math.round((dataHeight + topPadding + yOffset) - (0 - yMin) * yScaleFactor);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for (; i < dataLength; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp nextX = Math.round((((xData[i] - xMin) * xScaleFactor) + leftPadding + xOffset));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp nextY = Math.round(((dataHeight + topPadding + yOffset) - (yData[i] - yMin) * yScaleFactor));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp xMarkerPlane.push({start:nextX - xMarkerPlaneOffset, end: nextX + xMarkerPlaneOffset});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp yMarkerPlane.push({start:nextY - yMarkerPlaneOffset, end: nextY + yMarkerPlaneOffset});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (override)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if((isFinite(w) && isFinite(h) && w > 0 && h > 0) && ((this.get("xData") && this.get("yData")) || this._updateAxisData()))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return Default styles for the widget
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultLineColors:["#426ab3", "#d09b2c", "#000000", "#b82837", "#b384b5", "#ff7200", "#779de3", "#cbc8ba", "#7ed7a6", "#007a6c"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultFillColors:["#6084d0", "#eeb647", "#6c6b5f", "#d6484f", "#ce9ed1", "#ff9f3b", "#93b7ff", "#e0ddd0", "#94ecba", "#309687"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultBorderColors:["#205096", "#b38206", "#000000", "#94001e", "#9d6fa0", "#e55b00", "#5e85c9", "#adab9e", "#6ac291", "#006457"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultSliceColors: ["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Colors used if style colors are not specified
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this.get("direction") == "vertical" ? this.get("yDisplayName") : this.get("xDisplayName");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this.get("direction") == "vertical" ? this.get("xDisplayName") : this.get("yDisplayName");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Order of this ISeries instance of this <code>type</code>.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Order of the ISeries instance
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * x coordinates for the series.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * y coordinates for the series
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to the <code>Axis</code> instance used for assigning
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * x-values to the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates which array to from the hash of value arrays in
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the x-axis <code>Axis</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates which array to from the hash of value arrays in
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the y-axis <code>Axis</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Array of x values for the series.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Array of y values for the series.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the width of the parent graph
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the height of the parent graph
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether to show the series
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of area maps along the xAxis. Used to determine mouseover for multiple
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of area maps along the yAxis. Used to determine mouseover for multiple
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance from a data coordinate to the left/right for setting a hotspot.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Distance from a data coordinate to the top/bottom for setting a hotspot.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(marker && marker.height && isFinite(marker.height))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Direction of the series
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.MarkerSeries = Y.Base.create("markerSeries", Y.CartesianSeries, [Y.Plots], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Y.MarkerSeries.superclass._mergeStyles.apply(this, [val, this._getDefaultStyles()]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var styles = this._mergeStyles({marker:this._getPlotDefaults()}, Y.MarkerSeries.superclass._getDefaultStyles());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.LineSeries = Y.Base.create("lineSeries", Y.CartesianSeries, [Y.Lines], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Y.LineSeries.superclass._setStyles.apply(this, [val]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var styles = this._mergeStyles({line:this._getLineDefaults()}, Y.LineSeries.superclass._getDefaultStyles());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.SplineSeries = Y.Base.create("splineSeries", Y.CartesianSeries, [Y.CurveUtil, Y.Lines], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.AreaSplineSeries = Y.Base.create("areaSplineSeries", Y.CartesianSeries, [Y.Fills, Y.CurveUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedSplineSeries = Y.Base.create("stackedSplineSeries", Y.SplineSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.StackedSplineSeries.superclass.setAreaData.apply(this);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedMarkerSeries = Y.Base.create("stackedMarkerSeries", Y.MarkerSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.StackedMarkerSeries.superclass.setAreaData.apply(this);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.ColumnSeries = Y.Base.create("columnSeries", Y.MarkerSeries, [Y.Histogram], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _getMarkerDimensions: function(xcoord, ycoord, calculatedSize, offset)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp config.calculatedSize = this._bottomOrigin - config.top;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Resizes and positions markers based on a mouse interaction.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesCollection = graph.seriesTypes[this.get("type")],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.fill.color = this._getItemColor(markerStyles.fill.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.border.color = this._getItemColor(markerStyles.border.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.height = this._bottomOrigin - ycoords[i];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; n < seriesLen; ++n)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp renderer = Y.one(seriesCollection[n]._graphicNodes[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp renderer.setStyle("left", (xs[n] - seriesSize/2) + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.BarSeries = Y.Base.create("barSeries", Y.MarkerSeries, [Y.Histogram], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _getMarkerDimensions: function(xcoord, ycoord, calculatedSize, offset)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Resizes and positions markers based on a mouse interaction.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesCollection = graph.seriesTypes[this.get("type")],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.fill.color = this._getItemColor(markerStyles.fill.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles.border.color = this._getItemColor(markerStyles.border.color, i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; n < seriesLen; ++n)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp renderer = Y.one(seriesCollection[n]._graphicNodes[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.AreaSeries = Y.Base.create("areaSeries", Y.CartesianSeries, [Y.Fills], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return Y.AreaSeries.superclass._setStyles.apply(this, [val]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var styles = this._mergeStyles({area:this._getAreaDefaults()}, Y.AreaSeries.superclass._getDefaultStyles());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedAreaSplineSeries = Y.Base.create("stackedAreaSplineSeries", Y.AreaSeries, [Y.CurveUtil, Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.ComboSeries = Y.Base.create("comboSeries", Y.CartesianSeries, [Y.Fills, Y.Lines, Y.Plots], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var styles = Y.ComboSeries.superclass._getDefaultStyles();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedComboSeries = Y.Base.create("stackedComboSeries", Y.ComboSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.StackedComboSeries.superclass.setAreaData.apply(this);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.drawFill.apply(this, this._getStackedClosingPoints());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.ComboSplineSeries = Y.Base.create("comboSplineSeries", Y.ComboSeries, [Y.CurveUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedComboSplineSeries = Y.Base.create("stackedComboSplineSeries", Y.StackedComboSeries, [Y.CurveUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedLineSeries = Y.Base.create("stackedLineSeries", Y.LineSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.StackedLineSeries.superclass.setAreaData.apply(this);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedAreaSeries = Y.Base.create("stackedAreaSeries", Y.AreaSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.StackedAreaSeries.superclass.setAreaData.apply(this);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.drawFill.apply(this, this._getStackedClosingPoints());
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedColumnSeries = Y.Base.create("stackedColumnSeries", Y.ColumnSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp negativeBaseValues = lastCollection.get("negativeBaseValues");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp positiveBaseValues = lastCollection.get("positiveBaseValues");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp top = positiveBaseValues[i] - (this._bottomOrigin - ycoords[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Resizes and positions markers based on a mouse interaction.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.one(graphic.node).setStyle("left", (xcoords[i] - offset));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.StackedBarSeries = Y.Base.create("stackedBarSeries", Y.BarSeries, [Y.StackingUtil], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp negativeBaseValues = lastCollection.get("negativeBaseValues");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp positiveBaseValues = lastCollection.get("positiveBaseValues");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp left = negativeBaseValues[i] - (this._leftOrigin - xcoords[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Resizes and positions markers based on a mouse interaction.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.PieSeries = Y.Base.create("pieSeries", Y.MarkerSeries, [], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxis.after("dataReady", Y.bind(this._categoryDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxis.after("dataUpdate", Y.bind(this._categoryDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueAxis.after("dataReady", Y.bind(this._valueDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueAxis.after("dataUpdate", Y.bind(this._valueDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("categoryAxisChange", this.categoryAxisChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("valueAxisChange", this.valueAxisChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._renderered = true;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxis.after("dataReady", Y.bind(this._categoryDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxis.after("dataUpdate", Y.bind(this._categoryDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueAxis.after("dataReady", Y.bind(this._valueDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueAxis.after("dataUpdate", Y.bind(this._valueDataChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Constant used to generate unique id.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (protected)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Handles updating the graph when the x < code>Axis</code> values
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this._rendered && this.get("categoryKey") && this.get("valueKey"))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (protected)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Handles updating the chart when the y <code>Axis</code> values
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(this._rendered && this.get("categoryKey") && this.get("valueKey"))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @private (override)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._rendered = true;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var values = this.get("valueAxis").getDataByKey(this.get("valueKey")).concat(),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp catValues = this.get("categoryAxis").getDataByKey(this.get("categoryKey")).concat(),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp w = graph.get("width") - (padding.left + padding.right),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp h = graph.get("height") - (padding.top + padding.bottom),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < itemCount; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp color:tfc ? tfc.shift() : this._getDefaultColor(i, "slice"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerStyles = state == "off" || !styles[state] ? styles : styles[state];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp indexStyles.fill.color = indexStyles.fill.colors[i % indexStyles.fill.colors.length];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp indexStyles.fill.alpha = indexStyles.fill.alphas[i % indexStyles.fill.alphas.length];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return Default styles for the widget
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultLineColors:["#426ab3", "#d09b2c", "#000000", "#b82837", "#b384b5", "#ff7200", "#779de3", "#cbc8ba", "#7ed7a6", "#007a6c"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultFillColors:["#6084d0", "#eeb647", "#6c6b5f", "#d6484f", "#ce9ed1", "#ff9f3b", "#93b7ff", "#e0ddd0", "#94ecba", "#309687"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultBorderColors:["#205096", "#b38206", "#000000", "#94001e", "#9d6fa0", "#e55b00", "#5e85c9", "#adab9e", "#6ac291", "#006457"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _defaultSliceColors: ["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"],
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Colors used if style colors are not specified
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Order of this ISeries instance of this <code>type</code>.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to the <code>Axis</code> instance used for assigning
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * x-values to the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates which array to from the hash of value arrays in
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the category <code>Axis</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates which array to from the hash of value arrays in
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the value <code>Axis</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._categoryDisplayName || this.get("categoryKey");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._valueDisplayName || this.get("valueKey");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.Gridlines = Y.Base.create("gridlines", Y.Base, [Y.Renderer], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp render: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp remove: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Draws the gridlines
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp draw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp lineFunction = direction == "vertical" ? this._verticalLine : this._horizontalLine;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp x: w * (i/(l-1)),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp y: h * (i/(l-1))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates a <code>Graphic</code> instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("graphic").render(this.get("graph").get("contentBox"));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.Graph = Y.Base.create("graph", Y.Widget, [Y.Renderer], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp bindUI: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp syncUI: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Hash of arrays containing series mapped to a series type.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a series instance based on an index.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a series instance based on a key value.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Adds dispatcher to collection
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Collection of series to be displayed in the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Parses series instances to be displayed in the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Array} Collection of series instances or object literals containing necessary properties for creating a series instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(series instanceof Y.CartesianSeries) && !(series instanceof Y.PieSeries))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesKey = series.get("direction") == "horizontal" ? "yKey" : "xKey";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._seriesDictionary[series.get(seriesKey)] = series;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Adds a series to the graph.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {Series}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series.after("drawingComplete", Y.bind(this._drawingCompleteHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series.after("drawingComplete", Y.bind(this._drawingCompleteHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Creates a series instance based on a specified type.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @param {String} Indicates type of series instance to be created.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @return {Series} Series instance created.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "line" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "column" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "bar" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "area" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "candlestick" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "ohlc" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedarea" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedcolumn" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedbar" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "markerseries" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "spline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "areaspline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedspline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedareaspline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedmarkerseries" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "pie" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "combo" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedcombo" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "combospline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp case "stackedcombospline" :
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._background.update(this.get("styles").background);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp gl = new Y.Gridlines({direction:"horizontal", axis:val.axis, graph:this, styles:val.styles});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp gl = new Y.Gridlines({direction:"vertical", axis:val.axis, graph:this, styles:val.styles});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippfunction ChartBase() {}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Indicates the the type of interactions that will fire events.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>marker</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>all</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * <li>none</li>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Data used to generate the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to graph instance
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type Graph
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Default value function for the <code>graph</code> attribute.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns a series instance
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @method getSeries
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var series = null,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns axis by key reference
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @method getAxisByKey
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Returns the category axis for the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @method getCategoryAxis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._axisClass[t];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //move the position = absolute logic to a class file
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("boundingBox").setStyle("position", "absolute");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("contentBox").setStyle("position", "absolute");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp bindUI: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("showTooltipChange", Y.bind(this._showTooltipChangeHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.after("dataProviderChange", this._dataProviderChangeHandler);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.delegate("mouseenter", Y.bind(this._markerEventHandler, this), cb, ".yui3-seriesmarker");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.delegate("mousedown", Y.bind(this._markerEventHandler, this), cb, ".yui3-seriesmarker");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.delegate("mouseup", Y.bind(this._markerEventHandler, this), cb, ".yui3-seriesmarker");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.delegate("mouseleave", Y.bind(this._markerEventHandler, this), cb, ".yui3-seriesmarker");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.delegate("mousemove", Y.bind(this._positionTooltip, this), cb, ".yui3-seriesmarker");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._overlay.on("mousemove", Y.bind(this._mouseMoveHandler, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.on("markerEvent:mouseover", defaultTooltipFunction);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.fire("markerEvent:" + type, {node:markerNode, x:x, y:y, series:series, index:index, seriesIndex:seriesIndex});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _tooltipLabelFunction: function(categoryItem, valueItem, itemIndex, series, seriesIndex)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ": " + categoryItem.axis.get("labelFunction").apply(this, [categoryItem.value, categoryItem.axis.get("labelFormat")]) +
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ": " + valueItem.axis.get("labelFunction").apply(this, [valueItem.value, valueItem.axis.get("labelFormat")]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * A basic chart application.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //move the position = absolute logic to a class file
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("boundingBox").setStyle("position", "absolute");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.get("contentBox").setStyle("position", "absolute");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //If there is a style definition. Force them to set.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp coord = direction == "horizontal" ? offsetX : offsetY,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //data columns and area data could be created on a graph level
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp markerPlane = direction == "horizontal" ? sc[0].get("xMarkerPlane") : sc[0].get("yMarkerPlane"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //only change on whole numbers
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(coord <= markerPlane[i].end && coord >= markerPlane[i].start)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.fire("markerEvent:mouseover", {x:posX, y:posY, index:index, items:items, direction:direction, graph:graph});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Adds an axis to the queue
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i = 0; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i = 0; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series[seriesKey] = series[seriesKey] || seriesKeys.shift();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series[valAxis] = this._getSeriesAxis(series[seriesKey]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if((series.type == "combo" || series.type == "stackedcombo" || series.type == "combospline" || series.type == "stackedcombospline"))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series.showAreaFill = series.showAreaFill || showAreaFill;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(showMarkers !== null)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp series.showMarkers = series.showMarkers || showMarkers;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(showLines !== null)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(xAxis && !(xAxis instanceof YBaseAxis) && Y.Lang.isString(xAxis) && axes.hasOwnProperty(xAxis))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(yAxis && !(yAxis instanceof YBaseAxis) && Y.Lang.isString(yAxis) && axes.hasOwnProperty(yAxis))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxisName = this.get("categoryAxisName") || this.get("categoryKey");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Gets the appropriate axis to bind a series to when one is not explicitly
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Gets an attribute from an object, using a getter for Base objects and a property for object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * literals. Used for determining attributes from series/axis references which can be an actual class instance
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * or a hash of properties that will be used to create a class instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return null;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Sets an attribute on an object, using a setter of Base objects and a property for object
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * literals. Used for setting attributes on a Base class, either directly or to be stored in an object literal
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * for use at instantiation.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Creates Axis and Axis data classes based on hashes of properties.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(axesAttrs.hasOwnProperty(ai) && dh.hasOwnProperty(ai))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(axesCollection && Y.Array.indexOf(axesCollection, axis) > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp axis.after("axisRendered", Y.bind(this._axisRendered, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(axis.get("keys").hasOwnProperty(this.get("categoryKey")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Adds gridlines to the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp rightAxesCollection = this.get("rightAxesCollection"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp bottomAxesCollection = this.get("bottomAxesCollection"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesAxesCollection.splice(Y.Array.indexOf(seriesAxesCollection, catAxis), 1);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp else if(rightAxesCollection && rightAxesCollection[0])
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp hAxis = direction == "horizontal" ? catAxis : seriesAxesCollection[0];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp vAxis = direction == "vertical" ? catAxis : seriesAxesCollection[0];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryAxisName = this.get("categoryAxisName") || this.get("categoryKey"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesAxis = this.get("stacked") ? "stacked" : "numeric";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(i != valueAxisName && keys && Y.Lang.isArray(keys))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[i], "type", seriesAxis);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[i], "position", this._getDefaultAxisPosition(newAxes[i], valueAxes, seriesPosition));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(dv.hasOwnProperty(i) && i != catKey && Y.Array.indexOf(claimedKeys, i) == -1)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i = 0; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[categoryAxisName], "keys")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[categoryAxisName], "keys", [catKey]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[categoryAxisName], "position")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[categoryAxisName], "position", categoryPosition);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[categoryAxisName], "type")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[categoryAxisName], "type", this.get("categoryType"));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!newAxes.hasOwnProperty(valueAxisName) && seriesKeys && seriesKeys.length > 0)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[valueAxisName], "position")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[valueAxisName], "position", this._getDefaultAxisPosition(newAxes[valueAxisName], valueAxes, seriesPosition));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[valueAxisName], "type")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[valueAxisName], "type", seriesAxis);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(!(this._getBaseAttribute(newAxes[valueAxisName], "keys")))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._setBaseAttribute(newAxes[valueAxisName], "keys", seriesKeys);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Determines the position of an axis when one is not specified.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _getDefaultAxisPosition: function(axis, valueAxes, position)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _displayTooltip: function(e) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryItem.displayName = series.get("categoryDisplayName");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueItem.displayName = series.get("valueDisplayName");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp msg = tt.labelFunction.apply(this, [categoryItem, valueItem, index, series, seriesIndex]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp msg = categoryAxis.get("labelFunction").apply(this, [categoryAxis.getKeyValueAt(this.get("categoryKey"), index), categoryAxis.get("labelFormat")]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp msg += "<br/><span>" + series.get("yDisplayName") + ": " + yAxis.get("labelFunction").apply(this, [yAxis.getKeyValueAt(series.get("yKey"), index), yAxis.get("labelFormat")]) + "</span>";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp msg += "<br/><span>" + series.get("xDisplayName") + " " + xAxis.get("labelFunction").apply(this, [xAxis.getKeyValueAt(series.get("xKey"), index), xAxis.get("labelFormat")]) + "</span>";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @description Listender for axisRendered event.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._axesRenderQueue = this._axesRenderQueue.splice(1 + Y.Array.indexOf(this._axesRenderQueue, e.currentTarget), 1);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _redraw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp pts[Y.Array.indexOf(this._axesCollection, lc[i])] = {x:lw + "px"};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp pts[Y.Array.indexOf(this._axesCollection, rc[i])] = {x:(w - rw) + "px"};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp pts[Y.Array.indexOf(this._axesCollection, tc[i])] = {y:th + "px"};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp pts[Y.Array.indexOf(this._axesCollection, bc[i])] = {y:(h - bh) + "px"};
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp graph.get("boundingBox").setStyle("overflow", graphOverflow);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._overlay.setStyle("width", (w - (lw + rw)) + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._overlay.setStyle("height", (h - (th + bh)) + "px");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(axes.hasOwnProperty(i) && axes[i] instanceof Y.Axis)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp s = this.getSeries(i);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Axes to appear in the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of series to appear on the chart. This can be an array of Series instances or object literals
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * used to describe a Series instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Element that contains left axes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Element that contains bottom axes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Element that contains right axes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Element that contains top axes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * All axes in a chart
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether or not the chart is stacked.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type Boolean
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Direction of chart's category axis when there is no series collection specified. Charts can
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * be horizontal or vertical. When the chart type is column, the chart is horizontal.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * When the chart type is bar, the chart is vertical.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type String
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @default Horizontal
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return "vertical";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return "horizontal";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._direction;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._direction;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether or not to show a tooltip.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The key value used for the chart's category axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @default "category"
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type String
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * A collection of keys that map to the series axes. If no keys are set,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * they will be generated automatically depending on the data structure passed into
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type Array
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether or not an area is filled in a combo chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the type of axis to use for the category axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates the key value used to identify a category axis in the <code>axes</code> hash.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Type of chart when there is no series collection specified.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type String
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._type;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._type;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to the category axis used by the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTrippY.PieChart = Y.Base.create("pieChart", Y.Widget, [Y.ChartBase], {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp seriesKeys = axes.values.get("dataSet").get("keyCollection");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp key = axes.category.get("dataSet").get("keyCollection")[0];
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < l; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp axis.on("axisRendered", Y.bind(this._axisRendered, this));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this._seriesCollection = graph.get("seriesCollection");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(; i < len; ++i)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //If series is an actual series instance,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //replace axes attribute string ids with axes
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(s instanceof Y.PieSeries)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _displayTooltip: function(e) {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp categoryItem.value = categoryItem.axis.getKeyValueAt(categoryItem.key, index);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp valueItem.value = valueItem.axis.getKeyValueAt(valueItem.key, index);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp msg = tt.labelFunction.apply(this, [categoryItem, valueItem, index, series, seriesIndex]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp _redraw: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Axes to appear in the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._axes;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Collection of series to appear on the chart. This can be an array of Series instances or object literals
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * used to describe a Series instance.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * All axes in a chart
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Reference to graph instance
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type Graph
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Direction of chart's category axis when there is no series collection specified. Charts can
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * be horizontal or vertical. When the chart type is column, the chart is horizontal.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * When the chart type is bar, the chart is vertical.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type String
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @default Horizontal
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp getter: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return "vertical";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return "horizontal";
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp return this._direction;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * Indicates whether or not to show a tooltip.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * The key value used for the chart's category axis.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @default "category"
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type String
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * A collection of keys that map to the series axes. If no keys are set,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * they will be generated automatically depending on the data structure passed into
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * the chart.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp * @type Array
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp}, '@VERSION@' ,{requires:['dom', 'datatype', 'event-custom', 'event-mouseenter', 'widget', 'widget-position', 'widget-stack']});