src/cm/media/js/lib/yui/yui3.0.0/examples/overlay/overlay-anim-plugin.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: Overlay: Animation Plugin</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
    .yui-overlay-content {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
        background-color:#ccc;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        border:1px solid #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        padding:5px;
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
    .yui-overlay .yui-widget-hd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    .yui-overlay .yui-widget-bd, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
    .yui-overlay .yui-widget-ft {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
        background-color:#eee;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
        padding:2px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
        border:1px solid #999;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    .yui-overlay .yui-widget-bd {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        background-color:#fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
    } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
                <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
    47
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
	<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
    60
	<div id="pagetitle"><h1>YUI Library Examples: Overlay: Animation Plugin</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
	<h2>Overlay: Animation Plugin</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
	<p>This example shows how you can use Widget's plugin infrastructure to customize the existing behavior of a widget.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
<p>We create an Animation plugin class for Overlay called <code>AnimPlugin</code> which changes the way Overlay instances are shown/hidden, by fading them in and out. The Overlay is initially constructed with the <code>AnimPlugin</code> plugged in <em>(with the duration set to 2 seconds)</em>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
Clicking the "Unplug AnimPlugin" button, will restore the original non-Animated Overlay show/hide behavior. Clicking on the "Plug AnimPlugin" button will plug in the <code>AnimPlugin</code> again, but with a shorter duration.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
                <a href="overlay-anim-plugin_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
	<div id="overlay">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
    <div class="yui-widget-hd">Overlay Header</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
    <div class="yui-widget-bd">Overlay Body</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
    <div class="yui-widget-ft">Overlay Footer</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
<button type="button" id="show">Show</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
<button type="button" id="hide">Hide</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
<button type="button" id="unplug">Unplug AnimPlugin</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
<button type="button" id="plug">Plug AnimPlugin (duration:0.5)</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
YUI({base:"../../build/", timeout: 10000}).use("overlay", "anim", "plugin", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    /* Animation Plugin Constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
    function AnimPlugin(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        AnimPlugin.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
     * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
     * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
    AnimPlugin.NS = "fx";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
     * The NAME of the AnimPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
     * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
    AnimPlugin.NAME = "animPlugin";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
     * The default set of attributes for the AnimPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
    AnimPlugin.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
         * Default duration. Used by the default animation implementations
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
        duration : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
            value: 0.2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
         * Default animation instance used for showing the widget (opacity fade-in)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
        animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
		var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
                var boundingBox = host.get("boundingBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
                var anim = new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
                    node: boundingBox,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
                    to: { opacity: 1 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
                    duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
                // Set initial opacity, to avoid initial flicker
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
                if (!host.get("visible")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
                    boundingBox.setStyle("opacity", 0);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
                // Clean up, on destroy. Where supported, remove
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
                // opacity set using style. Else make 100% opaque
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
                anim.on("destroy", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
                    if (Y.UA.ie) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                        this.get("node").setStyle("opacity", 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
                    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
                        this.get("node").setStyle("opacity", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
                return anim;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
         * Default animation instance used for hiding the widget (opacity fade-out)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
        animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
            valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
                return new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
                    node: this.get("host").get("boundingBox"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
                    to: { opacity: 0 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
                    duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
     * Extend the base plugin class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
    Y.extend(AnimPlugin, Y.Plugin.Base, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
         * Initialization code. Called when the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
         * plugin is instantiated (whenever it's 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
         * plugged into the host)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
        initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
            this._bindAnimVisible();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
            this._bindAnimHidden();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
            this.after("animVisibleChange", this._bindAnimVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
            this.after("animHiddenChange", this._bindAnimHidden);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
            // Override default _uiSetVisible method, with custom animated method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
            this.doBefore("_uiSetVisible", this._uiAnimSetVisible);
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
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
         * Destruction code. Invokes destroy in the individual animation instances,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
         * and lets them take care of cleaning up any state.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
        destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
            this.get("animVisible").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
            this.get("animHidden").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
         * The custom animation method, added by the plugin.
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 method replaces the default _uiSetVisible handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
         * Widget provides, by injecting itself before _uiSetVisible,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
         * (using Plugins before method) and preventing the default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
         * behavior.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        _uiAnimSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
            if (this.get("host").get("rendered")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
                if (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
                    this.get("animHidden").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
                    this.get("animVisible").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                    this.get("animVisible").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                    this.get("animHidden").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
                return new Y.Do.Prevent("AnimPlugin prevented default show/hide");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
         * The original Widget _uiSetVisible implementation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
        _uiSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
            var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
            var hiddenClass = host.getClassName("hidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
            if (!val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
                host.get("boundingBox").addClass(hiddenClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                host.get("boundingBox").removeClass(hiddenClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
        /* Sets up call to invoke original visibility handling when the animVisible animation is started */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
        _bindAnimVisible : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
            var animVisible = this.get("animVisible");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
            // Setup original visibility handling (for show) before starting to animate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
            animVisible.on("start", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
                this._uiSetVisible(true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
            }, this));
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
        /* Sets up call to invoke original visibility handling when the animHidden animation is complete */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        _bindAnimHidden : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
            var animHidden = this.get("animHidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
            // Setup original visibility handling (for hide) after completing animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
            animHidden.after("end", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
                this._uiSetVisible(false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
            }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
        }
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
    // Create a new Overlay instance, and add AnimPlugin with a default duration of 2 seconds
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
    var overlay = new Y.Overlay({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
        contentBox: "#overlay",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
        width:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
        height:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
        visible:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
        shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
        align: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
            node: "#show", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            points: ["tl", "bl"]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
        plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
    overlay.render();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
        overlay.show();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
    }, "#show");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
        overlay.hide();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
    }, "#hide");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
    }, "#unplug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
        overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
        overlay.plug(AnimPlugin, {duration:0.5});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
    }, "#plug");
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>Creating an Animation Plugin For Overlay</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
<h4>Setting Up The YUI Instance</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
<p>For this example, we'll pull in the <code>overlay</code> module, along with the <code>anim</code> and <code>plugin</code> modules. The <code>anim</code> module provides the animation utility, and <code>plugin</code> will provide
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
the <code>Plugin</code> base class which we'll extend to create our <code>AnimPlugin</code>. The code to set up our sandbox instance is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><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;overlay&quot;</span><span class="sy0">,</span> <span class="st0">&quot;anim&quot;</span><span class="sy0">,</span> <span class="st0">&quot;plugin&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">    <span class="co1">// We'll write our code here, after pulling in the default </span></div></li><li class="li1"><div class="de1">    <span class="co1">// Overlay widget, the Animation utility and the </span></div></li><li class="li1"><div class="de1">    <span class="co1">// Plugin base class</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;">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;overlay&quot;</span><span class="sy0">,</span> <span class="st0">&quot;anim&quot;</span><span class="sy0">,</span> <span class="st0">&quot;plugin&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
   316
    <span class="co1">// We'll write our code here, after pulling in the default </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
    <span class="co1">// Overlay widget, the Animation utility and the </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
    <span class="co1">// Plugin base class</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax1-plain">YUI({...}).use("overlay", "anim", "plugin", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
    // We'll write our code here, after pulling in the default 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
    // Overlay widget, the Animation utility and the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
    // Plugin base class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
<p>Using the <code>overlay</code> module will also pull down the default CSS required for overlay, on top of which we only need to add our required look/feel CSS for the example.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
<h4>AnimPlugin Class Structure</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
<p>The <code>AnimPlugin</code> class will extend the <code>Plugin</code> base class. Since <code>Plugin</code> derives from <code>Base</code>, we follow the same pattern we use for widgets and other utilities which extend Base to setup our new class.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
<p>Namely:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
    <li>Setting up the constructor to invoke the superclass constructor</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
    <li>Setting up a <code>NAME</code> property, to identify the class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
    <li>Setting up the default attributes, using the <code>ATTRS</code> property</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    <li>Providing prototype implementations for anything we want executed during initialization and destruction using the <code>initializer</code> and <code>destructor</code> lifecycle methods</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
<p>Additionally, since this is a plugin, we provide a <code>NS</code> property for the class, which defines the property which will refer to the <code>AnimPlugin</code> instance on the host class (e.g. <code>overlay.fx</code> will be an instance of <code>AnimPlugin</code>)</p>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
<p>This basic structure is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
<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="coMULTI">/* Animation Plugin Constructor */</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> AnimPlugin<span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    AnimPlugin.<span class="me1">superclass</span>.<span class="me1">constructor</span>.<span class="me1">apply</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="sy0">,</span> arguments<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">&nbsp;</div></li><li class="li1"><div class="de1"><span class="coMULTI">/* </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* The namespace for the plugin. This will be the property on the widget, which will </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* reference the plugin instance, when it's plugged in</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li2"><div class="de2">AnimPlugin.<span class="me1">NS</span> <span class="sy0">=</span> <span class="st0">&quot;fx&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="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* The NAME of the AnimPlugin class. Used to prefix events generated</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* by the plugin class.</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li1"><div class="de1">AnimPlugin.<span class="kw3">NAME</span> <span class="sy0">=</span> <span class="st0">&quot;animPlugin&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="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;* The default set of attributes for the AnimPlugin class.</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li1"><div class="de1">AnimPlugin.<span class="me1">ATTRS</span> <span class="sy0">=</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="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * Default duration. Used by the default animation implementations</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    duration <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">0.2</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="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * Default animation instance used for showing the widget (opacity fade-in)</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    animVisible <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        valueFn <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="li2"><div class="de2">            ...</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="coMULTI">/*</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * Default animation instance used for hiding the widget (opacity fade-out)</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    animHidden <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        valueFn <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">            ...</div></li><li class="li2"><div class="de2">        <span class="br0">&#125;</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></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="coMULTI">/*</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;* Extend the base plugin class</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">extend</span><span class="br0">&#40;</span>AnimPlugin<span class="sy0">,</span> Y.<span class="me1">Plugin</span><span class="sy0">,</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">// Lifecycle methods</span></div></li><li class="li2"><div class="de2">    initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    destructor <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <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="co1">// Other plugin specific methods</span></div></li><li class="li1"><div class="de1">    _uiAnimSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">    _uiSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1"><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="coMULTI">/* Animation Plugin Constructor */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
<span class="kw2">function</span> AnimPlugin<span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
    AnimPlugin.<span class="me1">superclass</span>.<span class="me1">constructor</span>.<span class="me1">apply</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="sy0">,</span> arguments<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
<span class="coMULTI">/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
 * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
 * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
 */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
AnimPlugin.<span class="me1">NS</span> <span class="sy0">=</span> <span class="st0">&quot;fx&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
<span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
 * The NAME of the AnimPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
 * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
 */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
AnimPlugin.<span class="kw3">NAME</span> <span class="sy0">=</span> <span class="st0">&quot;animPlugin&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
<span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
 * The default set of attributes for the AnimPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
 */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
AnimPlugin.<span class="me1">ATTRS</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
     * Default duration. Used by the default animation implementations
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
    duration <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
        value<span class="sy0">:</span> <span class="nu0">0.2</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
     * Default animation instance used for showing the widget (opacity fade-in)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
    animVisible <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
        valueFn <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
   377
            ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
     * Default animation instance used for hiding the widget (opacity fade-out)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
    animHidden <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
        valueFn <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
   386
            ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
<span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
 * Extend the base plugin class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
 */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
Y.<span class="me1">extend</span><span class="br0">&#40;</span>AnimPlugin<span class="sy0">,</span> Y.<span class="me1">Plugin</span><span class="sy0">,</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
    <span class="co1">// Lifecycle methods</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
    initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
    destructor <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
    <span class="co1">// Other plugin specific methods</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
    _uiAnimSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
    _uiSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span> ... <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax2-plain">/* Animation Plugin Constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
function AnimPlugin(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
    AnimPlugin.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
 * The namespace for the plugin. This will be the property on the widget, which will 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
 * reference the plugin instance, when it's plugged in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
AnimPlugin.NS = "fx";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
 * The NAME of the AnimPlugin class. Used to prefix events generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
 * by the plugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
AnimPlugin.NAME = "animPlugin";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
 * The default set of attributes for the AnimPlugin class.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
AnimPlugin.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
     * Default duration. Used by the default animation implementations
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
    duration : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
        value: 0.2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
     * Default animation instance used for showing the widget (opacity fade-in)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
    animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
        valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
            ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
        }
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
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
     * Default animation instance used for hiding the widget (opacity fade-out)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
    animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
        valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
            ...
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
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
 * Extend the base plugin class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
Y.extend(AnimPlugin, Y.Plugin, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
    // Lifecycle methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
    initializer : function(config) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
    destructor : function() { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
    // Other plugin specific methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
    _uiAnimSetVisible : function(val) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
    _uiSetVisible : function(val) { ... },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
<h4>Attributes: animVisible, animHidden</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
<p>The <code>animVisible</code> and <code>animHidden</code> attributes use Attribute's <code>valueFn</code> support to set up instance based default values for the attributes.</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
<p>The <code>animHidden</code> attribute is pretty straight forward and simply returns the Animation instance bound to the bounding box of the Overlay to provide a fade-out animation:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">animHidden <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    valueFn <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="kw1">return</span> <span class="kw2">new</span> Y.<span class="me1">Anim</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            node<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">            to<span class="sy0">:</span> <span class="br0">&#123;</span> opacity<span class="sy0">:</span> <span class="nu0">0</span> <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">            duration<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;duration&quot;</span><span class="br0">&#41;</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="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">animHidden <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
    valueFn <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
   474
        <span class="kw1">return</span> <span class="kw2">new</span> Y.<span class="me1">Anim</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
            node<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
            to<span class="sy0">:</span> <span class="br0">&#123;</span> opacity<span class="sy0">:</span> <span class="nu0">0</span> <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
            duration<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;duration&quot;</span><span class="br0">&#41;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
        <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
   479
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
<span class="br0">&#125;</span></pre></div><textarea id="syntax3-plain">animHidden : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
    valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
        return new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
            node: this.get("host").get("boundingBox"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
            to: { opacity: 0 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
            duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
<p>The <code>animVisible</code> attribute is a little more interesting:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
<div id="syntax4" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">animVisible <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    valueFn <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">        <span class="kw2">var</span> host <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">            boundingBox <span class="sy0">=</span> host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&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="kw2">var</span> anim <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Anim</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            node<span class="sy0">:</span> boundingBox<span class="sy0">,</span></div></li><li class="li1"><div class="de1">            to<span class="sy0">:</span> <span class="br0">&#123;</span> opacity<span class="sy0">:</span> <span class="nu0">1</span> <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">            duration<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;duration&quot;</span><span class="br0">&#41;</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="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">// Set initial opacity, to avoid initial flicker</span></div></li><li class="li1"><div class="de1">        <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;visible&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">            boundingBox.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="nu0">0</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="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">// Clean up, on destroy. Where supported, remove</span></div></li><li class="li1"><div class="de1">        <span class="co1">// opacity set using style. Else make 100% opaque</span></div></li><li class="li2"><div class="de2">        anim.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;destroy&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">            <span class="kw1">if</span> <span class="br0">&#40;</span>Y.<span class="me1">UA</span>.<span class="me1">ie</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">                <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="br0">&#41;</span>.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">            <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">                <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="br0">&#41;</span>.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><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">        <span class="br0">&#125;</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="kw1">return</span> anim<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;">animVisible <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
    valueFn <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
   493
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
        <span class="kw2">var</span> host <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
            boundingBox <span class="sy0">=</span> host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
        <span class="kw2">var</span> anim <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Anim</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
            node<span class="sy0">:</span> boundingBox<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
            to<span class="sy0">:</span> <span class="br0">&#123;</span> opacity<span class="sy0">:</span> <span class="nu0">1</span> <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
            duration<span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;duration&quot;</span><span class="br0">&#41;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
        <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
   502
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
        <span class="co1">// Set initial opacity, to avoid initial flicker</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
        <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;visible&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
            boundingBox.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
        <span class="co1">// Clean up, on destroy. Where supported, remove</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
        <span class="co1">// opacity set using style. Else make 100% opaque</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
        anim.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;destroy&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
   511
            <span class="kw1">if</span> <span class="br0">&#40;</span>Y.<span class="me1">UA</span>.<span class="me1">ie</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
                <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="br0">&#41;</span>.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
            <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
                <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="br0">&#41;</span>.<span class="me1">setStyle</span><span class="br0">&#40;</span><span class="st0">&quot;opacity&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
            <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
        <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
   517
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
        <span class="kw1">return</span> anim<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
<span class="br0">&#125;</span></pre></div><textarea id="syntax4-plain">animVisible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
    valueFn : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
        var host = this.get("host"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
            boundingBox = host.get("boundingBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
        var anim = new Y.Anim({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
            node: boundingBox,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
            to: { opacity: 1 },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
            duration: this.get("duration")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        // Set initial opacity, to avoid initial flicker
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
        if (!host.get("visible")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
            boundingBox.setStyle("opacity", 0);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
        // Clean up, on destroy. Where supported, remove
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
        // opacity set using style. Else make 100% opaque
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
        anim.on("destroy", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
            if (Y.UA.ie) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
                this.get("node").setStyle("opacity", 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
                this.get("node").setStyle("opacity", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
        return anim;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
<p>It essentially does the same thing as <code>animHidden</code>; setting up an Animation instance to provide an opacity based fade-in. However it also sets up a listener which will attempt to cleanup the opacity state of the Overlay when the plugin is unplugged from the Overlay. When a plugin is unplugged, it is destroyed.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
<h4>Lifecycle Methods: initializer, destructor</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
<p>In the <code>initializer</code>, we set up listeners on the animation instances (using <code>_bindAnimVisible, _bindAnimHidden</code>), which invoke the original visibility handling to make the Overlay visible before starting the <code>animVisible</code> animation and hide it after the <code>animHidden</code> animation is complete.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
<div id="syntax5" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._bindAnimVisible<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._bindAnimHidden<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="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;animVisibleChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._bindAnimVisible<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">after</span><span class="br0">&#40;</span><span class="st0">&quot;animHiddenChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._bindAnimHidden<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">// Override default _uiSetVisible method, with custom animated method</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">doBefore</span><span class="br0">&#40;</span><span class="st0">&quot;_uiSetVisible&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._uiAnimSetVisible<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">...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">_bindAnimVisible <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="li2"><div class="de2">    <span class="kw2">var</span> animVisible <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&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">    animVisible.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;start&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</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">// Setup original visibility handling (for show) before starting to animate</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._uiSetVisible<span class="br0">&#40;</span><span class="kw2">true</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> <span class="kw1">this</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</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">_bindAnimHidden <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="kw2">var</span> animHidden <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</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">    animHidden.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;end&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</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">// Setup original visibility handling (for hide) after completing animation</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._uiSetVisible<span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw1">this</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</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;">initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
    <span class="kw1">this</span>._bindAnimVisible<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
   558
    <span class="kw1">this</span>._bindAnimHidden<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
   559
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;animVisibleChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._bindAnimVisible<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;animHiddenChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._bindAnimHidden<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
    <span class="co1">// Override default _uiSetVisible method, with custom animated method</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
    <span class="kw1">this</span>.<span class="me1">doBefore</span><span class="br0">&#40;</span><span class="st0">&quot;_uiSetVisible&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._uiAnimSetVisible<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
<span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
_bindAnimVisible <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
   570
    <span class="kw2">var</span> animVisible <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
    animVisible.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;start&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</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
   573
        <span class="co1">// Setup original visibility handling (for show) before starting to animate</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
        <span class="kw1">this</span>._uiSetVisible<span class="br0">&#40;</span><span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
    <span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw1">this</span><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
   576
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
_bindAnimHidden <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
   579
    <span class="kw2">var</span> animHidden <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
    animHidden.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;end&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</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
   582
        <span class="co1">// Setup original visibility handling (for hide) after completing animation</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
        <span class="kw1">this</span>._uiSetVisible<span class="br0">&#40;</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
   584
    <span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw1">this</span><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
   585
<span class="br0">&#125;</span></pre></div><textarea id="syntax5-plain">initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    this._bindAnimVisible();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
    this._bindAnimHidden();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
    this.after("animVisibleChange", this._bindAnimVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
    this.after("animHiddenChange", this._bindAnimHidden);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
    // Override default _uiSetVisible method, with custom animated method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
    this.doBefore("_uiSetVisible", this._uiAnimSetVisible);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
_bindAnimVisible : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
    var animVisible = this.get("animVisible");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
    animVisible.on("start", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
        // Setup original visibility handling (for show) before starting to animate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
        this._uiSetVisible(true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
    }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
_bindAnimHidden : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
    var animHidden = this.get("animHidden");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
    animHidden.after("end", Y.bind(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
        // Setup original visibility handling (for hide) after completing animation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
        this._uiSetVisible(false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
    }, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
However the key part of the <code>initializer</code> method is the call to <code>this.doBefore("_uiSetVisible", this._uiAnimSetVisible)</code> <em>(line 9)</em>. <code>Plugin</code>'s <code>doBefore</code> and <code>doAfter</code> methods, will let you set up both before/after event listeners, as well as inject code to be executed before or after a given method on the host object (in this case the Overlay) is invoked.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
For the animation plugin, we want to change how the Overlay updates its UI in response to changes to the <code>visible</code> attribute. Instead of simply flipping visibility (through the application of the <code>yui-overlay-hidden</code> class), we want to fade the Overlay in and out. Therefore, we inject our custom animation method, <code>_uiSetAnimVisible</code>, before the Overlay's <code>_uiSetVisible</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
</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
<p>Using <code>Plugin</code>'s <code>doBefore/doAfter</code> methods to setup any event listeners and method injection code on the host object (Overlay), ensures that the custom behavior is removed when the plugin is unplugged from the host, restoring it's original behavior.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
<p>The <code>destructor</code> simply calls <code>destroy</code> on the animation instances used, and lets them perform their own cleanup (as defined in the discussion on attributes):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
<div id="syntax6" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">destructor <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="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="me1">destroy</span><span class="br0">&#40;</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">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="me1">destroy</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">destructor <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
   627
    <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="me1">destroy</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
   628
    <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="me1">destroy</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
   629
<span class="br0">&#125;</span><span class="sy0">,</span></pre></div><textarea id="syntax6-plain">destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
    this.get("animVisible").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
    this.get("animHidden").destroy();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
},</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
<h4>The Animated Visibility Method</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
<p>The <code>_uiAnimSetVisible</code> method is the method we use to over-ride the default visibility handling for the Overlay. Instead of simply adding or removing the <code>yui-overlay-hidden</code> class, it starts the appropriate animation depending on whether or not visible is being set to true or false:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
<div id="syntax7" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_uiAnimSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</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;host&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;rendered&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">if</span> <span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="kw3">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="kw3">stop</span><span class="br0">&#40;</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">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="me1">run</span><span class="br0">&#40;</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="kw1">return</span> <span class="kw2">new</span> Y.<span class="kw1">Do</span>.<span class="me1">Halt</span><span class="br0">&#40;</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="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_uiAnimSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
    <span class="kw1">if</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;host&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;rendered&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
        <span class="kw1">if</span> <span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="kw3">stop</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
   641
            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="me1">run</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
   642
        <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animVisible&quot;</span><span class="br0">&#41;</span>.<span class="kw3">stop</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
   644
            <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;animHidden&quot;</span><span class="br0">&#41;</span>.<span class="me1">run</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
   645
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
        <span class="kw1">return</span> <span class="kw2">new</span> Y.<span class="kw1">Do</span>.<span class="me1">Halt</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
   647
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
<span class="br0">&#125;</span></pre></div><textarea id="syntax7-plain">_uiAnimSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
    if (this.get("host").get("rendered")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
        if (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
            this.get("animHidden").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
            this.get("animVisible").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
            this.get("animVisible").stop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
            this.get("animHidden").run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
        return new Y.Do.Halt();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
<p>Since this method is injected before the default method which handles visibility changes for Overlay (<code>_uiSetVisibility</code>), we invoke <code>Y.Do.Halt()</code> to prevent the original method from being invoked, since we'd like to invoke it in response to the animation starting or completing. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
<code>Y.Do</code> is YUI's aop infrastructure and is used under the hood by Plugin's <code>doBefore</code> and <code>doAfter</code> methods when injecting code</p>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
<h4>The Original Visibility Method</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
<p>The original visiblity handling for Overlay is replicated in the <code>AnimPlugin</code>'s <code>_uiSetVisible</code> method and is invoked before starting the <code>animVisible</code> animation and after completing the <code>animHidden</code> animation as described above.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
<div id="syntax8" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_uiSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> host <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span>host.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;hidden&quot;</span><span class="br0">&#41;</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="kw1">else</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span>host.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;hidden&quot;</span><span class="br0">&#41;</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="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_uiSetVisible <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
    <span class="kw2">var</span> host <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;host&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
        host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span>host.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;hidden&quot;</span><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
   671
    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
        host.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;boundingBox&quot;</span><span class="br0">&#41;</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span>host.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;hidden&quot;</span><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
   673
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
<span class="br0">&#125;</span></pre></div><textarea id="syntax8-plain">_uiSetVisible : function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
    var host = this.get("host");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
    if (!val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
        host.get("boundingBox").addClass(host.getClassName("hidden"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
        host.get("boundingBox").removeClass(host.getClassName("hidden"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
<p><strong>NOTE:</strong> We're evaluating whether or not <code>Y.Do</code> may provide access to the original method for a future release, which would make this replicated code unnecessary.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
<h4>Using The Plugin</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
<p>All objects which derive from <a href="../../api/Base.html">Base</a> are <a href="../../api/Plugin.Host.html">Plugin Hosts</a>. They provide <code>plug</code> and <code>unplug</code> methods to allow users to add/remove plugins to/from existing instances. They also allow the user to specify the set of plugins to be applied to a new instance, along with their configurations, as part of the constructor arguments:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
<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="kw2">var</span> overlay <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Overlay</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    contentBox<span class="sy0">:</span> <span class="st0">&quot;#overlay&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    width<span class="sy0">:</span><span class="st0">&quot;10em&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    height<span class="sy0">:</span><span class="st0">&quot;10em&quot;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">    visible<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    shim<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    align<span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        node<span class="sy0">:</span> <span class="st0">&quot;#show&quot;</span><span class="sy0">,</span> </div></li><li class="li1"><div class="de1">        points<span class="sy0">:</span> <span class="br0">&#91;</span><span class="st0">&quot;tl&quot;</span><span class="sy0">,</span> <span class="st0">&quot;bl&quot;</span><span class="br0">&#93;</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">    plugins <span class="sy0">:</span> <span class="br0">&#91;</span><span class="br0">&#123;</span>fn<span class="sy0">:</span>AnimPlugin<span class="sy0">,</span> cfg<span class="sy0">:</span><span class="br0">&#123;</span>duration<span class="sy0">:</span><span class="nu0">2</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#93;</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="li1"><div class="de1">overlay.<span class="me1">render</span><span class="br0">&#40;</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="kw2">var</span> overlay <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Overlay</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
    contentBox<span class="sy0">:</span> <span class="st0">&quot;#overlay&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
    width<span class="sy0">:</span><span class="st0">&quot;10em&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
    height<span class="sy0">:</span><span class="st0">&quot;10em&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
    visible<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
    shim<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
    align<span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
        node<span class="sy0">:</span> <span class="st0">&quot;#show&quot;</span><span class="sy0">,</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
        points<span class="sy0">:</span> <span class="br0">&#91;</span><span class="st0">&quot;tl&quot;</span><span class="sy0">,</span> <span class="st0">&quot;bl&quot;</span><span class="br0">&#93;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
    plugins <span class="sy0">:</span> <span class="br0">&#91;</span><span class="br0">&#123;</span>fn<span class="sy0">:</span>AnimPlugin<span class="sy0">,</span> cfg<span class="sy0">:</span><span class="br0">&#123;</span>duration<span class="sy0">:</span><span class="nu0">2</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#93;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
<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
   700
overlay.<span class="me1">render</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax9-plain">var overlay = new Y.Overlay({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
    contentBox: "#overlay",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
    width:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
    height:"10em",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
    visible:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
    shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
    align: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
        node: "#show", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
        points: ["tl", "bl"]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
    plugins : [{fn:AnimPlugin, cfg:{duration:2}}]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
overlay.render();</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
<p>We use the constructor support to setup the <code>AnimPlugin</code> for the instance with a custom value for its <code>duration</code> attribute as shown on line 11 above.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
<p><strong>NOTE:</strong> In the interests of keeping the example focused on the plugin infrastructure, we turn off shimming for the overlay. If we needed to enable shimming, In IE6, we'd need to remove the alpha opacity filter set on the shim while animating, to have IE animate the contents of the Overlay correctly.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
<p>The example also uses the <code>plug</code> and <code>unplug</code> methods, to add and remove the custom animation behavior after the instance is created:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
<div id="syntax10" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// Listener for the &quot;Unplug AnimPlugin&quot; button, </span></div></li><li class="li1"><div class="de1"><span class="co1">// removes the AnimPlugin from the overlay instance</span></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">    overlay.<span class="me1">unplug</span><span class="br0">&#40;</span><span class="st0">&quot;fx&quot;</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> <span class="st0">&quot;#unplug&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">// Listener for the &quot;Plug AnimPlugin&quot; button, </span></div></li><li class="li1"><div class="de1"><span class="co1">// removes the AnimPlugin from the overlay instance, </span></div></li><li class="li1"><div class="de1"><span class="co1">// and re-adds it with a new, shorter duration value.</span></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">    overlay.<span class="me1">unplug</span><span class="br0">&#40;</span><span class="st0">&quot;fx&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    overlay.<span class="me1">plug</span><span class="br0">&#40;</span>AnimPlugin<span class="sy0">,</span> <span class="br0">&#123;</span>duration<span class="sy0">:</span><span class="nu0">0.5</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#plug&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">// Listener for the &quot;Unplug AnimPlugin&quot; button, </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
<span class="co1">// removes the AnimPlugin from the overlay instance</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
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
   722
    overlay.<span class="me1">unplug</span><span class="br0">&#40;</span><span class="st0">&quot;fx&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#unplug&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
<span class="co1">// Listener for the &quot;Plug AnimPlugin&quot; button, </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
<span class="co1">// removes the AnimPlugin from the overlay instance, </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
<span class="co1">// and re-adds it with a new, shorter duration value.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
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
   729
    overlay.<span class="me1">unplug</span><span class="br0">&#40;</span><span class="st0">&quot;fx&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
    overlay.<span class="me1">plug</span><span class="br0">&#40;</span>AnimPlugin<span class="sy0">,</span> <span class="br0">&#123;</span>duration<span class="sy0">:</span><span class="nu0">0.5</span><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
   731
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#plug&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax10-plain">// Listener for the "Unplug AnimPlugin" button, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
// removes the AnimPlugin from the overlay instance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
    overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
}, "#unplug");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
// Listener for the "Plug AnimPlugin" button, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
// removes the AnimPlugin from the overlay instance, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
// and re-adds it with a new, shorter duration value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
    overlay.unplug("fx");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
    overlay.plug(AnimPlugin, {duration:0.5});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
}, "#plug");</textarea></div>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
    Overlay Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
								<li><a href='../overlay/overlay-xy.html'>Basic XY Positioning</a></li><li><a href='../overlay/overlay-align.html'>Extended XY Positioning</a></li><li><a href='../overlay/overlay-stack.html'>Stack Support</a></li><li><a href='../overlay/overlay-stdmod.html'>Standard Module Support</a></li><li><a href='../overlay/overlay-io-plugin.html'>IO Plugin</a></li><li class='selected'><a href='../overlay/overlay-anim-plugin.html'>Animation Plugin</a></li><li><a href='../node-focusmanager/node-focusmanager-3.html'>Accessible Menu Button (included with examples for Focus Manager Node Plugin)</a></li><li><a href='../stylesheet/stylesheet_theme.html'>Adjusting a page theme on the fly (included with examples for StyleSheet)</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
						<h4>More Overlay Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
							<!-- <li><a href="http://developer.yahoo.com/yui/overlay/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
<li><a href="../../api/module_overlay.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
<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="item"><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="selected "><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
   781
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
        <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
   788
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
var yuiConfig = {base:"../../build/", timeout: 10000};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
</html>