src/cm/media/js/lib/yui/yui3.0.0/examples/attribute/attribute-basic-speeddate.html
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: Attribute: Attribute Based Speed Dating</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
    #speeddate h1 {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
        font-size: 108%;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        color:#000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        margin-bottom:2em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    #john {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        margin-bottom:10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    .sd-nametag {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
        border:1px solid #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        text-align:center;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        width:25em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        margin:20px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        background-color:#00f;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        border-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
        -webkit-border-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        -moz-border-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        box-shadow: 3px 3px 3px #888;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        -moz-box-shadow: 3px 3px 3px #888;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        -webkit-box-shadow: 3px 3px 3px #888;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    .sd-nametag .sd-hd, .sd-nametag .sd-ft {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
        padding:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
        text-align:center;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
        font-size:108%;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
        font-weight:900;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
        color:#fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    .sd-nametag .sd-hd {    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
        border-top-right-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
        border-top-left-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
        -moz-border-radius-topright: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        -moz-border-radius-topleft: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
        -webkit-border-top-right-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
        -webkit-border-top-left-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
    .sd-nametag .sd-ft {    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
        border-bottom-right-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
        border-bottom-left-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
        -moz-border-radius-bottomright: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
        -moz-border-radius-bottomleft: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
        -webkit-border-bottom-right-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
        -webkit-border-bottom-left-radius: 10px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
    .sd-nametag .sd-bd {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
        background-color:#fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
        padding:1em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
    .sd-nametag .sd-bd .sd-name, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    .sd-nametag .sd-bd .sd-personality {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
        font-size:108%;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        font-weight:900;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
        font-family:monospace;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        text-decoration:underline;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        color:#00a;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
    .sd-nametag .sd-bd .sd-personality.sd-max {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
        color:#f00;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
	<div id="pagetitle"><h1>YUI Library Examples: Attribute: Attribute Based Speed Dating</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
	<h2>Attribute: Attribute Based Speed Dating</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
	<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
This example builds on the <a href="attribute-basic.html">"Basic Configuration" example</a>, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
showing how you can use attribute to model objects in your application.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
As with the basic example, it is geared towards users who want to create their own classes from 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
scratch and add attribute support. In most cases you should consider extending the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
<a href="http://developer.yahoo.com/yui/3/base/index.html"><code>Base</code></a> class when you need attribute support, instead 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
of augmenting Attribute directly. <a href="http://developer.yahoo.com/yui/3/base/index.html"><code>Base</code></a> does the work described 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
in this example for you, in addition to making it easier for users to extend you class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
</p>	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
                <a href="attribute-basic-speeddate_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
	<div id="speeddate">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
    <h1>Speed Dating With Attributes</h1>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
    <div id="john">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
        <button type="button" class="hi">Hi I'm John</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
        <button type="button" class="taken" disabled="disabled">I like Jane</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
        <div class="shirt"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
    <div id="jane">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        <button type="button" disabled="disabled" class="hi">Hey, I'm Jane</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        <button type="button" class="upgrade" disabled="disabled">No way!, I save whales too!</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
        <button type="button" class="taken" disabled="disabled">I like John</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
        <div class="shirt"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
// Get a new instance of YUI and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
// load it with the required set of modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
YUI({base:"../../build/", timeout: 10000}).use("node", "attribute", "substitute", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
    // Setup custom class which we want to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
    // add managed attribute support to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
    function SpeedDater(cfg) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
        // When constructed, setup the initial attributes for the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
        // instance, by calling the addAttrs method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
        var attrs = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
            // Add 3 attributes: name, personality, available
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
            name : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
                writeOnce:true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            personality : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
                value:50
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
            available : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
                value:true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
        this.addAttrs(attrs, cfg);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
    // Setup static property to hold attribute config
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
    SpeedDater.NAMETAG = '<div class="sd-nametag"><div class="sd-hd">Hello!</div><div class="sd-bd">I\'m <span class="sd-name">{name}</span> and my PersonalityQuotientIndex is <span class="sd-personality">{personality}</span></div><div class="sd-ft sd-availability">{available}</div></div>';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
    SpeedDater.prototype.applyNameTag = function(where) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
        var tokens = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
            name: this.get("name"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
            available: (this.get("available")) ? "I'm still looking " : "Sorry, I'm taken",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
            personality: this.get("personality")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
        this.nameTag = Y.Node.create(Y.substitute(SpeedDater.NAMETAG, tokens));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
        Y.one(where).appendChild(this.nameTag);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
    SpeedDater.prototype.updateNameTag = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
        var taken = (this.get("available")) ? "I'm still looking " : "Sorry, I'm taken";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
        var name = this.get("name");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
        var personality = this.get("personality");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
        this.nameTag.query(".sd-name").set("innerHTML", name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
        this.nameTag.query(".sd-availability").set("innerHTML", taken);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
        var personalityEl = this.nameTag.query(".sd-personality"); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
        personalityEl.set("innerHTML", personality);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
        if (personality > 90) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
            personalityEl.addClass("sd-max");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
    // Augment custom class with Attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
    Y.augment(SpeedDater, Y.Attribute);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
    var john, jane;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
        if (!john) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
            // Set both name and personality during construction 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            john = new SpeedDater({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
                name: "John",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
                personality: 76.43
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
            john.applyNameTag("#john .shirt");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
            Y.one("#jane .hi").set("disabled", false); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
    }, "#john .hi");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
        if (!jane) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
            // Set name during construction
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
            jane = new SpeedDater({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
                name: "Jane"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
            // Set personality after construction
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
            jane.set("personality", 82);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
            jane.applyNameTag("#jane .shirt");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            Y.all("#jane button").set("disabled", false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
            Y.all("#john button").set("disabled", false); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
    }, "#jane .hi");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
        john.set("available", false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
        john.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
    }, "#john .taken");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
        jane.set("available", false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
        jane.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
    }, "#jane .taken");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
        jane.set("personality", 98);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
        jane.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
    }, "#jane .upgrade");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
 });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
	<h3>Setting Up a SpeedDater Class</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
<p>In this example, we'll create a custom <code>SpeedDater</code> class, and show how you can use attributes to manage the state for a Speed Dater.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
In the <a href="attribute-event-speeddate.html">"Attribute Event Based Speed Dating" example</a> we'll modify this example to leverage attribute change events.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
<h4>Creating A YUI Instance</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
<p>As with the other attribute <a href="attribute-basic.html">examples</a>, we'll setup our own instance of the YUI object and request the modules we require using the code pattern shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// Create our local YUI instance, to avoid</span></div></li><li class="li1"><div class="de1">    <span class="co1">// modifying the global YUI object</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>...<span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;attribute&quot;</span><span class="sy0">,</span> <span class="st0">&quot;node&quot;</span><span class="sy0">,</span> ... <span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">// Example code is written inside this function,</span></div></li><li class="li1"><div class="de1">        <span class="co1">// which gets passed our own YUI instance, Y, populated</span></div></li><li class="li2"><div class="de2">        <span class="co1">// with the modules we asked for (e.g. Y.Attribute, Y.Node etc.)</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
    <span class="co1">// Create our local YUI instance, to avoid</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
    <span class="co1">// modifying the global YUI object</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
    YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>...<span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="st0">&quot;attribute&quot;</span><span class="sy0">,</span> <span class="st0">&quot;node&quot;</span><span class="sy0">,</span> ... <span class="kw2">function</span><span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
        <span class="co1">// Example code is written inside this function,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
        <span class="co1">// which gets passed our own YUI instance, Y, populated</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
        <span class="co1">// with the modules we asked for (e.g. Y.Attribute, Y.Node etc.)</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></pre></div><textarea id="syntax1-plain"><script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    // Create our local YUI instance, to avoid
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
    // modifying the global YUI object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
    YUI({...}).use("attribute", "node", ... function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
        // Example code is written inside this function,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        // which gets passed our own YUI instance, Y, populated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
        // with the modules we asked for (e.g. Y.Attribute, Y.Node etc.)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
</script></textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
<h4>Defining The SpeedDater Class</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
<p>The first step in the example is to create the constructor function for our new class, to which we want to add attribute support. In our example, this class is called <code>SpeedDater</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
We then augment <code>SpeedDater</code> with <code>Y.Attribute</code>, so that it receives all of <code>Attribute's</code> methods, in addition to any it may defined itself:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
<div id="syntax2" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Setup custom class which we want to add attribute support to</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> SpeedDater<span class="br0">&#40;</span>cfg<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Augment custom class with Attribute</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">augment</span><span class="br0">&#40;</span>SpeedDater<span class="sy0">,</span> Y.<span class="me1">Attribute</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// Setup custom class which we want to add attribute support to</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
<span class="kw2">function</span> SpeedDater<span class="br0">&#40;</span>cfg<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
<span class="co1">// Augment custom class with Attribute</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
Y.<span class="me1">augment</span><span class="br0">&#40;</span>SpeedDater<span class="sy0">,</span> Y.<span class="me1">Attribute</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax2-plain">// Setup custom class which we want to add attribute support to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
function SpeedDater(cfg) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
// Augment custom class with Attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
Y.augment(SpeedDater, Y.Attribute);</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
<h4>Adding Attributes</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
We can now set up any attributes we need for <code>SpeedDater</code> using Attribute's <code>addAttrs()</code> method. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
For this example we add 3 attributes - <code>name</code>, <code>personality</code>, and <code>available</code>. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
We provide an default initial <code>value</code> for <code>personality</code> and <code>available</code>, but don't have anything for <code>name</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
As mentioned in the basic example, the same object literal we use to provide the initial value for the attribute can also be used to configure attribute properties such as <code>readOnly</code> or 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
<code>writeOnce</code>, and to define <code>getter</code>, <code>setter</code> and <code>validator</code> methods for the attribute. For <code>name</code>, we configure it to be <code>writeOnce</code>, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
meaning that it's value can be set once by the user, but not modified after that single set.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
The default set of attributes which <code>SpeedDater</code> will support is passed to <code>addAttrs</code> to set up the attributes for each instance during construction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
As mentioned previously, if you expect your class to be extended, <a href="http://developer.yahoo.com/yui/3/base/index.html">Base</a> provides a more convenient way for you to define the same attribute configuration statically for your class, so that it can be modified by extended classes. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
Base will take care of isolating the static configuration, so that it isn't modified across instances. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
The complete definition for <code>SpeedDater</code> is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Setup custom class which we want to </span></div></li><li class="li1"><div class="de1"><span class="co1">// add managed attribute support to</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="kw2">function</span> SpeedDater<span class="br0">&#40;</span>cfg<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// When constructed, setup the initial attributes for the</span></div></li><li class="li1"><div class="de1">    <span class="co1">// instance, by calling the addAttrs method.</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> attrs <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        <span class="co1">// Add 3 attributes: name, personality, available</span></div></li><li class="li1"><div class="de1">        <span class="kw3">name</span> <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            writeOnce<span class="sy0">:</span><span class="kw2">true</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        personality <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            value<span class="sy0">:</span><span class="nu0">50</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        available <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">            value<span class="sy0">:</span><span class="kw2">true</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">addAttrs</span><span class="br0">&#40;</span>attrs<span class="sy0">,</span> cfg<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">prototype</span>.<span class="me1">applyNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="co1">// Method used to render the visual representation of a </span></div></li><li class="li1"><div class="de1">    <span class="co1">// SpeedDater object's state (in this case as a name tag)</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">prototype</span>.<span class="me1">updateNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="co1">// Method used to update the rendered state of SpeedDater in the DOM.</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Template to use form the markup    </span></div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">NAMETAG</span> <span class="sy0">=</span> <span class="st0">&quot;&lt;div class=&quot;</span>sd<span class="sy0">-</span>nametag<span class="st0">&quot;&gt;&lt;div class=&quot;</span>sd<span class="sy0">-</span>hd<span class="st0">&quot;&gt;Hello!&lt;/div&gt;... &lt;/div&gt;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Augment custom class with Attribute</span></div></li><li class="li2"><div class="de2">Y.<span class="me1">augment</span><span class="br0">&#40;</span>SpeedDater<span class="sy0">,</span> Y.<span class="me1">Attribute</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// Setup custom class which we want to </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
<span class="co1">// add managed attribute support to</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
<span class="kw2">function</span> SpeedDater<span class="br0">&#40;</span>cfg<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
    <span class="co1">// When constructed, setup the initial attributes for the</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
    <span class="co1">// instance, by calling the addAttrs method.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
    <span class="kw2">var</span> attrs <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
        <span class="co1">// Add 3 attributes: name, personality, available</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
        <span class="kw3">name</span> <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
            writeOnce<span class="sy0">:</span><span class="kw2">true</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
        <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
        personality <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
            value<span class="sy0">:</span><span class="nu0">50</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
        <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
        available <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
            value<span class="sy0">:</span><span class="kw2">true</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
    <span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
    <span class="kw1">this</span>.<span class="me1">addAttrs</span><span class="br0">&#40;</span>attrs<span class="sy0">,</span> cfg<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
SpeedDater.<span class="me1">prototype</span>.<span class="me1">applyNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
    <span class="co1">// Method used to render the visual representation of a </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    <span class="co1">// SpeedDater object's state (in this case as a name tag)</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
SpeedDater.<span class="me1">prototype</span>.<span class="me1">updateNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
    <span class="co1">// Method used to update the rendered state of SpeedDater in the DOM.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
<span class="co1">// Template to use form the markup    </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
SpeedDater.<span class="me1">NAMETAG</span> <span class="sy0">=</span> <span class="st0">&quot;&lt;div class=&quot;</span>sd<span class="sy0">-</span>nametag<span class="st0">&quot;&gt;&lt;div class=&quot;</span>sd<span class="sy0">-</span>hd<span class="st0">&quot;&gt;Hello!&lt;/div&gt;... &lt;/div&gt;&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
<span class="co1">// Augment custom class with Attribute</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
Y.<span class="me1">augment</span><span class="br0">&#40;</span>SpeedDater<span class="sy0">,</span> Y.<span class="me1">Attribute</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax3-plain">// Setup custom class which we want to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
// add managed attribute support to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
function SpeedDater(cfg) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
    // When constructed, setup the initial attributes for the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
    // instance, by calling the addAttrs method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
    var attrs = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
        // Add 3 attributes: name, personality, available
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
        name : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
            writeOnce:true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
        personality : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
            value:50
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        available : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
            value:true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
    this.addAttrs(attrs, cfg);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
SpeedDater.prototype.applyNameTag = function(where) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
    // Method used to render the visual representation of a 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
    // SpeedDater object's state (in this case as a name tag)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
SpeedDater.prototype.updateNameTag = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
    // Method used to update the rendered state of SpeedDater in the DOM.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
// Template to use form the markup    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
SpeedDater.NAMETAG = "<div class="sd-nametag"><div class="sd-hd">Hello!</div>... </div>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
// Augment custom class with Attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
Y.augment(SpeedDater, Y.Attribute);</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
The <code>addAttrs()</code> method, in addition to the default attribute configuration, also accepts an object literal (associative array) of name/value pairs which can be 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
used to over-ride the default initial values of the attributes. This is useful for classes which wish to allow the user the set the value of attributes as part of object 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
construction, as shown by the use of the <code>cfg</code> argument above.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
<h4>Using Attributes</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
<p>Now that we have <code>SpeedDater</code> defined with the set of attributes it supports, we can create multiple instances of <code>SpeedDater</code> defining the initial 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
attribute state for each instance through the constructor. We can also update the instance's attribute state after construction, using the <code>get</code> and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
<code>set</code> methods defined by Attribute.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
<p>We create a first instance, <code>john</code>, setting up the intial state using Attribute's constructor configuration object support:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
<div id="syntax4" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Set both name and personality during construction </span></div></li><li class="li1"><div class="de1">john <span class="sy0">=</span> <span class="kw2">new</span> SpeedDater<span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;John&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    personality<span class="sy0">:</span> <span class="nu0">76.43</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// Set both name and personality during construction </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
john <span class="sy0">=</span> <span class="kw2">new</span> SpeedDater<span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;John&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
    personality<span class="sy0">:</span> <span class="nu0">76.43</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax4-plain">// Set both name and personality during construction 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
john = new SpeedDater({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
    name: "John",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
    personality: 76.43
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
<p>For the second instance that we create, <code>jane</code>, we set the value of the personality attribute, after construction:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
<div id="syntax5" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Set name during construction</span></div></li><li class="li1"><div class="de1">jane <span class="sy0">=</span> <span class="kw2">new</span> SpeedDater<span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;Jane&quot;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Set personality after construction. The initial value for personality </span></div></li><li class="li1"><div class="de1"><span class="co1">// in this case, will be the value defined when the attribute was added </span></div></li><li class="li1"><div class="de1"><span class="co1">// using addAttrs (above)</span></div></li><li class="li1"><div class="de1">jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="sy0">,</span> <span class="nu0">82</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// Set name during construction</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
jane <span class="sy0">=</span> <span class="kw2">new</span> SpeedDater<span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;Jane&quot;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
<span class="co1">// Set personality after construction. The initial value for personality </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
<span class="co1">// in this case, will be the value defined when the attribute was added </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
<span class="co1">// using addAttrs (above)</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="sy0">,</span> <span class="nu0">82</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax5-plain">// Set name during construction
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
jane = new SpeedDater({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
    name: "Jane"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
// Set personality after construction. The initial value for personality 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
// in this case, will be the value defined when the attribute was added 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
// using addAttrs (above)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
jane.set("personality", 82);</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
<p>We render the current attribute state of each instance to the DOM, using the <code>applyNameTag()</code> method defined on SpeedDater's prototype:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
<div id="syntax6" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Render the sticker with john's state information to the DOM</span></div></li><li class="li1"><div class="de1">john.<span class="me1">applyNameTag</span><span class="br0">&#40;</span><span class="st0">&quot;#john .shirt&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Render the sticker with jane's state information to the DOM</span></div></li><li class="li2"><div class="de2">jane.<span class="me1">applySicker</span><span class="br0">&#40;</span><span class="st0">&quot;#jane .shirt&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// Render the sticker with john's state information to the DOM</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
john.<span class="me1">applyNameTag</span><span class="br0">&#40;</span><span class="st0">&quot;#john .shirt&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
<span class="co1">// Render the sticker with jane's state information to the DOM</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
jane.<span class="me1">applySicker</span><span class="br0">&#40;</span><span class="st0">&quot;#jane .shirt&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax6-plain">// Render the sticker with john's state information to the DOM
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
john.applyNameTag("#john .shirt");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
// Render the sticker with jane's state information to the DOM
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
jane.applySicker("#jane .shirt");</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
<p>Although not directly related to working with Attributes, it's worth taking a look at the <code>applyNameTag()</code> and <code>updateNameTag()</code> implementations, since they establish
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
a commonly used pattern.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
<p>The <code>applyNameTag()</code> method handles rendering the initial visual representation for a speed dater object's state (in this case a name tag). It uses tokens in an HTML "template" string, which it replaces with the values 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
of attributes using the <code>substitute()</code> utility method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
<div id="syntax7" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// A template for the markup representing the SpeedDater object..</span></div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">NAMETAG</span> <span class="sy0">=</span> <span class="st0">'&lt;div class=&quot;sd-nametag&quot;&gt; <span class="es0">\</span></span></div></li><li class="li1"><div class="de1"><span class="st0">                        &lt;div class=&quot;sd-hd&quot;&gt;Hello!&lt;/div&gt; <span class="es0">\</span></span></div></li><li class="li1"><div class="de1"><span class="st0">                        &lt;div class=&quot;sd-bd&quot;&gt;I<span class="es0">\'</span>m &lt;span class=&quot;sd-name&quot;&gt;{name}&lt;/span&gt; <span class="es0">\ </span></span></div></li><li class="li2"><div class="de2"><span class="st0">                        and my PersonalityQuotientIndex is <span class="es0">\ </span></span></div></li><li class="li1"><div class="de1"><span class="st0">                        &lt;span class=&quot;sd-personality&quot;&gt;{personality}&lt;/span&gt; <span class="es0">\</span></span></div></li><li class="li1"><div class="de1"><span class="st0">                        &lt;/div&gt; <span class="es0">\</span></span></div></li><li class="li1"><div class="de1"><span class="st0">                        &lt;div class=&quot;sd-ft sd-availability&quot;&gt;{available}&lt;/div&gt; <span class="es0">\</span></span></div></li><li class="li1"><div class="de1"><span class="st0">                     &lt;/div&gt;'</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// A template for the markup representing the SpeedDater object..</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
SpeedDater.<span class="me1">NAMETAG</span> <span class="sy0">=</span> <span class="st0">'&lt;div class=&quot;sd-nametag&quot;&gt; <span class="es0">\</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
                        &lt;div class=&quot;sd-hd&quot;&gt;Hello!&lt;/div&gt; <span class="es0">\</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
                        &lt;div class=&quot;sd-bd&quot;&gt;I<span class="es0">\'</span>m &lt;span class=&quot;sd-name&quot;&gt;{name}&lt;/span&gt; <span class="es0">\ </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
                        and my PersonalityQuotientIndex is <span class="es0">\ </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
                        &lt;span class=&quot;sd-personality&quot;&gt;{personality}&lt;/span&gt; <span class="es0">\</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
                        &lt;/div&gt; <span class="es0">\</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
                        &lt;div class=&quot;sd-ft sd-availability&quot;&gt;{available}&lt;/div&gt; <span class="es0">\</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
                     &lt;/div&gt;'</span><span class="sy0">;</span></pre></div><textarea id="syntax7-plain">// A template for the markup representing the SpeedDater object..
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
SpeedDater.NAMETAG = '<div class="sd-nametag"> \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
                        <div class="sd-hd">Hello!</div> \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
                        <div class="sd-bd">I\'m <span class="sd-name">{name}</span> \ 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
                        and my PersonalityQuotientIndex is \ 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
                        <span class="sd-personality">{personality}</span> \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
                        </div> \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
                        <div class="sd-ft sd-availability">{available}</div> \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
                     </div>';</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
<div id="syntax8" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// A rendering method, used to create the initial markup for the SpeedDater.</span></div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">prototype</span>.<span class="me1">applyNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// This example uses an HTML template string containing placeholder </span></div></li><li class="li2"><div class="de2">    <span class="co1">// tokens (SpeedDater.NAMETAG above), and Y.substitute to replace the </span></div></li><li class="li1"><div class="de1">    <span class="co1">// tokens with the current attribute values.  </span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> tokens <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="co1">// Get attribute values and map them to the tokens in the HTML template string</span></div></li><li class="li2"><div class="de2">        <span class="kw3">name</span><span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        available<span class="sy0">:</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="st0">&quot;I'm still looking &quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Sorry, I'm taken&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        personality<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">// Create a new Node element, from the token substituted string... </span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">nameTag</span> <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">create</span><span class="br0">&#40;</span>Y.<span class="me1">substitute</span><span class="br0">&#40;</span>SpeedDater.<span class="me1">NAMETAG</span><span class="sy0">,</span> tokens<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// ... and append it to the DOM</span></div></li><li class="li1"><div class="de1">    Y.<span class="me1">one</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span>.<span class="me1">appendChild</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">nameTag</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// A rendering method, used to create the initial markup for the SpeedDater.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
SpeedDater.<span class="me1">prototype</span>.<span class="me1">applyNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
    <span class="co1">// This example uses an HTML template string containing placeholder </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
    <span class="co1">// tokens (SpeedDater.NAMETAG above), and Y.substitute to replace the </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
    <span class="co1">// tokens with the current attribute values.  </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
    <span class="kw2">var</span> tokens <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
        <span class="co1">// Get attribute values and map them to the tokens in the HTML template string</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
        <span class="kw3">name</span><span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
        available<span class="sy0">:</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="st0">&quot;I'm still looking &quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Sorry, I'm taken&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
        personality<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="br0">&#41;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
    <span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
    <span class="co1">// Create a new Node element, from the token substituted string... </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
    <span class="kw1">this</span>.<span class="me1">nameTag</span> <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">create</span><span class="br0">&#40;</span>Y.<span class="me1">substitute</span><span class="br0">&#40;</span>SpeedDater.<span class="me1">NAMETAG</span><span class="sy0">,</span> tokens<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
    <span class="co1">// ... and append it to the DOM</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
    Y.<span class="me1">one</span><span class="br0">&#40;</span>where<span class="br0">&#41;</span>.<span class="me1">appendChild</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">nameTag</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
<span class="br0">&#125;</span><span class="sy0">;</span></pre></div><textarea id="syntax8-plain">// A rendering method, used to create the initial markup for the SpeedDater.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
SpeedDater.prototype.applyNameTag = function(where) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
    // This example uses an HTML template string containing placeholder 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
    // tokens (SpeedDater.NAMETAG above), and Y.substitute to replace the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
    // tokens with the current attribute values.  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
    var tokens = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
        // Get attribute values and map them to the tokens in the HTML template string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
        name: this.get("name"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
        available: (this.get("available")) ? "I'm still looking " : "Sorry, I'm taken",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
        personality: this.get("personality")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
    // Create a new Node element, from the token substituted string... 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
    this.nameTag = Y.Node.create(Y.substitute(SpeedDater.NAMETAG, tokens));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
    // ... and append it to the DOM
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
    Y.one(where).appendChild(this.nameTag);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
};</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
<p>The <code>updateNameTag()</code> method handles updating this visual representation with the current state, when requested by the user</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
<div id="syntax9" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// An update method, used to refresh the rendered content, after </span></div></li><li class="li1"><div class="de1"><span class="co1">// an attribute value is changed.</span></div></li><li class="li1"><div class="de1">SpeedDater.<span class="me1">prototype</span>.<span class="me1">updateNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">// Get current attribute values...</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> taken <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="st0">&quot;I'm still looking &quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Sorry, I'm taken&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> <span class="kw3">name</span> <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> personality <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">// Find the corresponding element, and replace the innerHTML with the new value</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-name&quot;</span><span class="br0">&#41;</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="kw3">name</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-availability&quot;</span><span class="br0">&#41;</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> taken<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> personalityEl <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-personality&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div></li><li class="li2"><div class="de2">    personalityEl.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> personality<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>personality <span class="sy0">&gt;</span> <span class="nu0">90</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        personalityEl.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&quot;sd-max&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// An update method, used to refresh the rendered content, after </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
<span class="co1">// an attribute value is changed.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
SpeedDater.<span class="me1">prototype</span>.<span class="me1">updateNameTag</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
    <span class="co1">// Get current attribute values...</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    <span class="kw2">var</span> taken <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="st0">&quot;I'm still looking &quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Sorry, I'm taken&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
    <span class="kw2">var</span> <span class="kw3">name</span> <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
    <span class="kw2">var</span> personality <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
    <span class="co1">// Find the corresponding element, and replace the innerHTML with the new value</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
    <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-name&quot;</span><span class="br0">&#41;</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="kw3">name</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
    <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-availability&quot;</span><span class="br0">&#41;</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> taken<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
    <span class="kw2">var</span> personalityEl <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">nameTag</span>.<span class="me1">query</span><span class="br0">&#40;</span><span class="st0">&quot;.sd-personality&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
    personalityEl.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> personality<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
    <span class="kw1">if</span> <span class="br0">&#40;</span>personality <span class="sy0">&gt;</span> <span class="nu0">90</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
        personalityEl.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&quot;sd-max&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
<span class="br0">&#125;</span></pre></div><textarea id="syntax9-plain">// An update method, used to refresh the rendered content, after 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
// an attribute value is changed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
SpeedDater.prototype.updateNameTag = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
    // Get current attribute values...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
    var taken = (this.get("available")) ? "I'm still looking " : "Sorry, I'm taken";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
    var name = this.get("name");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
    var personality = this.get("personality");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
    // Find the corresponding element, and replace the innerHTML with the new value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
    this.nameTag.query(".sd-name").set("innerHTML", name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
    this.nameTag.query(".sd-availability").set("innerHTML", taken);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
    var personalityEl = this.nameTag.query(".sd-personality"); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
    personalityEl.set("innerHTML", personality);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
    if (personality > 90) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
        personalityEl.addClass("sd-max");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
<p>Each instance's state can be now be updated using Attribute's <code>set</code> method, and the subsequent call to SpeedDater's <code>updateNameTag()</code> method will update the visual representation (the rendered DOM) of the object:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
<div id="syntax10" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    john.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    john.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#john .taken&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    jane.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#jane .taken&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="sy0">,</span> <span class="nu0">98</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    jane.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#jane .upgrade&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
    john.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
    john.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#john .taken&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
    jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;available&quot;</span><span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
    jane.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#jane .taken&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
    jane.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;personality&quot;</span><span class="sy0">,</span> <span class="nu0">98</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
    jane.<span class="me1">updateNameTag</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#jane .upgrade&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax10-plain">Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
    john.set("available", false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
    john.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
}, "#john .taken");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
    jane.set("available", false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
    jane.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
}, "#jane .taken");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
    jane.set("personality", 98);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
    jane.updateNameTag();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
}, "#jane .upgrade");</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
<p>In the <a href="attribute-event-speeddate.html">"Attribute Event Based Speed Dating" example</a>, we'll see how we can use Attribute change events to eliminate the need for users to call <code>updateNameTag()</code> each time they set an attribute, and have the two instances communicate with one another.</p>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
    Attribute Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
								<li><a href='../attribute/attribute-basic.html'>Basic Attribute Configuration</a></li><li><a href='../attribute/attribute-rw.html'>Read-Only and Write-Once Attributes</a></li><li><a href='../attribute/attribute-event.html'>Attribute Change Events</a></li><li class='selected'><a href='../attribute/attribute-basic-speeddate.html'>Attribute Based Speed Dating</a></li><li><a href='../attribute/attribute-event-speeddate.html'>Attribute Event Based Speed Dating</a></li><li><a href='../attribute/attribute-getset.html'>Attribute Getters, Setters and Validators</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
						<h4>More Attribute Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
							<!-- <li><a href="http://developer.yahoo.com/yui/attribute/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
<li><a href="../../api/module_attribute.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="selected "><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">Other Useful YUI 3 Resources</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
var yuiConfig = {base:"../../build/", timeout: 10000};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
</html>