src/cm/media/js/lib/yui/yui_3.10.3/docs/base/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Base</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Base</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    <p>Base is designed to be a low-level foundation class from which other attribute- and event target-based classes in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    YUI library can be derived. It provides a standard template for creating attribute-based objects across the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    library and provides a consistent <code>init()</code> and <code>destroy()</code> sequence that chains
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    initialization (<code>initializer</code>) and destruction (<code>destructor</code>) methods for the class hierarchy.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    <p>It also provides a way for classes to reuse implementation code through plugins, or through extensions.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
To include the source files for Base and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
YUI().use(&#x27;base&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    &#x2F;&#x2F; Base is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
<h2 id="extendbase">Extending Base</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
<p>Although Base can be instantiated, it's really designed to be a root class, which you extend when creating your
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
own <code>Attribute</code> and <code>EventTarget</code> based classes as shown below:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
<pre class="code prettyprint">YUI().use(&quot;base&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    function MyClass(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
        &#x2F;&#x2F; Invoke Base constructor, passing through arguments
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
        MyClass.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
    Y.extend(MyClass, Y.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        &#x2F;&#x2F; Prototype methods for your new class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
<p>Base itself augments <code>Attribute</code>, which in turn augments <code>EventTarget</code>; Base is therefore both an <em>Attribute provider</em> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
an <em>Event Target</em>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
<p>Base's constructor expects a configuration object literal, which is used to set up initial values for attributes during construction (discussed below).</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
<h2 id="staticprops">Static Properties</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
<p>Base looks for two "static" properties which it requires you to add to your class constructor &mdash; <code>NAME</code> and <code>ATTRS</code>.  Base uses these properties when setting up events and attributes for the class:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
<pre class="code prettyprint">function MyClass(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    MyClass.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
&#x2F;&#x2F; Used to identify instances of this class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
&#x2F;&#x2F; For example, to prefix event names
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
MyClass.NAME = &quot;myClass&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
&#x2F;&#x2F; &quot;Associative Array&quot;, used to define the set of attributes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
&#x2F;&#x2F; added by this class. The name of the attribute is the key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
&#x2F;&#x2F; and the object literal value acts as the configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
&#x2F;&#x2F; object passed to addAttrs
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
MyClass.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    A : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        &#x2F;&#x2F; Attribute &quot;A&quot; configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    B : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        &#x2F;&#x2F; Attribute &quot;B&quot; configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
Y.extend(MyClass, Y.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    &#x2F;&#x2F; Prototype methods for your new class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
<h3 id="nameprop">NAME</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
<p>The <code>NAME</code> property is a string which is used to identify the class.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
<p>One core area where it is currently used is to prefix all events that are published by instances of your class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
For example, any events published by the class <code>MyClass</code> in the above code snippet will have the <code>myClass</code> prefix. By convention the name string is a camelCase version of the class name.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
<p>Event prefixes allow events with the same name fired from instances of different classes to be uniquely identified, when bubbled or broadcast. For instance, a <code>click</code> event on any Menu widget can be discerned by subscribing to the <code>menu:click</code> event; an Editor click would be distinguished as <code>editor:click</code>.  Because YUI 3.x Custom Events bubble, this prefixing allows you to subscribe to events from specific classes at a higher level in your application &mdash; that is, you can listen from common event target, much the way you would when using event delegation when working with DOM events. For example:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
<pre class="code prettyprint">&#x2F;&#x2F; NAME is used to prefix the provided event type, if not already prefixed,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
&#x2F;&#x2F; when publishing, firing and subscribing to events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
MyClass.prototype.doSomething = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    &#x2F;&#x2F; Actually fires the event type &quot;myclass:enabled&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    this.fire(&quot;enabled&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
var o = new MyClass(cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
o.on(&quot;enabled&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    &#x2F;&#x2F; Actually listening for &quot;myclass:enabled&quot;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
o.on(&quot;myclass:enabled&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    &#x2F;&#x2F; Also listening for &quot;myclass:enabled&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
<p>The <code>NAME</code> property is also used in the default <code>toString</code> implementation for Base.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
<h3 id="attrsprop">ATTRS</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
<p>The <code>ATTRS</code> property is an associative array (an object with attribute name/configuration pairs) which is used to define the default set of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
attributes that your class adds to each instance. The instance will contain attributes defined by each class in the class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
hierarchy from which it is created, with each class adding the set of attributes and supporting code that it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
requires.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
<p>For example, this is the (partial) set of attributes which the <a href="http://yuilibrary.com/yui/docs/api/classes/DD.Drag.html#attrs">Drag</a> class defines:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
<pre class="code prettyprint">Drag.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    node: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        setter: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
            var n = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
            if (!n) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
                Y.fail(&#x27;DD.Drag: Invalid Node Given: &#x27; + node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
            return n;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
    dragNode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        setter: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            var n = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            if (!n) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
                Y.fail(&#x27;DD.Drag: Invalid dragNode Given: &#x27; + node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
            return n;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    offsetNode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
        value: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    clickPixelThresh: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        value: DDM.get(&#x27;clickPixelThresh&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
}; &#x2F;&#x2F; End of Drag.ATTRS associative array (object literal)</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
<p>Each property in the object literal (e.g. <code>&quot;dragNode&quot;</code>), defines the name of the attribute to be added, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
the corresponding value defines the attribute's configuration. See <a href="../attribute/index.html#configuration">Attribute's discussion of configuration properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
for more details about how configuration objects should be structured.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
<p>When instantiating a class derived from Base, Base's <code>init()</code> method will initialize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
the set of attributes defined by the <code>ATTRS</code> property for each class in the class hierarchy. This helps avoid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
replication of attribute initialization code in the constructor/initializer of each class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
<p>It also defines a specific order in which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
attributes are initialized &mdash; starting from the Base class first and ending with the specific subclass being instantiated. Within a class, the order in which attributes are defined
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
in the <code>ATTRS</code> property does not matter. If an attribute defined in the <code>ATTRS</code> configuration for the class, requests the value of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
another attribute defined after it in the <code>ATTRS</code> configuration (in its <code>valueFn</code> or <code>getter</code> for example),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
the later attribute will be initialized on demand, when the first attribute attempts to <code>get</code> the value of the later attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
It is worth noting that Base adds or initializes attributes lazily for performance reasons, meaning the attribute will not be initialized until the first call to get or set it is made. This behavior
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
can be overridden if desired for specific attributes by setting the <code>lazyAdd</code> configuration property to <code>false</code> (for example if the <code>setter</code> for the attribute is responsible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
for setting some other non attribute state in the object).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
<strong>Note:</strong> If the <code>ATTRS</code> of a class need to be statically updated after the class has been created or defined, then to do so safely use the <a href="http://yuilibrary.com/yui/docs/api/classes/Base.html#method_modifyAttrs">static <code>modifyAttrs()</code> method</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
<h2 id="initdestroy">Initialization and Destruction</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
<p>Base implements final versions of its <code>init</code> and <code>destroy</code> methods used to establish the initialization and destruction lifecycle phases.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
Classes extending Base can perform operations during initialization or destruction by defining prototype-level <code>initializer</code> and <code>destructor</code> methods:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
<pre class="code prettyprint">Y.extend(MyClass, Y.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    &#x2F;&#x2F; Prototype methods for your new class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    &#x2F;&#x2F; Tasks MyClass needs to perform during
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
    &#x2F;&#x2F; the init() lifecycle phase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    initializer : function(cfg) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
        this._wrapper = Y.Node.create(&#x27;&lt;div class=&quot;yui-wrapper&quot;&gt;&lt;&#x2F;div&gt;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    &#x2F;&#x2F; Tasks MyClass needs to perform during
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    &#x2F;&#x2F; the destroy() lifecycle phase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    destructor : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
        Y.Event.purgeElement(this._wrapper);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
        this._wrapper.get(&quot;parentNode&quot;).removeChild(this._wrapper);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        this._wrapper = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
<p>Base's <code>init</code> and <code>destroy</code> methods take care of invoking <code>initializer</code> and <code>destructor</code> methods for each class in the hierarchy.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
The implementations for each class do not need to call superclass versions of the method. Base ensures that initialization and destruction occur in a fixed order, following the class hierarchy.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    <dt><code>initializer()</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        Base's <code>init</code> method, which is invoked by Base's constructor, will invoke the <code>initializer</code> method for each class in the hierarchy &mdash; starting from the Base class first and ending with the subclass being instantiated.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        The <code>initializer</code> method for each class is invoked after its attributes have been initialized (as discussed above) and will receive the configuration object literal passed to the <code>init</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    <dt><code>destructor()</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        Base's <code>destroy</code> method, when called, will invoke the <code>destructor</code> method for each class in the hierarchy &mdash; starting from the subclass instantiated to create the instance and ending with the Base class (the opposite of initialization).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
<p>If your class does not require any code to be executed during <code>init</code> or <code>destroy</code>, you do not need to define the corresponding <code>initializer</code> or <code>destructor</code> method on its prototype.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
<p>The <a href="../assets/base/mycomponent.js.txt">"MyComponent" template file</a> provides a starting point for you to create your own components derived from <code>Base</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
<h2 id="plugins">Plugins</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
Plugins can be used to add atomic pieces of functionality or features to instances of objects derived from Base, without having to bake support, or even
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
knowledge of the feature, into the core object class. This allows features to be mixed and matched per instance, without having to build all features into a monolithic class or having to ship multiple
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
classes with varying permutations of features.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    <code>Plugin.Host</code> adds the following key methods to the <code>Base</code> class:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    <dt><a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html#method_plug"><code>plug(pluginClass, pluginConfig)</code></a></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    <p>Adds a plugin to the instance with the configuration specified. The <code>plug</code> method adds a new instance of the plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    and attaches it to the instance on the namespace (property) defined by the plugin class' <code>NS</code> property.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
    <p>The <code>plug</code> method also allows multiple plugins to be added in a single call by passing in an array of plugins with optional configurations as defined in the API documentation.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    <dt><a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html#method_unplug"><code>unplug(pluginClass)</code></a> or <a href="http://yuilibrary.com/yui/docs/api/Plugin.Host.html#method_unplug"><code>unplug(namespace)</code></a></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    <dd>Removes the provided plugin or the plugin at the attached namespace from the instance and destroys it.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
<p>The above 2 methods are designed to be used after an instance of the component has already been created.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
Plugins can also be added using the constructor configuration object, using the <code>plugins</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
configuration key. For example:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
<pre class="code prettyprint">var overlay = new Y.Overlay({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    srcNode: &quot;#module&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
Additionally, if the component developer wants a certain set of plugins added to his or her component by default, static <a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.plug"><code>Base.plug</code></a> and <a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.unplug"><code>Base.unplug</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
methods are provided, allowing the developer to define the list of plugins to be added as part of the class definition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
The <a href="../plugin/index.html">Plugin landing page</a> discusses plugin development in detail. The <a href="../widget/widget-plugin.html">Widget IO Plugin</a>, <a href="../overlay/overlay-io-plugin.html">Overlay IO Plugin</a> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
<a href="../overlay/overlay-anim-plugin.html">Overlay Animation Plugin</a> examples also provide a concrete look at plugin development.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
The <a href="../assets/base/../plugin/myplugin.js.txt">"MyPlugin" template file</a> provides a starting point for you to create your own plugins derived from <code>Plugin.Base</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
<h2 id="extensions">Extensions</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
<p>The <code>Base</code> class provides a static <code>build</code> method used to create custom classes, by mixing a main class, with one or more extension classes.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
<p>Extension classes are similar to plugins, in that they encapsulate or bundle specific feature implementations. However extensions are used to mix and match code at the class level, to create new classes, whereas plugins are used to mix and match code at the instance level.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
<p>In addition to <code>build</code>, Base also provides the static <code>create</code> and <code>mix</code> methods, which are sugar methods on top of <code>Base.build</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
    <dt><a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.create"><code>Base.create</code></a></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    <dd>The <code>create</code> sugar method makes the task of creating a completely new class, which mixes in extensions, a lot more succint, by providing a way for the caller to pass in additional prototype and static properties which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    will exist on the newly created class.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    <dt><a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.mix"><code>Base.mix</code></a></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    <dd>The <code>mix</code> sugar method on the other hand, can be used to add extensions into an already existing class.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
<h3 id="create">Create</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
<p>The <code>Base.create</code> method can be used to dynamically create new classes that are derived from an existing main class and mix in additional "extension" classes to add methods, attributes, events and properties to the main class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
<code>Base.create</code> leaves the original main and mixed-in classes untouched so that the main class can still be used without the additional features mixed in. <code>Base.mix</code>, on the other hand, can be used if modifying an existing class is the goal.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
<pre class="code prettyprint">&#x2F;* Main Class *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
function Panel(cfg) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    Panel.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
Panel.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    &#x2F;&#x2F; Panel attributes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    close : { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
    minimize : { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    shadow : { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
Y.extend(Panel, Y.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
    &#x2F;&#x2F; Panel methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
    show : function() { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    hide : function() { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
    minimize : function() { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
&#x2F;* Additional Resizable Feature *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
function Resizable() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    this._initResizable();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
Resizable.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
    handles : { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    constrain : { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
Resizable.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
    _initResizable : function() { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
    lock : function() { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
&#x2F;* Additional Modality Feature *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
function Modal() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
    this._initModality();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
Modal.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    modal : { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    region : { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
Modal.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
    _initModality : function() { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
    showMask() : function() { ... },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    hideMask() : function() { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
&#x2F;&#x2F; Create a new class WindowPanel, which extends Panel, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
&#x2F;&#x2F; combines methods&#x2F;attributes from Resizable and Modal
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
var WindowPanel = Y.Base.create(&quot;windowPanel&quot;, Panel, [Resizable, Modal]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
var wp = new WindowPanel({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    shadow: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
    modal: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    handles:[&quot;e&quot;, &quot;s&quot;, &quot;se&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
wp.show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
wp.lock();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
<p>Under the hood, <code>Base.create</code>:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    <li>Creates a new 'built' class by extending the main class passed in as the first argument.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
    <li>Augments the list of feature classes, or extensions, to the built class, so that it now has their prototype methods.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
       <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
       Aggregates or copies any known static properties on the built class. Static properties to setup on the built class are defined by the component or class author, through a <code>_buildCfg</code> static property on the main class, or on the extension.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
       For example Base defines the <code>ATTRS</code> property as a property which needs to be custom aggregated when mixing in extentions, and Widget adds the <code>HTML_PARSER</code> property for aggregation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
       </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
       <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
       The <a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.create"><code>Base.create</code> API Documention</a> provides more details about the structure of <code>_buildCfg</code> and how it can be used by component authors.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
       </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
<p>The new class constructor created by <code>Base.create</code> will invoke the constructors for the main and feature classes when the new class is instantiated, during the init part of the lifecycle.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
<p>See Base's <a href="http://yuilibrary.com/yui/docs/api/Base.html"><code>API documentation</code></a> for more details on the <code>create</code> and <code>mix</code> methods.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
<p>The <a href="../assets/base/myextension.js.txt">"MyExtension" template file</a> provides a starting point for you to create your own extensions.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
<a href="#extendbase">Extending Base</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
<a href="#staticprops">Static Properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
<a href="#nameprop">NAME</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
<a href="#attrsprop">ATTRS</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
<a href="#initdestroy">Initialization and Destruction</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
<a href="#plugins">Plugins</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
<a href="#extensions">Extensions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
<a href="#create">Create</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
                                        <li data-description="Shows how to use Base.create and mix/match extensions to create custom Widget classes.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
                                            <a href="../widget/widget-build.html">Creating Custom Widget Classes With Extensions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
                                        <li data-description="Shows how to extend the Widget class, and add WidgetPosition and WidgetStack to create a Tooltip widget class.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
                                            <a href="../widget/widget-tooltip.html">Creating a Simple Tooltip Widget With Extensions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
                                        <li data-description="Shows how to extend the Widget class, and add WidgetParent and WidgetChild to create a simple ListBox widget.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
                                            <a href="../widget/widget-parentchild-listbox.html">Creating a Hierarchical ListBox Widget</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    assets: '../assets/base',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
    name: 'base',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
    title: 'Base',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
YUI.Env.Tests.examples.push('widget-build');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
YUI.Env.Tests.examples.push('widget-tooltip');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
YUI.Env.Tests.examples.push('widget-parentchild-listbox');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
</html>