Version 3.18.1

APIs

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

File: charts/js/SeriesBase.js

 /**
 * Provides functionality for creating a chart series.
 *
 * @module charts
 * @submodule series-base
 */
 
 /**
 * An abstract class for creating series instances.
 * SeriesBase is used by the following classes:
 * <ul>
 * <li>{{#crossLink "CartesianSeries"}}{{/crossLink}}</li>
 * <li>{{#crossLink "PieSeries"}}{{/crossLink}}</li>
 * </ul>
 *
 * @class SeriesBase
 * @extends Base
 * @uses Renderer
 * @constructor
 * @param {Object} config (optional) Configuration parameters.
 * @submodule series-base
 */
 Y.SeriesBase = Y.Base.create("seriesBase", Y.Base, [Y.Renderer], {
 /**
 * @method render
 * @private
 */
 render: function()
 {
 this._setCanvas();
 this.addListeners();
 this.validate();
 },
 
 /**
 * Creates a `Graphic` instance.
 *
 * @method _setCanvas
 * @protected
 */
 _setCanvas: function()
 {
 var graph = this.get("graph"),
 graphic = graph.get("graphic");
 this.set("graphic", graphic);
 },
 
 /**
 * Returns a reference to the parent container to which all chart elements are contained.
 * When the series is bound to a `Chart` instance, the `Chart` instance is the reference.
 * If nothing is set as the `chart` attribute, the `_getChart` method will return a reference
 * to the `graphic` attribute.
 *
 * @method _getChart
 * @return {Object}
 * @private
 */
 _getChart:function() {
 var chart,
 graph = this.get("graph");
 if(graph)
 {
 chart = graph.get("chart");
 }
 if(!chart)
 {
 chart = this.get("graphic");
 }
 return chart;
 },
 
 /**
 * Returns the sum of all values for the series.
 *
 * @method getTotalValues
 * @return Number
 */
 getTotalValues: function()
 {
 var valueCoord = this.get("direction") === "vertical" ? "x" : "y",
 total = this.get(valueCoord + "Axis").getTotalByKey(this.get(valueCoord + "Key"));
 return total;
 },
 
 /**
 * Gets the default value for the `styles` attribute. Overrides
 * base implementation.
 *
 * @method _getDefaultStyles
 * @return Object
 * @protected
 */
 _getDefaultStyles: function()
 {
 return {padding:{
 top: 0,
 left: 0,
 right: 0,
 bottom: 0
 }};
 },
 
 /**
 * Shows/hides contents of the series.
 *
 * @method _handleVisibleChange
 * @param {Object} e Event object.
 * @protected
 */
 _handleVisibleChange: function()
 {
 this._toggleVisible(this.get("visible"));
 },
 
 /**
 * Destructor implementation for the CartesianSeries class. Calls destroy on all Graphic instances.
 *
 * @method destructor
 * @protected
 */
 destructor: function()
 {
 var marker,
 markers = this.get("markers");
 if(this.get("rendered"))
 {
 if(this._stylesChangeHandle)
 {
 this._stylesChangeHandle.detach();
 }
 if(this._widthChangeHandle)
 {
 this._widthChangeHandle.detach();
 }
 if(this._heightChangeHandle)
 {
 this._heightChangeHandle.detach();
 }
 if(this._visibleChangeHandle)
 {
 this._visibleChangeHandle.detach();
 }
 }
 while(markers && markers.length > 0)
 {
 marker = markers.shift();
 if(marker && marker instanceof Y.Shape)
 {
 marker.destroy();
 }
 }
 if(this._path)
 {
 this._path.destroy();
 this._path = null;
 }
 if(this._lineGraphic)
 {
 this._lineGraphic.destroy();
 this._lineGraphic = null;
 }
 if(this._groupMarker)
 {
 this._groupMarker.destroy();
 this._groupMarker = null;
 }
 },
 
 /**
 * Collection of default colors used for lines in a series when not specified by user.
 *
 * @property _defaultLineColors
 * @type Array
 * @protected
 */
 _defaultLineColors:[
 "#426ab3",
 "#d09b2c",
 "#000000",
 "#b82837",
 "#b384b5",
 "#ff7200",
 "#779de3",
 "#cbc8ba",
 "#7ed7a6",
 "#007a6c"
 ],
 
 /**
 * Collection of default colors used for marker fills in a series when not specified by user.
 *
 * @property _defaultFillColors
 * @type Array
 * @protected
 */
 _defaultFillColors:[
 "#6084d0",
 "#eeb647",
 "#6c6b5f",
 "#d6484f",
 "#ce9ed1",
 "#ff9f3b",
 "#93b7ff",
 "#e0ddd0",
 "#94ecba",
 "#309687"
 ],
 
 /**
 * Collection of default colors used for marker borders in a series when not specified by user.
 *
 * @property _defaultBorderColors
 * @type Array
 * @protected
 */
 _defaultBorderColors:[
 "#205096",
 "#b38206",
 "#000000",
 "#94001e",
 "#9d6fa0",
 "#e55b00",
 "#5e85c9",
 "#adab9e",
 "#6ac291",
 "#006457"
 ],
 
 /**
 * Collection of default colors used for area fills, histogram fills and pie fills in a series when not specified by user.
 *
 * @property _defaultSliceColors
 * @type Array
 * @protected
 */
 _defaultSliceColors: [
 "#66007f",
 "#a86f41",
 "#295454",
 "#996ab2",
 "#e8cdb7",
 "#90bdbd",
 "#000000",
 "#c3b8ca",
 "#968373",
 "#678585"
 ],
 
 /**
 * Parses a color based on a series order and type.
 *
 * @method _getDefaultColor
 * @param {Number} index Index indicating the series order.
 * @param {String} type Indicates which type of object needs the color.
 * @return String
 * @protected
 */
 _getDefaultColor: function(index, type)
 {
 var colors = {
 line: this._defaultLineColors,
 fill: this._defaultFillColors,
 border: this._defaultBorderColors,
 slice: this._defaultSliceColors
 },
 col = colors[type] || colors.fill,
 l = col.length;
 index = index || 0;
 if(index >= l)
 {
 index = index % l;
 }
 type = type || "fill";
 return colors[type][index];
 }
 }, {
 ATTRS: {
 /*
 * Returns the width of the parent graph
 *
 * @attribute width
 * @type Number
 */
 width: {
 readOnly: true,
 
 getter: function()
 {
 return this.get("graphic").get("width");
 }
 },
 
 /**
 * Returns the height of the parent graph
 *
 * @attribute height
 * @type Number
 */
 height: {
 readOnly: true,
 
 getter: function()
 {
 return this.get("graphic").get("height");
 }
 },
 
 /**
 * The graphic in which drawings will be rendered.
 *
 * @attribute graphic
 * @type Graphic
 */
 graphic: {
 lazyAdd: false,
 
 setter: function(val) {
 //woraround for Attribute order of operations bug
 if(!this.get("rendered")) {
 this.set("rendered", true);
 }
 return val;
 }
 },
 
 /**
 * Reference to the `Chart` application. If no `Chart` application is present,
 * a reference to the `Graphic` instance that the series is drawn into will be returned.
 *
 * @attribute chart
 * @type ChartBase
 */
 chart: {
 getter: function()
 {
 var chart,
 graph = this.get("graph");
 if(graph)
 {
 chart = graph.get("chart");
 }
 return chart;
 }
 },
 
 /**
 * Reference to the `Graph` in which the series is drawn into.
 *
 * @attribute graph
 * @type Graph
 */
 graph: {},
 
 /**
 * Indicates whether the Series has been through its initial set up.
 *
 * @attribute rendered
 * @type Boolean
 */
 rendered: {
 value: false
 },
 
 /**
 * Indicates whether to show the series
 *
 * @attribute visible
 * @type Boolean
 * @default true
 */
 visible: {
 value: true
 },
 
 /**
 * Indicates whether or not markers for a series will be grouped and rendered in a single complex shape instance.
 *
 * @attribute groupMarkers
 * @type Boolean
 */
 groupMarkers: {
 getter: function()
 {
 var graph,
 groupMarkers = this._groupMarkers;
 if(!groupMarkers) {
 graph = this.get("graph");
 if(graph)
 {
 groupMarkers = graph.get("groupMarkers");
 }
 }
 return groupMarkers;
 },
 
 setter: function(val)
 {
 this._groupMarkers = val;
 return val;
 }
 }
 }
 });
 
 

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