src/cm/media/js/lib/yui/yui_3.0.0b1/releasenotes/README.base
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
3.0.0 beta 1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
* Config argument for init event now merged into the event facade, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
  instead of being passed separately (available as e.cfg).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
* Removed Base.create. On review, considered to be overkill.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
  Users can easily create new instances, using Base.build
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
* Moved PluginHost down from Widget to Base, since utils and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
  Node will also support Plugins.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
* PluginHost.plug and unplug now accept the plugin class as 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
  arguments [plug(pluginClass, cfg) and unplug(pluginClass)].
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
* Split base module up into base-base and base-build.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
* Added lazy attribute initialization support, to improve performance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
  This also removes order dependency when processing ATTRS for a 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
  particular class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
  If a get/set call is made for an uninitialized attribute A, in the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
  getter/setter/validator or valueFns of another attribute B, A will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
  be intiailized on the fly. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
* Added ability to subscribe to on/after events through the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
  constructor config object, e.g.:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
      new MyBaseObject({ 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
         on: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
            init: handlerFn,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
            myAttrChange: handlerFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
	 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
	 after: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
	    init: handlerFn,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
	    myAttrChange: handlerFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
	 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
	 ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
	 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
      });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
* Developers can now override the default clone behavior we use to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
  isolate default ATTRS config values, using cloneDefaultValue, e.g.:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
  ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
      myAttr : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
      	value: AnObjectOrArrayReference
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
	    cloneDefaultValue: true|false|"deep"|"shallow"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
      }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
  }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
  If the cloneDefaultValue property is not defined, Base will clone
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
  any Arrays or Object literals which are used as default values when
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
  configuring attributes for an instance, so that updates to instance 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
  values do not modify the default value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
  This behavior can be over-ridden using the cloneDefaultValue property:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
  true, deep: 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
     Use Y.clone to protect the default value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
  shallow:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
     Use Y.merge, to protect the default value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
  false:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
     Don't clone Arrays or Object literals. The value is intended
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
     to be used by reference, for example, when it points to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
     a utility object.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
* Base.plug and Base.unplug used to add static Plugins (default plugins
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
  for a class). Replaces static PLUGINS array, allowing subclasses to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
  easily unplug static plugins added higher up in the hierarchy.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
* Base adds all attributes lazily. This means attributes don't get
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
  initialized until the first call to get/set, speeding up construction
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
  of Base based objects.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
  Attributes which have setters which set some other state in the object, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
  can configure the attribute to disable lazy initialization, by setting
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
  lazyAdd:false as part of their attribute configuration, so that the setter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
  gets invoked during construction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
3.0.0PR1 - Initial release
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
Module Name: "base"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
Documentation: http://developer.yahoo.com/yui/3/base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
Base is designed to be a low level class from which other attribute 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
and event target based classes in the YUI library can be derived. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
It provides a standard template for creating attribute based objects 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
across the library and provides a consistent init() and destroy() 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
sequence, by chaining initialization (initializer) and destruction 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
(destructor) methods for the class hierarcy.