SVGCircle.js revision 66ca16dd76367c074fe4df1dcf7b555489a9bf85
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass/**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Draws an circle
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass *
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @module graphics
5aab19b8b78189ce79cf89283f2d505566d4e6a8Dav Glass * @class SVGCircle
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @constructor
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass SVGCircle = function(cfg)
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha {
d0199bcbfc68b65683c19c4e3e0c38e238142e7eDav Glass SVGCircle.superclass.constructor.apply(this, arguments);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass };
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass SVGCircle.NAME = "svgCircle";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha Y.extend(SVGCircle, Y.SVGShape, {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Indicates the type of shape
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass *
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @property _type
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @readOnly
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @type String
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass _type: "circle",
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Updates the shape.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass *
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @method _draw
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @private
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass _draw: function()
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var node = this.node,
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass x = this.get("x"),
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass y = this.get("y"),
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha radius = this.get("radius"),
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass cx = x + radius,
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass cy = y + radius;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass node.setAttribute("r", radius);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass node.setAttribute("cx", cx);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass node.setAttribute("cy", cy);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass this._fillChangeHandler();
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass this._strokeChangeHandler();
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass this._updateTransform();
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass }
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass });
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav GlassSVGCircle.ATTRS = Y.merge(Y.SVGShape.ATTRS, {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Indicates the width of the shape
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass *
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @attribute width
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @type Number
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass width: {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass setter: function(val)
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass {
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha this.set("radius", val/2);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass return val;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass },
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha getter: function()
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass return this.get("radius") * 2;
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha }
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha },
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Indicates the height of the shape
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha *
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @attribute height
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha * @type Number
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass height: {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass setter: function(val)
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha {
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha this.set("radius", val/2);
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha return val;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass },
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass getter: function()
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass {
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha return this.get("radius") * 2;
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha }
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha },
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /**
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Radius of the circle
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha *
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha * @attribute radius
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @type Number
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass */
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass radius: {
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha value: 0
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass }
9ad88eb481f21d24bd0ee8e13276f2a73f7557d7TSha});
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav GlassY.SVGCircle = SVGCircle;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass