Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: charts/js/Renderer.js

 /**
 * The Charts widget provides an api for displaying data
 * graphically.
 *
 * @module charts
 * @main charts
 */
 
 /**
 * Provides functionality for the handling of axis data in a chart.
 *
 * @module charts
 * @submodule axis-base
 */
 var Y_Lang = Y.Lang;
 
 /**
 * The Renderer class is a base class for chart components that use the `styles`
 * attribute.
 *
 * @module charts
 * @class Renderer
 * @constructor
 */
 function Renderer(){}
 
 Renderer.ATTRS = {
 /**
 * Style properties for class
 *
 * @attribute styles
 * @type Object
 */
 styles:
 {
 getter: function()
 {
 this._styles = this._styles || this._getDefaultStyles();
 return this._styles;
 },
 
 setter: function(val)
 {
 this._styles = this._setStyles(val);
 }
 },
 
 /**
 * The graphic in which drawings will be rendered.
 *
 * @attribute graphic
 * @type Graphic
 */
 graphic: {}
 };
 Renderer.NAME = "renderer";
 
 Renderer.prototype = {
 /**
 * Storage for `styles` attribute.
 *
 * @property _styles
 * @type Object
 * @private
 */
 	_styles: null,
 
 /**
 * Method used by `styles` setter.
 *
 * @method _setStyles
 * @param {Object} newStyles Hash of properties to update.
 * @return Object
 * @protected
 */
 	_setStyles: function(newstyles)
 	{
 		var styles = this.get("styles");
 return this._mergeStyles(newstyles, styles);
 	},
 
 /**
 * Merges to object literals so that only specified properties are
 * overwritten.
 *
 * @method _mergeStyles
 * @param {Object} a Hash of new styles
 * @param {Object} b Hash of original styles
 * @return Object
 * @protected
 */
 _mergeStyles: function(a, b)
 {
 if(!b)
 {
 b = {};
 }
 var newstyles = Y.merge(b, {});
 Y.Object.each(a, function(value, key)
 {
 if(b.hasOwnProperty(key) && Y_Lang.isObject(value) && !Y_Lang.isFunction(value) && !Y_Lang.isArray(value))
 {
 newstyles[key] = this._mergeStyles(value, b[key]);
 }
 else
 {
 newstyles[key] = value;
 }
 }, this);
 return newstyles;
 },
 
 /**
 * Copies an object literal.
 *
 * @method _copyObject
 * @param {Object} obj Object literal to be copied.
 * @return Object
 * @private
 */
 _copyObject: function(obj) {
 var newObj = {},
 key,
 val;
 for(key in obj)
 {
 if(obj.hasOwnProperty(key))
 {
 val = obj[key];
 if(typeof val === "object" && !Y_Lang.isArray(val))
 {
 newObj[key] = this._copyObject(val);
 }
 else
 {
 newObj[key] = val;
 }
 }
 }
 return newObj;
 },
 
 /**
 * Gets the default value for the `styles` attribute.
 *
 * @method _getDefaultStyles
 * @return Object
 * @protected
 */
 _getDefaultStyles: function()
 {
 return {padding:{
 top:0,
 right: 0,
 bottom: 0,
 left: 0
 }};
 }
 };
 
 Y.augment(Renderer, Y.Attribute);
 Y.Renderer = Renderer;
 
 
 

AltStyle によって変換されたページ (->オリジナル) /