src/cm/media/js/lib/yui/yui3.0.0/examples/attribute/attribute-rw_clean.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
<meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
<title>Read-Only and Write-Once Attributes</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
/*margin and padding on body element
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
  can introduce errors in determining
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
  element position and are not recommended;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
  we turn them off as a foundation for YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
  CSS treatments. */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
body {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
	margin:0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
	padding:0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
<!--begin custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    .example-out .myclass-attrs {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        font-family:courier;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
        margin-top:2px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    .example-out .myclass-title {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        font-weight:bold;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        font-family:arial;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        color:#8dd5e7;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        margin-top:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        margin-bottom:3px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
    .example-out {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        overflow:auto;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        border:1px solid #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        color:#ffffff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        background-color:#004C6D;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        margin-top:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
        margin-bottom:20px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
        height:8em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        padding:2px 2px 2px 5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
    #writeInitial label, #writeAgain label, #writeInternally label {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
        font-weight:900;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
    #writeInitial .fooVal, #writeAgain .fooVal, #writeInternally .fooVal {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
        width:9em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    #writeInitial .barVal, #writeAgain .barVal, #writeInternally .barVal {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        width:9em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    #writeInitial p, #writeAgain p, #writeInternally p {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
        margin-top:0.2em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
        margin-bottom:0.2em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
        color:#004C6D;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
        font-size:108%;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
<!--end custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
<body class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
<h1>Read-Only and Write-Once Attributes</h1>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
<div class="exampleIntro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	Attributes can be configured to be <code>readOnly</code>, stopping them from being modified by the end user, or <code>writeOnce</code> allowing them to be set by the end user, but only once. This example demonstrates how to setup attributes for your class as <code>readOnly</code> or <code>writeOnce</code> attributes, and shows how their behavior differs when the end user attempts to set their values.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
<div id="writeInitial">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
    <p>Construct o1, setting initial values for both foo and bar in the constructor: </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
    <label>foo: <input type="text" value="Initial Foo" class="fooVal"></label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
    <label>bar: <input type="text" value="Initial Bar" class="barVal"></label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
    <button type="button" class="do">Initial Values</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
    <div class="example-out"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
<div id="writeAgain">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
    <p>Try setting values again, after they've been set once: </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
    <label>foo: <input type="text" value="Set Foo Again" class="fooVal"></label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
    <label>bar: <input type="text" value="Set Bar Again" class="barVal"></label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
    <button type="button" class="do">Set Again</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
    <div class="example-out"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
<div id="writeInternally">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
    <p>Call a MyClass method, which sets foo internally (using _set): </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
    <label>foo: <input type="text" value="Set Foo Internally" class="fooVal"></label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
    <button type="button" class="do">Set Internal</button>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
    <div class="example-out"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
YUI({base:"../../build/", timeout: 10000}).use("node", "attribute", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
    // Setup a custom class with attribute support
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
    function MyClass(cfg) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
        var attrs = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
            "foo" : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
                value: "Default Foo",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
                readOnly: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
            "bar" : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
                value: "Default Bar",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
                writeOnce: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
        this.addAttrs(attrs, cfg);
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
    MyClass.prototype.doSomething = function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
        // ... Do something which requires
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
        // MyClass to change the value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
        // of foo ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        // Host code can reset value of 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
        // readOnly attributes interally,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
        // by working with the private _set
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
        // property
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
        this._set("foo", val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
    Y.augment(MyClass, Y.Attribute);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
    function displayValues(o, title, node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
        var str = 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
            '<div class="myclass"><div class="myclass-title">' 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            + title + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
            '</div><ul class="myclass-attrs"><li>foo (readOnly): ' 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
            + o.get("foo") 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
            + '</li><li>bar (writeOnce): '
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
            + o.get("bar")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
            + '</li></ul></div>';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        Y.one(node).set("innerHTML", str);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
    var o1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
        var fooVal = Y.one("#writeInitial .fooVal").get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
        var barVal = Y.one("#writeInitial .barVal").get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        o1 = new MyClass({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
            foo: fooVal,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            bar: barVal
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
        displayValues(o1, "Attempt to set initial values in constructor", "#writeInitial .example-out");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
    }, "#writeInitial .do");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        if (o1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
            var fooVal = Y.one("#writeAgain .fooVal").get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
            var barVal = Y.one("#writeAgain .barVal").get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
            // Attempt to reset values:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
            o1.set("foo", fooVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
            o1.set("bar", barVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
            displayValues(o1, "Attempt to set values again, using set", "#writeAgain .example-out");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
    }, "#writeAgain .do");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
    Y.on("click", function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        if (o1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
            var val = Y.one("#writeInternally .fooVal").get("value");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            // Call method, which sets foo internally...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
            o1.doSomething(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
            displayValues(o1, "Set the value of foo (readOnly) internally", "#writeInternally .example-out");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
    }, "#writeInternally .do");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
</html>