src/cm/media/js/lib/yui/yui_3.10.3/build/graphics-group/graphics-group-debug.js
changeset 525 89ef5ed3c48b
equal deleted inserted replaced
524:322d0feea350 525:89ef5ed3c48b
       
     1 /*
       
     2 YUI 3.10.3 (build 2fb5187)
       
     3 Copyright 2013 Yahoo! Inc. All rights reserved.
       
     4 Licensed under the BSD License.
       
     5 http://yuilibrary.com/license/
       
     6 */
       
     7 
       
     8 YUI.add('graphics-group', function (Y, NAME) {
       
     9 
       
    10 /**
       
    11  * The graphics-group submodule allows from drawing a shape multiple times within a single instance.
       
    12  *
       
    13  * @module graphics
       
    14  * @submodule graphics-group
       
    15  */
       
    16 var ShapeGroup,
       
    17     CircleGroup,
       
    18     RectGroup,
       
    19     EllipseGroup,
       
    20     DiamondGroup,
       
    21     Y_Lang = Y.Lang;
       
    22 
       
    23 /**
       
    24  * Abstract class for creating groups of shapes with the same styles and dimensions.
       
    25  *
       
    26  * @class ShapeGroup
       
    27  * @constructor
       
    28  * @submodule graphics-group
       
    29  */
       
    30 
       
    31  ShapeGroup = function()
       
    32  {
       
    33     ShapeGroup.superclass.constructor.apply(this, arguments);
       
    34  };
       
    35 
       
    36  ShapeGroup.NAME = "shapeGroup";
       
    37 
       
    38  Y.extend(ShapeGroup, Y.Path, {
       
    39     /**
       
    40      * Updates the shape.
       
    41      *
       
    42      * @method _draw
       
    43      * @private
       
    44      */
       
    45     _draw: function()
       
    46     {
       
    47         var xvalues = this.get("xvalues"),
       
    48             yvalues = this.get("yvalues"),
       
    49             x,
       
    50             y,
       
    51             xRad,
       
    52             yRad,
       
    53             i = 0,
       
    54             len,
       
    55             dimensions = this.get("dimensions"),
       
    56             width = dimensions.width,
       
    57             height = dimensions.height,
       
    58             radius = dimensions.radius,
       
    59             yRadius = dimensions.yRadius,
       
    60             widthIsArray = Y_Lang.isArray(width),
       
    61             heightIsArray = Y_Lang.isArray(height),
       
    62             radiusIsArray = Y_Lang.isArray(radius),
       
    63             yRadiusIsArray = Y_Lang.isArray(yRadius);
       
    64         if(xvalues && yvalues && xvalues.length > 0)
       
    65         {
       
    66             this.clear();
       
    67 
       
    68             len = xvalues.length;
       
    69             for(; i < len; ++i)
       
    70             {
       
    71                 x = xvalues[i];
       
    72                 y = yvalues[i];
       
    73                 xRad = radiusIsArray ? radius[i] : radius;
       
    74                 yRad = yRadiusIsArray ? yRadius[i] : yRadius;
       
    75                 if(!isNaN(x) && !isNaN(y) && !isNaN(xRad))
       
    76                 {
       
    77                     this.drawShape({
       
    78                         x: x,
       
    79                         y: y,
       
    80                         width: widthIsArray ? width[i] : width,
       
    81                         height: heightIsArray ? height[i] : height,
       
    82                         radius: xRad,
       
    83                         yRadius: yRad
       
    84                     });
       
    85                     this.closePath();
       
    86                 }
       
    87             }
       
    88             this._closePath();
       
    89         }
       
    90     },
       
    91 
       
    92     /**
       
    93      * Parses and array of lengths into radii
       
    94      *
       
    95      * @method _getRadiusCollection
       
    96      * @param {Array} val Array of lengths
       
    97      * @return Array
       
    98      * @private
       
    99      */
       
   100     _getRadiusCollection: function(val)
       
   101     {
       
   102         var i = 0,
       
   103             len = val.length,
       
   104             radii = [];
       
   105         for(; i < len; ++i)
       
   106         {
       
   107             radii[i] = val[i] * 0.5;
       
   108         }
       
   109         return radii;
       
   110     }
       
   111  });
       
   112 
       
   113 ShapeGroup.ATTRS = Y.merge(Y.Path.ATTRS, {
       
   114     dimensions: {
       
   115         getter: function()
       
   116         {
       
   117             var dimensions = this._dimensions,
       
   118                 radius,
       
   119                 yRadius,
       
   120                 width,
       
   121                 height;
       
   122             if(dimensions.hasOwnProperty("radius"))
       
   123             {
       
   124                 return dimensions;
       
   125             }
       
   126             else
       
   127             {
       
   128                 width = dimensions.width;
       
   129                 height = dimensions.height;
       
   130                 radius = Y_Lang.isArray(width) ? this._getRadiusCollection(width) : (width * 0.5);
       
   131                 yRadius = Y_Lang.isArray(height) ? this._getRadiusCollection(height) : (height * 0.5);
       
   132                 return {
       
   133                     width: width,
       
   134                     height: height,
       
   135                     radius: radius,
       
   136                     yRadius: yRadius
       
   137                 };
       
   138             }
       
   139         },
       
   140 
       
   141         setter: function(val)
       
   142         {
       
   143             this._dimensions = val;
       
   144             return val;
       
   145         }
       
   146     },
       
   147     xvalues: {
       
   148         getter: function()
       
   149         {
       
   150             return this._xvalues;
       
   151         },
       
   152         setter: function(val)
       
   153         {
       
   154             this._xvalues = val;
       
   155         }
       
   156     },
       
   157     yvalues: {
       
   158         getter: function()
       
   159         {
       
   160             return this._yvalues;
       
   161         },
       
   162         setter: function(val)
       
   163         {
       
   164             this._yvalues = val;
       
   165         }
       
   166     }
       
   167 });
       
   168 Y.ShapeGroup = ShapeGroup;
       
   169 /**
       
   170  * Abstract class for creating groups of circles with the same styles and dimensions.
       
   171  *
       
   172  * @class CircleGroup
       
   173  * @constructor
       
   174  * @submodule graphics-group
       
   175  */
       
   176  CircleGroup = function()
       
   177  {
       
   178     CircleGroup.superclass.constructor.apply(this, arguments);
       
   179  };
       
   180 
       
   181  CircleGroup.NAME = "circleGroup";
       
   182 
       
   183  Y.extend(CircleGroup, Y.ShapeGroup, {
       
   184     /**
       
   185      * Algorithm for drawing shape.
       
   186      *
       
   187      * @method drawShape
       
   188      * @param {Object} cfg Parameters used to draw the shape.
       
   189      */
       
   190     drawShape: function(cfg)
       
   191     {
       
   192         this.drawCircle(cfg.x, cfg.y, cfg.radius);
       
   193     }
       
   194  });
       
   195 
       
   196 CircleGroup.ATTRS = Y.merge(Y.ShapeGroup.ATTRS, {
       
   197     dimensions: {
       
   198         getter: function()
       
   199         {
       
   200             var dimensions = this._dimensions,
       
   201                 radius,
       
   202                 yRadius,
       
   203                 width,
       
   204                 height;
       
   205             if(dimensions.hasOwnProperty("radius"))
       
   206             {
       
   207                 return dimensions;
       
   208             }
       
   209             else
       
   210             {
       
   211                 width = dimensions.width;
       
   212                 height = dimensions.height;
       
   213                 radius = Y_Lang.isArray(width) ? this._getRadiusCollection(width) : (width * 0.5);
       
   214                 yRadius = radius;
       
   215                 return {
       
   216                     width: width,
       
   217                     height: height,
       
   218                     radius: radius,
       
   219                     yRadius: yRadius
       
   220                 };
       
   221             }
       
   222         }
       
   223     }
       
   224 });
       
   225 
       
   226 CircleGroup.ATTRS = Y.ShapeGroup.ATTRS;
       
   227 Y.CircleGroup = CircleGroup;
       
   228 /**
       
   229  * Abstract class for creating groups of rects with the same styles and dimensions.
       
   230  *
       
   231  * @class GroupRect
       
   232  * @constructor
       
   233  * @submodule graphics-group
       
   234  */
       
   235  RectGroup = function()
       
   236  {
       
   237     RectGroup.superclass.constructor.apply(this, arguments);
       
   238  };
       
   239 
       
   240  RectGroup.NAME = "rectGroup";
       
   241 
       
   242  Y.extend(RectGroup, Y.ShapeGroup, {
       
   243     /**
       
   244      * Updates the rect.
       
   245      *
       
   246      * @method _draw
       
   247      * @private
       
   248      */
       
   249     drawShape: function(cfg)
       
   250     {
       
   251         this.drawRect(cfg.x, cfg.y, cfg.width, cfg.height);
       
   252     }
       
   253  });
       
   254 
       
   255 RectGroup.ATTRS = Y.ShapeGroup.ATTRS;
       
   256 Y.RectGroup = RectGroup;
       
   257 /**
       
   258  * Abstract class for creating groups of diamonds with the same styles and dimensions.
       
   259  *
       
   260  * @class GroupDiamond
       
   261  * @constructor
       
   262  * @submodule graphics-group
       
   263  */
       
   264  DiamondGroup = function()
       
   265  {
       
   266     DiamondGroup.superclass.constructor.apply(this, arguments);
       
   267  };
       
   268 
       
   269  DiamondGroup.NAME = "diamondGroup";
       
   270 
       
   271  Y.extend(DiamondGroup, Y.ShapeGroup, {
       
   272     /**
       
   273      * Updates the diamond.
       
   274      *
       
   275      * @method _draw
       
   276      * @private
       
   277      */
       
   278     drawShape: function(cfg)
       
   279     {
       
   280         this.drawDiamond(cfg.x, cfg.y, cfg.width, cfg.height);
       
   281     }
       
   282  });
       
   283 
       
   284 DiamondGroup.ATTRS = Y.ShapeGroup.ATTRS;
       
   285 Y.DiamondGroup = DiamondGroup;
       
   286 /**
       
   287  * Abstract class for creating groups of ellipses with the same styles and dimensions.
       
   288  *
       
   289  * @class EllipseGroup
       
   290  * @constructor
       
   291  * @submodule graphics-group
       
   292  */
       
   293  EllipseGroup = function()
       
   294  {
       
   295     EllipseGroup.superclass.constructor.apply(this, arguments);
       
   296  };
       
   297 
       
   298  EllipseGroup.NAME = "ellipseGroup";
       
   299 
       
   300  Y.extend(EllipseGroup, Y.ShapeGroup, {
       
   301     /**
       
   302      * Updates the ellipse.
       
   303      *
       
   304      * @method _draw
       
   305      * @private
       
   306      */
       
   307     drawShape: function(cfg)
       
   308     {
       
   309         this.drawEllipse(cfg.x, cfg.y, cfg.width, cfg.height);
       
   310     }
       
   311  });
       
   312 
       
   313 EllipseGroup.ATTRS = Y.ShapeGroup.ATTRS;
       
   314 Y.EllipseGroup = EllipseGroup;
       
   315 
       
   316 
       
   317 }, '3.10.3', {"requires": ["graphics"]});