data tables are going to need some work yet, but the other stuff seems to be working 100%
4151 lines
340 KiB
HTML
4151 lines
340 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: button button.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
|
|
<h3>Button <span class="subtitle">2.6.0</span></h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_button.html">button</a>
|
|
|
|
> button.js (source view)
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form name="yui-classopts-form">
|
|
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 #classopts { display:none; }
|
|
</style>
|
|
<div class="highlight" ><pre><span class="c">/**</span>
|
|
<span class="c">* @module button</span>
|
|
<span class="c">* @description <p>The Button Control enables the creation of rich, graphical </span>
|
|
<span class="c">* buttons that function like traditional HTML form buttons. <em>Unlike</em> </span>
|
|
<span class="c">* tradition HTML form buttons, buttons created with the Button Control can have </span>
|
|
<span class="c">* a label that is different from its value. With the inclusion of the optional </span>
|
|
<span class="c">* <a href="module_menu.html">Menu Control</a>, the Button Control can also be</span>
|
|
<span class="c">* used to create menu buttons and split buttons, controls that are not </span>
|
|
<span class="c">* available natively in HTML. The Button Control can also be thought of as a </span>
|
|
<span class="c">* way to create more visually engaging implementations of the browser's </span>
|
|
<span class="c">* default radio-button and check-box controls.</p></span>
|
|
<span class="c">* <p>The Button Control supports the following types:</p></span>
|
|
<span class="c">* <dl></span>
|
|
<span class="c">* <dt>push</dt></span>
|
|
<span class="c">* <dd>Basic push button that can execute a user-specified command when </span>
|
|
<span class="c">* pressed.</dd></span>
|
|
<span class="c">* <dt>link</dt></span>
|
|
<span class="c">* <dd>Navigates to a specified url when pressed.</dd></span>
|
|
<span class="c">* <dt>submit</dt></span>
|
|
<span class="c">* <dd>Submits the parent form when pressed.</dd></span>
|
|
<span class="c">* <dt>reset</dt></span>
|
|
<span class="c">* <dd>Resets the parent form when pressed.</dd></span>
|
|
<span class="c">* <dt>checkbox</dt></span>
|
|
<span class="c">* <dd>Maintains a "checked" state that can be toggled on and off.</dd></span>
|
|
<span class="c">* <dt>radio</dt></span>
|
|
<span class="c">* <dd>Maintains a "checked" state that can be toggled on and off. Use with </span>
|
|
<span class="c">* the ButtonGroup class to create a set of controls that are mutually </span>
|
|
<span class="c">* exclusive; checking one button in the set will uncheck all others in </span>
|
|
<span class="c">* the group.</dd></span>
|
|
<span class="c">* <dt>menu</dt></span>
|
|
<span class="c">* <dd>When pressed will show/hide a menu.</dd></span>
|
|
<span class="c">* <dt>split</dt></span>
|
|
<span class="c">* <dd>Can execute a user-specified command or display a menu when pressed.</dd></span>
|
|
<span class="c">* </dl></span>
|
|
<span class="c">* @title Button</span>
|
|
<span class="c">* @namespace YAHOO.widget</span>
|
|
<span class="c">* @requires yahoo, dom, element, event</span>
|
|
<span class="c">* @optional container, menu</span>
|
|
<span class="c">*/</span>
|
|
|
|
|
|
<span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The Button class creates a rich, graphical button.</span>
|
|
<span class="c"> * @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code>, <code>&#60;button&#62;</code>,</span>
|
|
<span class="c"> * <code>&#60;a&#62;</code>, or <code>&#60;span&#62;</code> element to </span>
|
|
<span class="c"> * be used to create the button.</span>
|
|
<span class="c"> * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c"> * one-html.html#ID-6043025">HTMLInputElement</a>|<a href="http://www.w3.org</span>
|
|
<span class="c"> * /TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-34812697"></span>
|
|
<span class="c"> * HTMLButtonElement</a>|<a href="</span>
|
|
<span class="c"> * http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#</span>
|
|
<span class="c"> * ID-33759296">HTMLElement</a>} p_oElement Object reference for the </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code>, <code>&#60;button&#62;</code>, </span>
|
|
<span class="c"> * <code>&#60;a&#62;</code>, or <code>&#60;span&#62;</code> element to be </span>
|
|
<span class="c"> * used to create the button.</span>
|
|
<span class="c"> * @param {Object} p_oElement Object literal specifying a set of </span>
|
|
<span class="c"> * configuration attributes used to create the button.</span>
|
|
<span class="c"> * @param {Object} p_oAttributes Optional. Object literal specifying a set </span>
|
|
<span class="c"> * of configuration attributes used to create the button.</span>
|
|
<span class="c"> * @namespace YAHOO.widget</span>
|
|
<span class="c"> * @class Button</span>
|
|
<span class="c"> * @constructor</span>
|
|
<span class="c"> * @extends YAHOO.util.Element</span>
|
|
<span class="c"> */</span>
|
|
|
|
|
|
|
|
<span class="c">// Shorthard for utilities</span>
|
|
<span class="c"></span>
|
|
<span class="k">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
|
|
<span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">,</span>
|
|
<span class="nx">UA</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">,</span>
|
|
<span class="nx">Overlay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">,</span>
|
|
<span class="nx">Menu</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Menu</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">// Private member variables</span>
|
|
<span class="c"></span>
|
|
<span class="nx">m_oButtons</span> <span class="o">=</span> <span class="o">{},</span> <span class="c">// Collection of all Button instances</span>
|
|
<span class="c"></span> <span class="nx">m_oOverlayManager</span> <span class="o">=</span> <span class="kc">null</span><span class="o">,</span> <span class="c">// YAHOO.widget.OverlayManager instance</span>
|
|
<span class="c"></span> <span class="nx">m_oSubmitTrigger</span> <span class="o">=</span> <span class="kc">null</span><span class="o">,</span> <span class="c">// The button that submitted the form </span>
|
|
<span class="c"></span> <span class="nx">m_oFocusedButton</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> <span class="c">// The button that has focus</span>
|
|
<span class="c"></span>
|
|
|
|
|
|
<span class="c">// Private methods</span>
|
|
<span class="c"></span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method createInputElement</span>
|
|
<span class="c"> * @description Creates an <code>&#60;input&#62;</code> element of the </span>
|
|
<span class="c"> * specified type.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String specifying the type of </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code> element to create.</span>
|
|
<span class="c"> * @param {String} p_sName String specifying the name of </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code> element to create.</span>
|
|
<span class="c"> * @param {String} p_sValue String specifying the value of </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code> element to create.</span>
|
|
<span class="c"> * @param {String} p_bChecked Boolean specifying if the </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code> element is to be checked.</span>
|
|
<span class="c"> * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c"> * one-html.html#ID-6043025">HTMLInputElement</a>}</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">function</span> <span class="nx">createInputElement</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_sName</span><span class="o">,</span> <span class="nx">p_sValue</span><span class="o">,</span> <span class="nx">p_bChecked</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oInput</span><span class="o">,</span>
|
|
<span class="nx">sInput</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_sName</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> For IE it is necessary to create the element with the </span>
|
|
<span class="c"> "type," "name," "value," and "checked" properties set all </span>
|
|
<span class="c"> at once.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">sInput</span> <span class="o">=</span> <span class="s2">"<input type=\""</span> <span class="o">+</span> <span class="nx">p_sType</span> <span class="o">+</span> <span class="s2">"\" name=\""</span> <span class="o">+</span>
|
|
<span class="nx">p_sName</span> <span class="o">+</span> <span class="s2">"\""</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_bChecked</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sInput</span> <span class="o">+=</span> <span class="s2">" checked"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">sInput</span> <span class="o">+=</span> <span class="s2">">"</span><span class="o">;</span>
|
|
|
|
<span class="nx">oInput</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="nx">sInput</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oInput</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"input"</span><span class="o">);</span>
|
|
<span class="nx">oInput</span><span class="o">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">p_sName</span><span class="o">;</span>
|
|
<span class="nx">oInput</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">p_sType</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_bChecked</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oInput</span><span class="o">.</span><span class="nx">checked</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oInput</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">p_sValue</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">oInput</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method setAttributesFromSrcElement</span>
|
|
<span class="c"> * @description Gets the values for all the attributes of the source element </span>
|
|
<span class="c"> * (either <code>&#60;input&#62;</code> or <code>&#60;a&#62;</code>) that </span>
|
|
<span class="c"> * map to Button configuration attributes and sets them into a collection </span>
|
|
<span class="c"> * that is passed to the Button constructor.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c"> * one-html.html#ID-6043025">HTMLInputElement</a>|<a href="http://www.w3.org/</span>
|
|
<span class="c"> * TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-</span>
|
|
<span class="c"> * 48250443">HTMLAnchorElement</a>} p_oElement Object reference to the HTML </span>
|
|
<span class="c"> * element (either <code>&#60;input&#62;</code> or <code>&#60;span&#62;</span>
|
|
<span class="c"> * </code>) used to create the button.</span>
|
|
<span class="c"> * @param {Object} p_oAttributes Object reference for the collection of </span>
|
|
<span class="c"> * configuration attributes used to create the button.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">function</span> <span class="nx">setAttributesFromSrcElement</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oAttributes</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sSrcElementNodeName</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">(),</span>
|
|
<span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">oAttribute</span><span class="o">,</span>
|
|
<span class="nx">oRootNode</span><span class="o">,</span>
|
|
<span class="nx">sText</span><span class="o">;</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method setAttributeFromDOMAttribute</span>
|
|
<span class="c"> * @description Gets the value of the specified DOM attribute and sets it </span>
|
|
<span class="c"> * into the collection of configuration attributes used to configure </span>
|
|
<span class="c"> * the button.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sAttribute String representing the name of the </span>
|
|
<span class="c"> * attribute to retrieve from the DOM element.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">function</span> <span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="nx">p_sAttribute</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!(</span><span class="nx">p_sAttribute</span> <span class="k">in</span> <span class="nx">p_oAttributes</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Need to use "getAttributeNode" instead of "getAttribute" </span>
|
|
<span class="c"> because using "getAttribute," IE will return the innerText </span>
|
|
<span class="c"> of a <code>&#60;button&#62;</code> for the value attribute </span>
|
|
<span class="c"> rather than the value of the "value" attribute.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">oAttribute</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">getAttributeNode</span><span class="o">(</span><span class="nx">p_sAttribute</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oAttribute</span> <span class="o">&&</span> <span class="o">(</span><span class="s2">"value"</span> <span class="k">in</span> <span class="nx">oAttribute</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Setting attribute \""</span> <span class="o">+</span> <span class="nx">p_sAttribute</span> <span class="o">+</span>
|
|
<span class="s2">"\" using source element's attribute value of \""</span> <span class="o">+</span>
|
|
<span class="nx">oAttribute</span><span class="o">.</span><span class="nx">value</span> <span class="o">+</span> <span class="s2">"\""</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="nx">me</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">[</span><span class="nx">p_sAttribute</span><span class="o">]</span> <span class="o">=</span> <span class="nx">oAttribute</span><span class="o">.</span><span class="nx">value</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method setFormElementProperties</span>
|
|
<span class="c"> * @description Gets the value of the attributes from the form element </span>
|
|
<span class="c"> * and sets them into the collection of configuration attributes used to </span>
|
|
<span class="c"> * configure the button.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">function</span> <span class="nx">setFormElementProperties</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"button"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">"push"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!(</span><span class="s2">"disabled"</span> <span class="k">in</span> <span class="nx">p_oAttributes</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">disabled</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"name"</span><span class="o">);</span>
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"value"</span><span class="o">);</span>
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"title"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">sSrcElementNodeName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"A"</span><span class="o">:</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">"link"</span><span class="o">;</span>
|
|
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"href"</span><span class="o">);</span>
|
|
<span class="nx">setAttributeFromDOMAttribute</span><span class="o">(</span><span class="s2">"target"</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"INPUT"</span><span class="o">:</span>
|
|
|
|
<span class="nx">setFormElementProperties</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!(</span><span class="s2">"checked"</span> <span class="k">in</span> <span class="nx">p_oAttributes</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">checked</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">checked</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"BUTTON"</span><span class="o">:</span>
|
|
|
|
<span class="nx">setFormElementProperties</span><span class="o">();</span>
|
|
|
|
<span class="nx">oRootNode</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">oRootNode</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span> <span class="o">+</span> <span class="s2">"-checked"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">checked</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">oRootNode</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span> <span class="o">+</span> <span class="s2">"-disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">removeAttribute</span><span class="o">(</span><span class="s2">"value"</span><span class="o">);</span>
|
|
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">(</span><span class="s2">"type"</span><span class="o">,</span> <span class="s2">"button"</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">removeAttribute</span><span class="o">(</span><span class="s2">"id"</span><span class="o">);</span>
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">removeAttribute</span><span class="o">(</span><span class="s2">"name"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!(</span><span class="s2">"tabindex"</span> <span class="k">in</span> <span class="nx">p_oAttributes</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">tabindex</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">tabIndex</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!(</span><span class="s2">"label"</span> <span class="k">in</span> <span class="nx">p_oAttributes</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="c">// Set the "label" property</span>
|
|
<span class="c"></span>
|
|
<span class="nx">sText</span> <span class="o">=</span> <span class="nx">sSrcElementNodeName</span> <span class="o">==</span> <span class="s2">"INPUT"</span> <span class="o">?</span>
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">value</span> <span class="o">:</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">innerHTML</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sText</span> <span class="o">&&</span> <span class="nx">sText</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oAttributes</span><span class="o">.</span><span class="k">label</span> <span class="o">=</span> <span class="nx">sText</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method initConfig</span>
|
|
<span class="c"> * @description Initializes the set of configuration attributes that are </span>
|
|
<span class="c"> * used to instantiate the button.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {Object} Object representing the button's set of </span>
|
|
<span class="c"> * configuration attributes.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">function</span> <span class="nx">initConfig</span><span class="o">(</span><span class="nx">p_oConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oAttributes</span> <span class="o">=</span> <span class="nx">p_oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">srcelement</span><span class="o">,</span>
|
|
<span class="nx">sSrcElementNodeName</span> <span class="o">=</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">(),</span>
|
|
<span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sSrcElementNodeName</span> <span class="o">==</span> <span class="k">this</span><span class="o">.</span><span class="nx">NODE_NAME</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oConfig</span><span class="o">.</span><span class="nx">element</span> <span class="o">=</span> <span class="nx">oSrcElement</span><span class="o">;</span>
|
|
<span class="nx">p_oConfig</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsBy</span><span class="o">(</span><span class="k">function</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">())</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"BUTTON"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"A"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"INPUT"</span><span class="o">:</span>
|
|
|
|
<span class="nx">setAttributesFromSrcElement</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="nx">me</span><span class="o">,</span> <span class="nx">p_oElement</span><span class="o">,</span>
|
|
<span class="nx">oAttributes</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span> <span class="s2">"*"</span><span class="o">,</span> <span class="nx">oSrcElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">sSrcElementNodeName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"BUTTON"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"A"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"INPUT"</span><span class="o">:</span>
|
|
|
|
<span class="nx">setAttributesFromSrcElement</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">oSrcElement</span><span class="o">,</span>
|
|
<span class="nx">oAttributes</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
|
|
<span class="c">// Constructor</span>
|
|
<span class="c"></span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oAttributes</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Overlay</span> <span class="o">&&</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Overlay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Menu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Menu</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Menu</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">fnSuperClass</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">,</span>
|
|
<span class="nx">oConfig</span><span class="o">,</span>
|
|
<span class="nx">oElement</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">arguments</span><span class="o">.</span><span class="nx">length</span> <span class="o">==</span> <span class="m">1</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">generateId</span><span class="o">();</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"No value specified for the button's \"id\" "</span> <span class="o">+</span>
|
|
<span class="s2">"attribute. Setting button id to \""</span> <span class="o">+</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span>
|
|
<span class="s2">"\"."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"No source HTML element. Building the button "</span> <span class="o">+</span>
|
|
<span class="s2">"using the set of configuration attributes."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">fnSuperClass</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">createButtonElement</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">type</span><span class="o">)),</span> <span class="nx">p_oElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oConfig</span> <span class="o">=</span> <span class="o">{</span> <span class="nx">element</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span> <span class="nx">attributes</span><span class="o">:</span> <span class="o">(</span><span class="nx">p_oAttributes</span> <span class="o">||</span> <span class="o">{})</span> <span class="o">};</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Building the button using an existing "</span> <span class="o">+</span>
|
|
<span class="s2">"HTML element as a source element."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">srcelement</span> <span class="o">=</span> <span class="nx">oElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">initConfig</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Source element could not be used "</span> <span class="o">+</span>
|
|
<span class="s2">"as is. Creating a new HTML element for "</span> <span class="o">+</span>
|
|
<span class="s2">"the button."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createButtonElement</span><span class="o">(</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">type</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">fnSuperClass</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">generateId</span><span class="o">();</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"No value specified for the button's "</span> <span class="o">+</span>
|
|
<span class="s2">"\"id\" attribute. Setting button id to \""</span> <span class="o">+</span>
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">"\"."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Building the button using an existing HTML "</span> <span class="o">+</span>
|
|
<span class="s2">"element as a source element."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">srcelement</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">initConfig</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Source element could not be used as is."</span> <span class="o">+</span>
|
|
<span class="s2">" Creating a new HTML element for the button."</span><span class="o">,</span>
|
|
<span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createButtonElement</span><span class="o">(</span><span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">.</span><span class="nx">type</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">fnSuperClass</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">attributes</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Element</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
|
|
<span class="c">// Protected properties</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _button</span>
|
|
<span class="c"> * @description Object reference to the button's internal </span>
|
|
<span class="c"> * <code>&#60;a&#62;</code> or <code>&#60;button&#62;</code> element.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-48250443">HTMLAnchorElement</a>|<a href="</span>
|
|
<span class="c"> * http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html</span>
|
|
<span class="c"> * #ID-34812697">HTMLButtonElement</a></span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_button</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _menu</span>
|
|
<span class="c"> * @description Object reference to the button's menu.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type {<a href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a>|</span>
|
|
<span class="c"> * <a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a>}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_menu</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _hiddenFields</span>
|
|
<span class="c"> * @description Object reference to the <code>&#60;input&#62;</code> </span>
|
|
<span class="c"> * element, or array of HTML form elements used to represent the button</span>
|
|
<span class="c"> * when its parent form is submitted.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-6043025">HTMLInputElement</a>|Array</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_hiddenFields</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _onclickAttributeValue</span>
|
|
<span class="c"> * @description Object reference to the button's current value for the </span>
|
|
<span class="c"> * "onclick" configuration attribute.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onclickAttributeValue</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _activationKeyPressed</span>
|
|
<span class="c"> * @description Boolean indicating if the key(s) that toggle the button's </span>
|
|
<span class="c"> * "active" state have been pressed.</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_activationKeyPressed</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _activationButtonPressed</span>
|
|
<span class="c"> * @description Boolean indicating if the mouse button that toggles </span>
|
|
<span class="c"> * the button's "active" state has been pressed.</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_activationButtonPressed</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _hasKeyEventHandlers</span>
|
|
<span class="c"> * @description Boolean indicating if the button's "blur", "keydown" and </span>
|
|
<span class="c"> * "keyup" event handlers are assigned</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_hasKeyEventHandlers</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _hasMouseEventHandlers</span>
|
|
<span class="c"> * @description Boolean indicating if the button's "mouseout," </span>
|
|
<span class="c"> * "mousedown," and "mouseup" event handlers are assigned</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_hasMouseEventHandlers</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @property _nOptionRegionX</span>
|
|
<span class="c"> * @description Number representing the X coordinate of the leftmost edge of the Button's </span>
|
|
<span class="c"> * option region. Applies only to Buttons of type "split".</span>
|
|
<span class="c"> * @default 0</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_nOptionRegionX</span><span class="o">:</span> <span class="m">0</span><span class="o">,</span>
|
|
|
|
|
|
|
|
<span class="c">// Constants</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property NODE_NAME</span>
|
|
<span class="c"> * @description The name of the node to be used for the button's </span>
|
|
<span class="c"> * root element.</span>
|
|
<span class="c"> * @default "SPAN"</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">NODE_NAME</span><span class="o">:</span> <span class="s2">"SPAN"</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property CHECK_ACTIVATION_KEYS</span>
|
|
<span class="c"> * @description Array of numbers representing keys that (when pressed) </span>
|
|
<span class="c"> * toggle the button's "checked" attribute.</span>
|
|
<span class="c"> * @default [32]</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CHECK_ACTIVATION_KEYS</span><span class="o">:</span> <span class="o">[</span><span class="m">32</span><span class="o">],</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property ACTIVATION_KEYS</span>
|
|
<span class="c"> * @description Array of numbers representing keys that (when presed) </span>
|
|
<span class="c"> * toggle the button's "active" state.</span>
|
|
<span class="c"> * @default [13, 32]</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">ACTIVATION_KEYS</span><span class="o">:</span> <span class="o">[</span><span class="m">13</span><span class="o">,</span> <span class="m">32</span><span class="o">],</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property OPTION_AREA_WIDTH</span>
|
|
<span class="c"> * @description Width (in pixels) of the area of a split button that </span>
|
|
<span class="c"> * when pressed will display a menu.</span>
|
|
<span class="c"> * @default 20</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">OPTION_AREA_WIDTH</span><span class="o">:</span> <span class="m">20</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property CSS_CLASS_NAME</span>
|
|
<span class="c"> * @description String representing the CSS class(es) to be applied to </span>
|
|
<span class="c"> * the button's root element.</span>
|
|
<span class="c"> * @default "yui-button"</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CSS_CLASS_NAME</span><span class="o">:</span> <span class="s2">"yui-button"</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property RADIO_DEFAULT_TITLE</span>
|
|
<span class="c"> * @description String representing the default title applied to buttons </span>
|
|
<span class="c"> * of type "radio." </span>
|
|
<span class="c"> * @default "Unchecked. Click to check."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">RADIO_DEFAULT_TITLE</span><span class="o">:</span> <span class="s2">"Unchecked. Click to check."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property RADIO_CHECKED_TITLE</span>
|
|
<span class="c"> * @description String representing the title applied to buttons of </span>
|
|
<span class="c"> * type "radio" when checked.</span>
|
|
<span class="c"> * @default "Checked. Click another button to uncheck"</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">RADIO_CHECKED_TITLE</span><span class="o">:</span> <span class="s2">"Checked. Click another button to uncheck"</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property CHECKBOX_DEFAULT_TITLE</span>
|
|
<span class="c"> * @description String representing the default title applied to </span>
|
|
<span class="c"> * buttons of type "checkbox." </span>
|
|
<span class="c"> * @default "Unchecked. Click to check."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CHECKBOX_DEFAULT_TITLE</span><span class="o">:</span> <span class="s2">"Unchecked. Click to check."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property CHECKBOX_CHECKED_TITLE</span>
|
|
<span class="c"> * @description String representing the title applied to buttons of type </span>
|
|
<span class="c"> * "checkbox" when checked.</span>
|
|
<span class="c"> * @default "Checked. Click to uncheck."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CHECKBOX_CHECKED_TITLE</span><span class="o">:</span> <span class="s2">"Checked. Click to uncheck."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property MENUBUTTON_DEFAULT_TITLE</span>
|
|
<span class="c"> * @description String representing the default title applied to </span>
|
|
<span class="c"> * buttons of type "menu." </span>
|
|
<span class="c"> * @default "Menu collapsed. Click to expand."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">MENUBUTTON_DEFAULT_TITLE</span><span class="o">:</span> <span class="s2">"Menu collapsed. Click to expand."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property MENUBUTTON_MENU_VISIBLE_TITLE</span>
|
|
<span class="c"> * @description String representing the title applied to buttons of type </span>
|
|
<span class="c"> * "menu" when the button's menu is visible. </span>
|
|
<span class="c"> * @default "Menu expanded. Click or press Esc to collapse."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">MENUBUTTON_MENU_VISIBLE_TITLE</span><span class="o">:</span>
|
|
<span class="s2">"Menu expanded. Click or press Esc to collapse."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property SPLITBUTTON_DEFAULT_TITLE</span>
|
|
<span class="c"> * @description String representing the default title applied to </span>
|
|
<span class="c"> * buttons of type "split." </span>
|
|
<span class="c"> * @default "Menu collapsed. Click inside option region or press </span>
|
|
<span class="c"> * Ctrl + Shift + M to show the menu."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">SPLITBUTTON_DEFAULT_TITLE</span><span class="o">:</span> <span class="o">(</span><span class="s2">"Menu collapsed. Click inside option "</span> <span class="o">+</span>
|
|
<span class="s2">"region or press down arrow key to show the menu."</span><span class="o">),</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property SPLITBUTTON_OPTION_VISIBLE_TITLE</span>
|
|
<span class="c"> * @description String representing the title applied to buttons of type </span>
|
|
<span class="c"> * "split" when the button's menu is visible. </span>
|
|
<span class="c"> * @default "Menu expanded. Press Esc or Ctrl + Shift + M to hide </span>
|
|
<span class="c"> * the menu."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">SPLITBUTTON_OPTION_VISIBLE_TITLE</span><span class="o">:</span>
|
|
<span class="s2">"Menu expanded. Press Esc to hide the menu."</span><span class="o">,</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @property SUBMIT_TITLE</span>
|
|
<span class="c"> * @description String representing the title applied to buttons of </span>
|
|
<span class="c"> * type "submit." </span>
|
|
<span class="c"> * @default "Click to submit form."</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">SUBMIT_TITLE</span><span class="o">:</span> <span class="s2">"Click to submit form."</span><span class="o">,</span>
|
|
|
|
|
|
|
|
<span class="c">// Protected attribute setter methods</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setType</span>
|
|
<span class="c"> * @description Sets the value of the button's "type" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} p_sType String indicating the value for the button's </span>
|
|
<span class="c"> * "type" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setType</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_sType</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"option"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onOption</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setLabel</span>
|
|
<span class="c"> * @description Sets the value of the button's "label" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} p_sLabel String indicating the value for the button's </span>
|
|
<span class="c"> * "label" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setLabel</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sLabel</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">p_sLabel</span><span class="o">;</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Remove and add the default class name from the root element</span>
|
|
<span class="c"> for Gecko to ensure that the button shrinkwraps to the label.</span>
|
|
<span class="c"> Without this the button will not be rendered at the correct </span>
|
|
<span class="c"> width when the label changes. The most likely cause for this </span>
|
|
<span class="c"> bug is button's use of the Gecko-specific CSS display type of </span>
|
|
<span class="c"> "-moz-inline-box" to simulate "inline-block" supported by IE, </span>
|
|
<span class="c"> Safari and Opera.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sClass</span><span class="o">,</span>
|
|
<span class="nx">nGeckoVersion</span> <span class="o">=</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">gecko</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nGeckoVersion</span> <span class="o">&&</span> <span class="nx">nGeckoVersion</span> <span class="o"><</span> <span class="m">1</span><span class="o">.</span><span class="m">9</span> <span class="o">&&</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">)))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sClass</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">sClass</span><span class="o">);</span>
|
|
|
|
<span class="nx">Lang</span><span class="o">.</span><span class="nx">later</span><span class="o">(</span><span class="m">0</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">addClass</span><span class="o">,</span> <span class="nx">sClass</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setTabIndex</span>
|
|
<span class="c"> * @description Sets the value of the button's "tabindex" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Number} p_nTabIndex Number indicating the value for the </span>
|
|
<span class="c"> * button's "tabindex" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setTabIndex</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_nTabIndex</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">tabIndex</span> <span class="o">=</span> <span class="nx">p_nTabIndex</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setTitle</span>
|
|
<span class="c"> * @description Sets the value of the button's "title" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} p_nTabIndex Number indicating the value for </span>
|
|
<span class="c"> * the button's "title" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setTitle</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sTitle</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sTitle</span> <span class="o">=</span> <span class="nx">p_sTitle</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"link"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">sTitle</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"radio"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">RADIO_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"checkbox"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">CHECKBOX_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"menu"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">MENUBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"split"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">SPLITBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"submit"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">SUBMIT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">sTitle</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setDisabled</span>
|
|
<span class="c"> * @description Sets the value of the button's "disabled" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Boolean} p_bDisabled Boolean indicating the value for </span>
|
|
<span class="c"> * the button's "disabled" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setDisabled</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_bDisabled</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"link"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_bDisabled</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hasFocus</span><span class="o">())</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">,</span> <span class="s2">"disabled"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"hover"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"focus"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">removeAttribute</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setHref</span>
|
|
<span class="c"> * @description Sets the value of the button's "href" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} p_sHref String indicating the value for the button's </span>
|
|
<span class="c"> * "href" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setHref</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sHref</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"link"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">href</span> <span class="o">=</span> <span class="nx">p_sHref</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setTarget</span>
|
|
<span class="c"> * @description Sets the value of the button's "target" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} p_sTarget String indicating the value for the button's </span>
|
|
<span class="c"> * "target" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setTarget</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sTarget</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"link"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">(</span><span class="s2">"target"</span><span class="o">,</span> <span class="nx">p_sTarget</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setChecked</span>
|
|
<span class="c"> * @description Sets the value of the button's "target" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Boolean} p_bChecked Boolean indicating the value for </span>
|
|
<span class="c"> * the button's "checked" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setChecked</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_bChecked</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">sTitle</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_bChecked</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">);</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">RADIO_CHECKED_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">CHECKBOX_CHECKED_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">);</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">RADIO_DEFAULT_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">CHECKBOX_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasDefaultTitle</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setMenu</span>
|
|
<span class="c"> * @description Sets the value of the button's "menu" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Object} p_oMenu Object indicating the value for the button's </span>
|
|
<span class="c"> * "menu" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setMenu</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bLazyLoad</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"lazyloadmenu"</span><span class="o">),</span>
|
|
<span class="nx">oButtonElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span>
|
|
<span class="nx">sMenuCSSClassName</span><span class="o">,</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Boolean indicating if the value of p_oMenu is an instance </span>
|
|
<span class="c"> of YAHOO.widget.Menu or YAHOO.widget.Overlay.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">bInstance</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
|
|
<span class="nx">oMenu</span><span class="o">,</span>
|
|
<span class="nx">oMenuElement</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span><span class="o">,</span>
|
|
<span class="nx">aItems</span><span class="o">,</span>
|
|
<span class="nx">nItems</span><span class="o">,</span>
|
|
<span class="nx">oItem</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">function</span> <span class="nx">onAppendTo</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">render</span><span class="o">(</span><span class="nx">oButtonElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">onAppendTo</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">function</span> <span class="nx">setMenuContainer</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"container"</span><span class="o">,</span> <span class="nx">oButtonElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">setMenuContainer</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">function</span> <span class="nx">initMenu</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oContainer</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">oMenu</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menuclassname"</span><span class="o">));</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">oMenu</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"yui-"</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">+</span> <span class="s2">"-button-menu"</span><span class="o">);</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onMenuShow</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onMenuHide</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">renderEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onMenuRender</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bLazyLoad</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oContainer</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"container"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oContainer</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"container"</span><span class="o">,</span> <span class="nx">oContainer</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">setMenuContainer</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"clicktohide"</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">keyDownEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onMenuKeyDown</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMenuClick</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">itemAddedEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onMenuItemAdded</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">srcElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">"SELECT"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">oSrcElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Overlay</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">m_oOverlayManager</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">m_oOverlayManager</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">OverlayManager</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">m_oOverlayManager</span><span class="o">.</span><span class="nx">register</span><span class="o">(</span><span class="nx">oMenu</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_menu</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bInstance</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">bLazyLoad</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="nx">oButtonElement</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">render</span><span class="o">(</span><span class="nx">oButtonElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">onAppendTo</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sMenuCSSClassName</span> <span class="o">=</span> <span class="nx">Menu</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oMenu</span> <span class="o">&&</span> <span class="nx">Menu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">p_oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="nx">p_oMenu</span><span class="o">;</span>
|
|
<span class="nx">aItems</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">getItems</span><span class="o">();</span>
|
|
<span class="nx">nItems</span> <span class="o">=</span> <span class="nx">aItems</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
<span class="nx">bInstance</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nItems</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">i</span> <span class="o">=</span> <span class="nx">nItems</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span>
|
|
|
|
<span class="k">do</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oItem</span> <span class="o">=</span> <span class="nx">aItems</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_onMenuItemSelected</span><span class="o">,</span> <span class="nx">oItem</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">while</span> <span class="o">(</span><span class="nx">i</span><span class="o">--);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span> <span class="o">&&</span> <span class="nx">p_oMenu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">p_oMenu</span> <span class="k">instanceof</span> <span class="nx">Overlay</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="nx">p_oMenu</span><span class="o">;</span>
|
|
<span class="nx">bInstance</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Menu</span><span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">generateId</span><span class="o">(),</span> <span class="o">{</span> <span class="nx">lazyload</span><span class="o">:</span> <span class="nx">bLazyLoad</span><span class="o">,</span> <span class="nx">itemdata</span><span class="o">:</span> <span class="nx">p_oMenu</span> <span class="o">});</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_menu</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">initMenu</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenuElement</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenuElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">oMenuElement</span><span class="o">,</span> <span class="nx">sMenuCSSClassName</span><span class="o">)</span> <span class="o">||</span>
|
|
<span class="nx">oMenuElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">"SELECT"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Menu</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">,</span> <span class="o">{</span> <span class="nx">lazyload</span><span class="o">:</span> <span class="nx">bLazyLoad</span> <span class="o">});</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Overlay</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">,</span> <span class="o">{</span> <span class="nx">visible</span><span class="o">:</span> <span class="kc">false</span> <span class="o">});</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">p_oMenu</span> <span class="o">&&</span> <span class="nx">p_oMenu</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">,</span> <span class="nx">sMenuCSSClassName</span><span class="o">)</span> <span class="o">||</span>
|
|
<span class="nx">p_oMenu</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">"SELECT"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Menu</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">,</span> <span class="o">{</span> <span class="nx">lazyload</span><span class="o">:</span> <span class="nx">bLazyLoad</span> <span class="o">});</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">p_oMenu</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">generateId</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Overlay</span><span class="o">(</span><span class="nx">p_oMenu</span><span class="o">,</span> <span class="o">{</span> <span class="nx">visible</span><span class="o">:</span> <span class="kc">false</span> <span class="o">});</span>
|
|
|
|
<span class="nx">initMenu</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setOnClick</span>
|
|
<span class="c"> * @description Sets the value of the button's "onclick" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Object} p_oObject Object indicating the value for the button's </span>
|
|
<span class="c"> * "onclick" attribute.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setOnClick</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oObject</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Remove any existing listeners if a "click" event handler </span>
|
|
<span class="c"> has already been specified.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span> <span class="o">&&</span>
|
|
<span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span> <span class="o">!=</span> <span class="nx">p_oObject</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span><span class="o">.</span><span class="nx">fn</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span> <span class="o">&&</span>
|
|
<span class="nx">Lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">p_oObject</span><span class="o">)</span> <span class="o">&&</span>
|
|
<span class="nx">Lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">p_oObject</span><span class="o">.</span><span class="nx">fn</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="nx">p_oObject</span><span class="o">.</span><span class="nx">fn</span><span class="o">,</span> <span class="nx">p_oObject</span><span class="o">.</span><span class="nx">obj</span><span class="o">,</span> <span class="nx">p_oObject</span><span class="o">.</span><span class="nx">scope</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_onclickAttributeValue</span> <span class="o">=</span> <span class="nx">p_oObject</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _setSelectedMenuItem</span>
|
|
<span class="c"> * @description Sets the value of the button's </span>
|
|
<span class="c"> * "selectedMenuItem" attribute.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Number} p_nIndex Number representing the index of the item </span>
|
|
<span class="c"> * in the button's menu that is currently selected.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setSelectedMenuItem</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_nIndex</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">,</span>
|
|
<span class="nx">oMenuItem</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenuItem</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">getItem</span><span class="o">(</span><span class="nx">p_nIndex</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenuItem</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">// Protected methods</span>
|
|
<span class="c"></span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _isActivationKey</span>
|
|
<span class="c"> * @description Determines if the specified keycode is one that toggles </span>
|
|
<span class="c"> * the button's "active" state.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Number} p_nKeyCode Number representing the keycode to </span>
|
|
<span class="c"> * be evaluated.</span>
|
|
<span class="c"> * @return {Boolean}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_isActivationKey</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_nKeyCode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">aKeyCodes</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">CHECK_ACTIVATION_KEYS</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">ACTIVATION_KEYS</span><span class="o">,</span>
|
|
|
|
<span class="nx">nKeyCodes</span> <span class="o">=</span> <span class="nx">aKeyCodes</span><span class="o">.</span><span class="nx">length</span><span class="o">,</span>
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nKeyCodes</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">i</span> <span class="o">=</span> <span class="nx">nKeyCodes</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span>
|
|
|
|
<span class="k">do</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_nKeyCode</span> <span class="o">==</span> <span class="nx">aKeyCodes</span><span class="o">[</span><span class="nx">i</span><span class="o">])</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">while</span> <span class="o">(</span><span class="nx">i</span><span class="o">--);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _isSplitButtonOptionKey</span>
|
|
<span class="c"> * @description Determines if the specified keycode is one that toggles </span>
|
|
<span class="c"> * the display of the split button's menu.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> * @return {Boolean}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_isSplitButtonOptionKey</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bShowMenu</span> <span class="o">=</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">==</span> <span class="m">40</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">onKeyPress</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="s2">"keypress"</span><span class="o">,</span> <span class="nx">onKeyPress</span><span class="o">);</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">// Prevent the browser from scrolling the window</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">bShowMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">opera</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"keypress"</span><span class="o">,</span> <span class="nx">onKeyPress</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bShowMenu</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _addListenersToForm</span>
|
|
<span class="c"> * @description Adds event handlers to the button's form.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_addListenersToForm</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oForm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getForm</span><span class="o">(),</span>
|
|
<span class="nx">onFormKeyPress</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">onFormKeyPress</span><span class="o">,</span>
|
|
<span class="nx">bHasKeyPressListener</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span><span class="o">,</span>
|
|
<span class="nx">aListeners</span><span class="o">,</span>
|
|
<span class="nx">nListeners</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"reset"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onFormReset</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"submit"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onFormSubmit</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"submit"</span> <span class="o">||</span>
|
|
<span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span><span class="o">))</span>
|
|
<span class="o">{</span>
|
|
|
|
<span class="nx">aListeners</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getListeners</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"keypress"</span><span class="o">);</span>
|
|
<span class="nx">bHasKeyPressListener</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">aListeners</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">nListeners</span> <span class="o">=</span> <span class="nx">aListeners</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nListeners</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">i</span> <span class="o">=</span> <span class="nx">nListeners</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span>
|
|
|
|
<span class="k">do</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">aListeners</span><span class="o">[</span><span class="nx">i</span><span class="o">].</span><span class="nx">fn</span> <span class="o">==</span> <span class="nx">onFormKeyPress</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bHasKeyPressListener</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">while</span> <span class="o">(</span><span class="nx">i</span><span class="o">--);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bHasKeyPressListener</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"keypress"</span><span class="o">,</span> <span class="nx">onFormKeyPress</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _showMenu</span>
|
|
<span class="c"> * @description Shows the button's menu.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event) that triggered </span>
|
|
<span class="c"> * the display of the menu.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_showMenu</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuManager</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">MenuManager</span><span class="o">.</span><span class="nx">hideVisible</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">m_oOverlayManager</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oOverlayManager</span><span class="o">.</span><span class="nx">hideAll</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">,</span>
|
|
<span class="nx">aMenuAlignment</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menualignment"</span><span class="o">),</span>
|
|
<span class="nx">bFocusMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"focusmenu"</span><span class="o">),</span>
|
|
<span class="nx">fnFocusMethod</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_renderedMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">,</span>
|
|
<span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span> <span class="nx">aMenuAlignment</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="nx">aMenuAlignment</span><span class="o">[</span><span class="m">1</span><span class="o">]]);</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"preventcontextoverlap"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"constraintoviewport"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">,</span>
|
|
<span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span> <span class="nx">aMenuAlignment</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="nx">aMenuAlignment</span><span class="o">[</span><span class="m">1</span><span class="o">]]);</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"preventcontextoverlap"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"constraintoviewport"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Refocus the Button before showing its Menu in case the call to </span>
|
|
<span class="c"> YAHOO.widget.MenuManager.hideVisible() resulted in another element in the </span>
|
|
<span class="c"> DOM being focused after another Menu was hidden.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="c">// Since Menus automatically focus themselves when made visible, temporarily </span>
|
|
<span class="c"></span> <span class="c">// replace the Menu focus method so that the value of the Button's "focusmenu"</span>
|
|
<span class="c"></span> <span class="c">// attribute determines if the Menu should be focus when made visible.</span>
|
|
<span class="c"></span>
|
|
<span class="nx">fnFocusMethod</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">focus</span><span class="o">;</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">focus</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{};</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_renderedMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"minscrollheight"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menuminscrollheight"</span><span class="o">));</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"maxheight"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menumaxheight"</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"minscrollheight"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menuminscrollheight"</span><span class="o">));</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">queueProperty</span><span class="o">(</span><span class="s2">"maxheight"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"menumaxheight"</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">focus</span> <span class="o">=</span> <span class="nx">fnFocusMethod</span><span class="o">;</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">align</span><span class="o">();</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Stop the propagation of the event so that the MenuManager </span>
|
|
<span class="c"> doesn't blur the menu after it gets focus.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"mousedown"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">stopPropagation</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bFocusMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Overlay</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_renderedMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">render</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">).</span><span class="nx">parentNode</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">align</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _hideMenu</span>
|
|
<span class="c"> * @description Hides the button's menu.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_hideMenu</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
|
|
|
|
<span class="c">// Protected event handlers</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMouseOver</span>
|
|
<span class="c"> * @description "mouseover" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMouseOver</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">oElement</span><span class="o">,</span>
|
|
<span class="nx">nOptionRegionX</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">===</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">);</span>
|
|
<span class="nx">nOptionRegionX</span> <span class="o">=</span>
|
|
<span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getX</span><span class="o">(</span><span class="nx">oElement</span><span class="o">)</span> <span class="o">+</span> <span class="o">(</span><span class="nx">oElement</span><span class="o">.</span><span class="nx">offsetWidth</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">OPTION_AREA_WIDTH</span><span class="o">));</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span> <span class="o">=</span> <span class="nx">nOptionRegionX</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasMouseEventHandlers</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">===</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"mousemove"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMouseMove</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"mouseout"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMouseOut</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasMouseEventHandlers</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"hover"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">===</span> <span class="s2">"split"</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="nx">nOptionRegionX</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"hoveroption"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"activeoption"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mouseup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseUp</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMouseMove</span>
|
|
<span class="c"> * @description "mousemove" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMouseMove</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nOptionRegionX</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="nx">nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"hoveroption"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"hoveroption"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMouseOut</span>
|
|
<span class="c"> * @description "mouseout" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMouseOut</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"hover"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">!=</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mouseup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseUp</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">===</span> <span class="s2">"split"</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"hoveroption"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onDocumentMouseUp</span>
|
|
<span class="c"> * @description "mouseup" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onDocumentMouseUp</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">oTarget</span><span class="o">,</span>
|
|
<span class="nx">oMenuElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"menu"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oTarget</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
<span class="nx">oMenuElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oTarget</span> <span class="o">!=</span> <span class="nx">oMenuElement</span> <span class="o">&&</span>
|
|
<span class="o">!</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="nx">oMenuElement</span><span class="o">,</span> <span class="nx">oTarget</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">((</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"menu"</span> <span class="o">?</span>
|
|
<span class="s2">"active"</span> <span class="o">:</span> <span class="s2">"activeoption"</span><span class="o">));</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mouseup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseUp</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMouseDown</span>
|
|
<span class="c"> * @description "mousedown" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMouseDown</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span><span class="o">,</span>
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">function</span> <span class="nx">onMouseUp</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="s2">"mouseup"</span><span class="o">,</span> <span class="nx">onMouseUp</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">p_oEvent</span><span class="o">.</span><span class="nx">which</span> <span class="o">||</span> <span class="nx">p_oEvent</span><span class="o">.</span><span class="nx">button</span><span class="o">)</span> <span class="o">==</span> <span class="m">1</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">hasFocus</span><span class="o">())</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"option"</span><span class="o">,</span> <span class="nx">p_oEvent</span><span class="o">);</span>
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">isActive</span><span class="o">())</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_showMenu</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"split"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenuTimer</span> <span class="o">=</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">later</span><span class="o">(</span><span class="m">250</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">,</span> <span class="o">[</span><span class="s2">"mouseup"</span><span class="o">,</span> <span class="nx">onMouseUp</span><span class="o">]);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMouseUp</span>
|
|
<span class="c"> * @description "mouseup" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMouseUp</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">oHideMenuTimer</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_hideMenuTimer</span><span class="o">,</span>
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oHideMenuTimer</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oHideMenuTimer</span><span class="o">.</span><span class="nx">cancel</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">,</span> <span class="o">!(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">)));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationButtonPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">!=</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"split"</span> <span class="o">&&</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onFocus</span>
|
|
<span class="c"> * @description "focus" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onFocus</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oElement</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"focus"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_activationKeyPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">m_oFocusedButton</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasKeyEventHandlers</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">;</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"blur"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onBlur</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"keydown"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onKeyDown</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"keyup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onKeyUp</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasKeyEventHandlers</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"focus"</span><span class="o">,</span> <span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onBlur</span>
|
|
<span class="c"> * @description "blur" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onBlur</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"focus"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_activationKeyPressed</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"keyup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentKeyUp</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">m_oFocusedButton</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"blur"</span><span class="o">,</span> <span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onDocumentKeyUp</span>
|
|
<span class="c"> * @description "keyup" event handler for the document.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onDocumentKeyUp</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_isActivationKey</span><span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationKeyPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"keyup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentKeyUp</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onKeyDown</span>
|
|
<span class="c"> * @description "keydown" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onKeyDown</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span> <span class="o">&&</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_isSplitButtonOptionKey</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"option"</span><span class="o">,</span> <span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_isActivationKey</span><span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)))</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_showMenu</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationKeyPressed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenu</span> <span class="o">&&</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">)</span> <span class="o">&&</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">==</span> <span class="m">27</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onKeyUp</span>
|
|
<span class="c"> * @description "keyup" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onKeyUp</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_isActivationKey</span><span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">,</span> <span class="o">!(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">)));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_activationKeyPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"menu"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="s2">"active"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onClick</span>
|
|
<span class="c"> * @description "click" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onClick</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">sTitle</span><span class="o">,</span>
|
|
<span class="nx">oForm</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span><span class="o">,</span>
|
|
<span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"radio"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"checkbox"</span><span class="o">:</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasDefaultTitle</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">RADIO_CHECKED_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">CHECKBOX_CHECKED_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">RADIO_DEFAULT_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">CHECKBOX_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"submit"</span><span class="o">:</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">.</span><span class="nx">returnValue</span> <span class="o">!==</span> <span class="kc">false</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submitForm</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"reset"</span><span class="o">:</span>
|
|
|
|
<span class="nx">oForm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getForm</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oForm</span><span class="o">.</span><span class="nx">reset</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"menu"</span><span class="o">:</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">MENUBUTTON_MENU_VISIBLE_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">MENUBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"split"</span><span class="o">:</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submitForm</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">SPLITBUTTON_OPTION_VISIBLE_TITLE</span> <span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">SPLITBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onDblClick</span>
|
|
<span class="c"> * @description "dblclick" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onDblClick</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span> <span class="o">&&</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getPageX</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">></span> <span class="k">this</span><span class="o">.</span><span class="nx">_nOptionRegionX</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bReturnVal</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onAppendTo</span>
|
|
<span class="c"> * @description "appendTo" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onAppendTo</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> It is necessary to call "_addListenersToForm" using </span>
|
|
<span class="c"> "setTimeout" to make sure that the button's "form" property </span>
|
|
<span class="c"> returns a node reference. Sometimes, if you try to get the </span>
|
|
<span class="c"> reference immediately after appending the field, it is null.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">Lang</span><span class="o">.</span><span class="nx">later</span><span class="o">(</span><span class="m">0</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_addListenersToForm</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onFormReset</span>
|
|
<span class="c"> * @description "reset" event handler for the button's form.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event </span>
|
|
<span class="c"> * object passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onFormReset</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">),</span>
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">resetValue</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">resetValue</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onFormSubmit</span>
|
|
<span class="c"> * @description "submit" event handler for the button's form.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event </span>
|
|
<span class="c"> * object passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onFormSubmit</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">createHiddenFields</span><span class="o">();</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onDocumentMouseDown</span>
|
|
<span class="c"> * @description "mousedown" event handler for the document.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onDocumentMouseDown</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oTarget</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">),</span>
|
|
<span class="nx">oButtonElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span>
|
|
<span class="nx">oMenuElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oTarget</span> <span class="o">!=</span> <span class="nx">oButtonElement</span> <span class="o">&&</span>
|
|
<span class="o">!</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="nx">oButtonElement</span><span class="o">,</span> <span class="nx">oTarget</span><span class="o">)</span> <span class="o">&&</span>
|
|
<span class="nx">oTarget</span> <span class="o">!=</span> <span class="nx">oMenuElement</span> <span class="o">&&</span>
|
|
<span class="o">!</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="nx">oMenuElement</span><span class="o">,</span> <span class="nx">oTarget</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mousedown"</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseDown</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onOption</span>
|
|
<span class="c"> * @description "option" event handler for the button.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object </span>
|
|
<span class="c"> * passed back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onOption</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="s2">"yui-split-button-activeoption"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_showMenu</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuShow</span>
|
|
<span class="c"> * @description "show" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuShow</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mousedown"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseDown</span><span class="o">,</span>
|
|
<span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sTitle</span><span class="o">,</span>
|
|
<span class="nx">sState</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">SPLITBUTTON_OPTION_VISIBLE_TITLE</span><span class="o">;</span>
|
|
<span class="nx">sState</span> <span class="o">=</span> <span class="s2">"activeoption"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">MENUBUTTON_MENU_VISIBLE_TITLE</span><span class="o">;</span>
|
|
<span class="nx">sState</span> <span class="o">=</span> <span class="s2">"active"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addStateCSSClasses</span><span class="o">(</span><span class="nx">sState</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuHide</span>
|
|
<span class="c"> * @description "hide" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuHide</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">,</span>
|
|
<span class="nx">sTitle</span><span class="o">,</span>
|
|
<span class="nx">sState</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">SPLITBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
<span class="nx">sState</span> <span class="o">=</span> <span class="s2">"activeoption"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sTitle</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">MENUBUTTON_DEFAULT_TITLE</span><span class="o">;</span>
|
|
<span class="nx">sState</span> <span class="o">=</span> <span class="s2">"active"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeStateCSSClasses</span><span class="o">(</span><span class="nx">sState</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="nx">sTitle</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuKeyDown</span>
|
|
<span class="c"> * @description "keydown" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> * @param {Array} p_aArgs Array of arguments sent when the event </span>
|
|
<span class="c"> * was fired.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuKeyDown</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oEvent</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">)</span> <span class="o">==</span> <span class="m">27</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"split"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_bOptionPressed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuRender</span>
|
|
<span class="c"> * @description "render" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the </span>
|
|
<span class="c"> * event thatwas fired.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuRender</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oButtonElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span>
|
|
<span class="nx">oButtonParent</span> <span class="o">=</span> <span class="nx">oButtonElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">,</span>
|
|
<span class="nx">oMenuElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButtonParent</span> <span class="o">!=</span> <span class="nx">oMenuElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButtonParent</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oMenuElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_renderedMenu</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">));</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuItemSelected</span>
|
|
<span class="c"> * @description "selectedchange" event handler for each item in the </span>
|
|
<span class="c"> * button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> * @param {Array} p_aArgs Array of arguments sent when the event </span>
|
|
<span class="c"> * was fired.</span>
|
|
<span class="c"> * @param {MenuItem} p_oItem Object representing the menu item that</span>
|
|
<span class="c"> * subscribed to the event.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuItemSelected</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">,</span> <span class="nx">p_oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bSelected</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bSelected</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">,</span> <span class="nx">p_oItem</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuItemAdded</span>
|
|
<span class="c"> * @description "itemadded" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> * @param {Array} p_aArgs Array of arguments sent when the event</span>
|
|
<span class="c"> * was fired.</span>
|
|
<span class="c"> * @param {<a href="YAHOO.widget.MenuItem.html"></span>
|
|
<span class="c"> * YAHOO.widget.MenuItem</a>} p_oItem Object representing the menu </span>
|
|
<span class="c"> * item that subscribed to the event.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuItemAdded</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">,</span> <span class="nx">p_oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oItem</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="nx">oItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="s2">"selected"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMenuItemSelected</span><span class="o">,</span> <span class="nx">oItem</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onMenuClick</span>
|
|
<span class="c"> * @description "click" event handler for the button's menu.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {String} p_sType String representing the name of the event </span>
|
|
<span class="c"> * that was fired.</span>
|
|
<span class="c"> * @param {Array} p_aArgs Array of arguments sent when the event </span>
|
|
<span class="c"> * was fired.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onMenuClick</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oItem</span> <span class="o">=</span> <span class="nx">p_aArgs</span><span class="o">[</span><span class="m">1</span><span class="o">],</span>
|
|
<span class="nx">oSrcElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">,</span> <span class="nx">oItem</span><span class="o">);</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submitForm</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hideMenu</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
|
|
<span class="c">// Public methods</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method createButtonElement</span>
|
|
<span class="c"> * @description Creates the button's HTML elements.</span>
|
|
<span class="c"> * @param {String} p_sType String indicating the type of element </span>
|
|
<span class="c"> * to create.</span>
|
|
<span class="c"> * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-58190037">HTMLElement</a>}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">createButtonElement</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sNodeName</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">NODE_NAME</span><span class="o">,</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="nx">sNodeName</span><span class="o">);</span>
|
|
|
|
<span class="nx">oElement</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">"<"</span> <span class="o">+</span> <span class="nx">sNodeName</span> <span class="o">+</span> <span class="s2">" class=\"first-child\">"</span> <span class="o">+</span>
|
|
<span class="o">(</span><span class="nx">p_sType</span> <span class="o">==</span> <span class="s2">"link"</span> <span class="o">?</span> <span class="s2">"<a></a>"</span> <span class="o">:</span>
|
|
<span class="s2">"<button type=\"button\"></button>"</span><span class="o">)</span> <span class="o">+</span> <span class="s2">"</"</span> <span class="o">+</span> <span class="nx">sNodeName</span> <span class="o">+</span> <span class="s2">">"</span><span class="o">;</span>
|
|
|
|
<span class="k">return</span> <span class="nx">oElement</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method addStateCSSClasses</span>
|
|
<span class="c"> * @description Appends state-specific CSS classes to the button's root </span>
|
|
<span class="c"> * DOM element.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">addStateCSSClasses</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sState</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_sState</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_sState</span> <span class="o">!=</span> <span class="s2">"activeoption"</span> <span class="o">&&</span> <span class="nx">p_sState</span> <span class="o">!=</span> <span class="s2">"hoveroption"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span> <span class="o">+</span> <span class="o">(</span><span class="s2">"-"</span> <span class="o">+</span> <span class="nx">p_sState</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="s2">"yui-"</span> <span class="o">+</span> <span class="nx">sType</span> <span class="o">+</span> <span class="o">(</span><span class="s2">"-button-"</span> <span class="o">+</span> <span class="nx">p_sState</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method removeStateCSSClasses</span>
|
|
<span class="c"> * @description Removes state-specific CSS classes to the button's root </span>
|
|
<span class="c"> * DOM element.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeStateCSSClasses</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sState</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">p_sState</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span> <span class="o">+</span> <span class="o">(</span><span class="s2">"-"</span> <span class="o">+</span> <span class="nx">p_sState</span><span class="o">));</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="s2">"yui-"</span> <span class="o">+</span> <span class="nx">sType</span> <span class="o">+</span> <span class="o">(</span><span class="s2">"-button-"</span> <span class="o">+</span> <span class="nx">p_sState</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method createHiddenFields</span>
|
|
<span class="c"> * @description Creates the button's hidden form field and appends it </span>
|
|
<span class="c"> * to its parent form.</span>
|
|
<span class="c"> * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-6043025">HTMLInputElement</a>|Array}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">createHiddenFields</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeHiddenFields</span><span class="o">();</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oForm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getForm</span><span class="o">(),</span>
|
|
<span class="nx">oButtonField</span><span class="o">,</span>
|
|
<span class="nx">sType</span><span class="o">,</span>
|
|
<span class="nx">bCheckable</span><span class="o">,</span>
|
|
<span class="nx">oMenu</span><span class="o">,</span>
|
|
<span class="nx">oMenuItem</span><span class="o">,</span>
|
|
<span class="nx">sButtonName</span><span class="o">,</span>
|
|
<span class="nx">oValue</span><span class="o">,</span>
|
|
<span class="nx">oMenuField</span><span class="o">,</span>
|
|
<span class="nx">oReturnVal</span><span class="o">,</span>
|
|
<span class="nx">sMenuFieldName</span><span class="o">,</span>
|
|
<span class="nx">oMenuSrcElement</span><span class="o">,</span>
|
|
<span class="nx">bMenuSrcElementIsSelect</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oForm</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sType</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">);</span>
|
|
<span class="nx">bCheckable</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">bCheckable</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">))</span> <span class="o">||</span> <span class="o">(</span><span class="nx">m_oSubmitTrigger</span> <span class="o">==</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Creating hidden field."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">oButtonField</span> <span class="o">=</span> <span class="nx">createInputElement</span><span class="o">((</span><span class="nx">bCheckable</span> <span class="o">?</span> <span class="nx">sType</span> <span class="o">:</span> <span class="s2">"hidden"</span><span class="o">),</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"name"</span><span class="o">),</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"value"</span><span class="o">),</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">));</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButtonField</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bCheckable</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButtonField</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oForm</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oButtonField</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Menu</span> <span class="o">&&</span> <span class="nx">oMenu</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">oMenu</span> <span class="k">instanceof</span> <span class="nx">Menu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Creating hidden field for menu."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">oMenuItem</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">);</span>
|
|
<span class="nx">oMenuSrcElement</span> <span class="o">=</span> <span class="nx">oMenu</span><span class="o">.</span><span class="nx">srcElement</span><span class="o">;</span>
|
|
<span class="nx">bMenuSrcElementIsSelect</span> <span class="o">=</span> <span class="o">(</span><span class="nx">oMenuSrcElement</span> <span class="o">&&</span>
|
|
<span class="nx">oMenuSrcElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">"SELECT"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenuItem</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oValue</span> <span class="o">=</span> <span class="o">(</span><span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">value</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">value</span> <span class="o">===</span> <span class="s2">""</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"text"</span><span class="o">)</span> <span class="o">:</span> <span class="nx">oMenuItem</span><span class="o">.</span><span class="nx">value</span><span class="o">;</span>
|
|
|
|
<span class="nx">sButtonName</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"name"</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bMenuSrcElementIsSelect</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sMenuFieldName</span> <span class="o">=</span> <span class="nx">oMenuSrcElement</span><span class="o">.</span><span class="nx">name</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">sButtonName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sMenuFieldName</span> <span class="o">=</span> <span class="o">(</span><span class="nx">sButtonName</span> <span class="o">+</span> <span class="s2">"_options"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oValue</span> <span class="o">&&</span> <span class="nx">sMenuFieldName</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oMenuField</span> <span class="o">=</span> <span class="nx">createInputElement</span><span class="o">(</span><span class="s2">"hidden"</span><span class="o">,</span> <span class="nx">sMenuFieldName</span><span class="o">,</span> <span class="nx">oValue</span><span class="o">);</span>
|
|
<span class="nx">oForm</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oMenuField</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">bMenuSrcElementIsSelect</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oForm</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oMenuSrcElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButtonField</span> <span class="o">&&</span> <span class="nx">oMenuField</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span> <span class="o">=</span> <span class="o">[</span><span class="nx">oButtonField</span><span class="o">,</span> <span class="nx">oMenuField</span><span class="o">];</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(!</span><span class="nx">oButtonField</span> <span class="o">&&</span> <span class="nx">oMenuField</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span> <span class="o">=</span> <span class="nx">oMenuField</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">oButtonField</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">oMenuField</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span> <span class="o">=</span> <span class="nx">oButtonField</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oReturnVal</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">oReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method removeHiddenFields</span>
|
|
<span class="c"> * @description Removes the button's hidden form field(s) from its </span>
|
|
<span class="c"> * parent form.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeHiddenFields</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oField</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span><span class="o">,</span>
|
|
<span class="nx">nFields</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
<span class="k">function</span> <span class="nx">removeChild</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">p_oElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oField</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">oField</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">nFields</span> <span class="o">=</span> <span class="nx">oField</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nFields</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">i</span> <span class="o">=</span> <span class="nx">nFields</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span>
|
|
|
|
<span class="k">do</span> <span class="o">{</span>
|
|
|
|
<span class="nx">removeChild</span><span class="o">(</span><span class="nx">oField</span><span class="o">[</span><span class="nx">i</span><span class="o">]);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">while</span> <span class="o">(</span><span class="nx">i</span><span class="o">--);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">removeChild</span><span class="o">(</span><span class="nx">oField</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method submitForm</span>
|
|
<span class="c"> * @description Submits the form to which the button belongs. Returns </span>
|
|
<span class="c"> * true if the form was submitted successfully, false if the submission </span>
|
|
<span class="c"> * was cancelled.</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @return {Boolean}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">submitForm</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oForm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getForm</span><span class="o">(),</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">),</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Boolean indicating if the event fired successfully </span>
|
|
<span class="c"> (was not cancelled by any handlers)</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">bSubmitForm</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
<span class="nx">oEvent</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"submit"</span> <span class="o">||</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">m_oSubmitTrigger</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bSubmitForm</span> <span class="o">=</span> <span class="nx">oForm</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"onsubmit"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span> <span class="c">// Gecko, Opera, and Safari</span>
|
|
<span class="c"></span>
|
|
<span class="nx">oEvent</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="s2">"HTMLEvents"</span><span class="o">);</span>
|
|
<span class="nx">oEvent</span><span class="o">.</span><span class="nx">initEvent</span><span class="o">(</span><span class="s2">"submit"</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="nx">bSubmitForm</span> <span class="o">=</span> <span class="nx">oForm</span><span class="o">.</span><span class="nx">dispatchEvent</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> In IE and Safari, dispatching a "submit" event to a form </span>
|
|
<span class="c"> WILL cause the form's "submit" event to fire, but WILL NOT </span>
|
|
<span class="c"> submit the form. Therefore, we need to call the "submit" </span>
|
|
<span class="c"> method as well.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">webkit</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">bSubmitForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oForm</span><span class="o">.</span><span class="nx">submit</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">bSubmitForm</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method init</span>
|
|
<span class="c"> * @description The Button class's initialization method.</span>
|
|
<span class="c"> * @param {String} p_oElement String specifying the id attribute of the </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code>, <code>&#60;button&#62;</code>,</span>
|
|
<span class="c"> * <code>&#60;a&#62;</code>, or <code>&#60;span&#62;</code> element to </span>
|
|
<span class="c"> * be used to create the button.</span>
|
|
<span class="c"> * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-6043025">HTMLInputElement</a>|<a href="http://</span>
|
|
<span class="c"> * www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html</span>
|
|
<span class="c"> * #ID-34812697">HTMLButtonElement</a>|<a href="http://www.w3.org/TR</span>
|
|
<span class="c"> * /2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-33759296"></span>
|
|
<span class="c"> * HTMLElement</a>} p_oElement Object reference for the </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code>, <code>&#60;button&#62;</code>, </span>
|
|
<span class="c"> * <code>&#60;a&#62;</code>, or <code>&#60;span&#62;</code> element to be </span>
|
|
<span class="c"> * used to create the button.</span>
|
|
<span class="c"> * @param {Object} p_oElement Object literal specifying a set of </span>
|
|
<span class="c"> * configuration attributes used to create the button.</span>
|
|
<span class="c"> * @param {Object} p_oAttributes Optional. Object literal specifying a </span>
|
|
<span class="c"> * set of configuration attributes used to create the button.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oAttributes</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sNodeName</span> <span class="o">=</span> <span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"link"</span> <span class="o">?</span> <span class="s2">"a"</span> <span class="o">:</span> <span class="s2">"button"</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">srcelement</span><span class="o">,</span>
|
|
<span class="nx">oButton</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="nx">sNodeName</span><span class="o">)[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">oInput</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oInput</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="s2">"input"</span><span class="o">)[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oInput</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButton</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"button"</span><span class="o">);</span>
|
|
<span class="nx">oButton</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">(</span><span class="s2">"type"</span><span class="o">,</span> <span class="s2">"button"</span><span class="o">);</span>
|
|
|
|
<span class="nx">oInput</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">replaceChild</span><span class="o">(</span><span class="nx">oButton</span><span class="o">,</span> <span class="nx">oInput</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span> <span class="o">=</span> <span class="nx">oButton</span><span class="o">;</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Capture if the button has a value for the title attribute. If so, we won't </span>
|
|
<span class="c"> override it for type of "checkbox" or "radio".</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasDefaultTitle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">title</span> <span class="o">&&</span> <span class="nx">p_oAttributes</span><span class="o">.</span><span class="nx">title</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">);</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">p_oAttributes</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">sId</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"id"</span><span class="o">),</span>
|
|
<span class="nx">sButtonId</span> <span class="o">=</span> <span class="nx">sId</span> <span class="o">+</span> <span class="s2">"-button"</span><span class="o">;</span>
|
|
|
|
|
|
<span class="nx">oButton</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">sButtonId</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">aLabels</span><span class="o">,</span>
|
|
<span class="nx">oLabel</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">hasLabel</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">element</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">element</span><span class="o">.</span><span class="nx">htmlFor</span> <span class="o">===</span> <span class="nx">sId</span><span class="o">);</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">setLabel</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oLabel</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">((</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">?</span> <span class="s2">"htmlFor"</span> <span class="o">:</span> <span class="s2">"for"</span><span class="o">),</span> <span class="nx">sButtonId</span><span class="o">);</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"link"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">aLabels</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsBy</span><span class="o">(</span><span class="nx">hasLabel</span><span class="o">,</span> <span class="s2">"label"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">aLabels</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">aLabels</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oLabel</span> <span class="o">=</span> <span class="nx">aLabels</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">m_oButtons</span><span class="o">[</span><span class="nx">sId</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="s2">"yui-"</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">+</span> <span class="s2">"-button"</span><span class="o">);</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">,</span> <span class="s2">"focus"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onFocus</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"mouseover"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMouseOver</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"mousedown"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMouseDown</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"mouseup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onMouseUp</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onClick</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"dblclick"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDblClick</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oLabel</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="nx">setLabel</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onAppendTo</span><span class="o">);</span>
|
|
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">oContainer</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"container"</span><span class="o">),</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span>
|
|
<span class="nx">bElInDoc</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="nx">oElement</span><span class="o">),</span>
|
|
<span class="nx">oParentNode</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oContainer</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span> <span class="o">!=</span> <span class="nx">oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oParentNode</span> <span class="o">=</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oParentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oParentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">oSrcElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">oContainer</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">onContentReady</span><span class="o">(</span><span class="nx">oContainer</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">appendTo</span><span class="o">,</span> <span class="nx">oContainer</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s2">"init"</span><span class="o">,</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Lang</span><span class="o">.</span><span class="nx">later</span><span class="o">(</span><span class="m">0</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">appendTo</span><span class="o">,</span> <span class="nx">oContainer</span><span class="o">);</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(!</span><span class="nx">bElInDoc</span> <span class="o">&&</span> <span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span> <span class="o">!=</span> <span class="nx">oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oParentNode</span> <span class="o">=</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oParentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"beforeAppendTo"</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">type</span><span class="o">:</span> <span class="s2">"beforeAppendTo"</span><span class="o">,</span>
|
|
<span class="nx">target</span><span class="o">:</span> <span class="nx">oParentNode</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="nx">oParentNode</span><span class="o">.</span><span class="nx">replaceChild</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="nx">oSrcElement</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"appendTo"</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">type</span><span class="o">:</span> <span class="s2">"appendTo"</span><span class="o">,</span>
|
|
<span class="nx">target</span><span class="o">:</span> <span class="nx">oParentNode</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">!=</span> <span class="s2">"link"</span> <span class="o">&&</span> <span class="nx">bElInDoc</span> <span class="o">&&</span> <span class="nx">oSrcElement</span> <span class="o">&&</span>
|
|
<span class="nx">oSrcElement</span> <span class="o">==</span> <span class="nx">oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_addListenersToForm</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Initialization completed."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"init"</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">type</span><span class="o">:</span> <span class="s2">"init"</span><span class="o">,</span>
|
|
<span class="nx">target</span><span class="o">:</span> <span class="k">this</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method initAttributes</span>
|
|
<span class="c"> * @description Initializes all of the configuration attributes used to </span>
|
|
<span class="c"> * create the button.</span>
|
|
<span class="c"> * @param {Object} p_oAttributes Object literal specifying a set of </span>
|
|
<span class="c"> * configuration attributes used to create the button.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initAttributes</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oAttributes</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oAttributes</span> <span class="o">=</span> <span class="nx">p_oAttributes</span> <span class="o">||</span> <span class="o">{};</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initAttributes</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">oAttributes</span><span class="o">);</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute type</span>
|
|
<span class="c"> * @description String specifying the button's type. Possible </span>
|
|
<span class="c"> * values are: "push," "link," "submit," "reset," "checkbox," </span>
|
|
<span class="c"> * "radio," "menu," and "split."</span>
|
|
<span class="c"> * @default "push"</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"type"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">type</span> <span class="o">||</span> <span class="s2">"push"</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setType</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute label</span>
|
|
<span class="c"> * @description String specifying the button's text label </span>
|
|
<span class="c"> * or innerHTML.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"label"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="k">label</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setLabel</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute value</span>
|
|
<span class="c"> * @description Object specifying the value for the button.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"value"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">value</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute name</span>
|
|
<span class="c"> * @description String specifying the name for the button.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"name"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">name</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute tabindex</span>
|
|
<span class="c"> * @description Number specifying the tabindex for the button.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"tabindex"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">tabindex</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setTabIndex</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute title</span>
|
|
<span class="c"> * @description String specifying the title for the button.</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">configureAttribute</span><span class="o">(</span><span class="s2">"title"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">title</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setTitle</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute disabled</span>
|
|
<span class="c"> * @description Boolean indicating if the button should be disabled. </span>
|
|
<span class="c"> * (Disabled buttons are dimmed and will not respond to user input </span>
|
|
<span class="c"> * or fire events. Does not apply to button's of type "link.")</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">disabled</span> <span class="o">||</span> <span class="kc">false</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setDisabled</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute href</span>
|
|
<span class="c"> * @description String specifying the href for the button. Applies</span>
|
|
<span class="c"> * only to buttons of type "link."</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"href"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">href</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setHref</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute target</span>
|
|
<span class="c"> * @description String specifying the target for the button. </span>
|
|
<span class="c"> * Applies only to buttons of type "link."</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"target"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">target</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setTarget</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute checked</span>
|
|
<span class="c"> * @description Boolean indicating if the button is checked. </span>
|
|
<span class="c"> * Applies only to buttons of type "radio" and "checkbox."</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"checked"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">checked</span> <span class="o">||</span> <span class="kc">false</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setChecked</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute container</span>
|
|
<span class="c"> * @description HTML element reference or string specifying the id </span>
|
|
<span class="c"> * attribute of the HTML element that the button's markup should be </span>
|
|
<span class="c"> * rendered into.</span>
|
|
<span class="c"> * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-58190037">HTMLElement</a>|String</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"container"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">container</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute srcelement</span>
|
|
<span class="c"> * @description Object reference to the HTML element (either </span>
|
|
<span class="c"> * <code>&#60;input&#62;</code> or <code>&#60;span&#62;</code>) </span>
|
|
<span class="c"> * used to create the button.</span>
|
|
<span class="c"> * @type <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-58190037">HTMLElement</a>|String</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">srcelement</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute menu</span>
|
|
<span class="c"> * @description Object specifying the menu for the button. </span>
|
|
<span class="c"> * The value can be one of the following:</span>
|
|
<span class="c"> * <ul></span>
|
|
<span class="c"> * <li>Object specifying a <a href="YAHOO.widget.Menu.html"></span>
|
|
<span class="c"> * YAHOO.widget.Menu</a> instance.</li></span>
|
|
<span class="c"> * <li>Object specifying a <a href="YAHOO.widget.Overlay.html"></span>
|
|
<span class="c"> * YAHOO.widget.Overlay</a> instance.</li></span>
|
|
<span class="c"> * <li>String specifying the id attribute of the <code>&#60;div&#62;</span>
|
|
<span class="c"> * </code> element used to create the menu. By default the menu </span>
|
|
<span class="c"> * will be created as an instance of </span>
|
|
<span class="c"> * <a href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a>. </span>
|
|
<span class="c"> * If the <a href="YAHOO.widget.Menu.html#CSS_CLASS_NAME"></span>
|
|
<span class="c"> * default CSS class name for YAHOO.widget.Menu</a> is applied to </span>
|
|
<span class="c"> * the <code>&#60;div&#62;</code> element, it will be created as an</span>
|
|
<span class="c"> * instance of <a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</span>
|
|
<span class="c"> * </a>.</li><li>String specifying the id attribute of the </span>
|
|
<span class="c"> * <code>&#60;select&#62;</code> element used to create the menu.</span>
|
|
<span class="c"> * </li><li>Object specifying the <code>&#60;div&#62;</code> element</span>
|
|
<span class="c"> * used to create the menu.</li></span>
|
|
<span class="c"> * <li>Object specifying the <code>&#60;select&#62;</code> element</span>
|
|
<span class="c"> * used to create the menu.</li></span>
|
|
<span class="c"> * <li>Array of object literals, each representing a set of </span>
|
|
<span class="c"> * <a href="YAHOO.widget.MenuItem.html">YAHOO.widget.MenuItem</a> </span>
|
|
<span class="c"> * configuration attributes.</li></span>
|
|
<span class="c"> * <li>Array of strings representing the text labels for each menu </span>
|
|
<span class="c"> * item in the menu.</li></span>
|
|
<span class="c"> * </ul></span>
|
|
<span class="c"> * @type <a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a>|<a </span>
|
|
<span class="c"> * href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a>|<a </span>
|
|
<span class="c"> * href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c"> * one-html.html#ID-58190037">HTMLElement</a>|String|Array</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"menu"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setMenu</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute lazyloadmenu</span>
|
|
<span class="c"> * @description Boolean indicating the value to set for the </span>
|
|
<span class="c"> * <a href="YAHOO.widget.Menu.html#lazyLoad">"lazyload"</a></span>
|
|
<span class="c"> * configuration property of the button's menu. Setting </span>
|
|
<span class="c"> * "lazyloadmenu" to <code>true </code> will defer rendering of </span>
|
|
<span class="c"> * the button's menu until the first time it is made visible. </span>
|
|
<span class="c"> * If "lazyloadmenu" is set to <code>false</code>, the button's </span>
|
|
<span class="c"> * menu will be rendered immediately if the button is in the </span>
|
|
<span class="c"> * document, or in response to the button's "appendTo" event if </span>
|
|
<span class="c"> * the button is not yet in the document. In either case, the </span>
|
|
<span class="c"> * menu is rendered into the button's parent HTML element. </span>
|
|
<span class="c"> * <em>This attribute does not apply if a </span>
|
|
<span class="c"> * <a href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a> or </span>
|
|
<span class="c"> * <a href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a> </span>
|
|
<span class="c"> * instance is passed as the value of the button's "menu" </span>
|
|
<span class="c"> * configuration attribute. <a href="YAHOO.widget.Menu.html"></span>
|
|
<span class="c"> * YAHOO.widget.Menu</a> or <a href="YAHOO.widget.Overlay.html"></span>
|
|
<span class="c"> * YAHOO.widget.Overlay</a> instances should be rendered before </span>
|
|
<span class="c"> * being set as the value for the "menu" configuration </span>
|
|
<span class="c"> * attribute.</em></span>
|
|
<span class="c"> * @default true</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"lazyloadmenu"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">lazyloadmenu</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span> <span class="kc">true</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute menuclassname</span>
|
|
<span class="c"> * @description String representing the CSS class name to be </span>
|
|
<span class="c"> * applied to the root element of the button's menu.</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @default "yui-button-menu"</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"menuclassname"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">menuclassname</span> <span class="o">||</span> <span class="s2">"yui-button-menu"</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setMenuClassName</span><span class="o">,</span>
|
|
<span class="nx">writeOnce</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute menuminscrollheight</span>
|
|
<span class="c"> * @description Number defining the minimum threshold for the "menumaxheight" </span>
|
|
<span class="c"> * configuration attribute. When set this attribute is automatically applied </span>
|
|
<span class="c"> * to all submenus.</span>
|
|
<span class="c"> * @default 90</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"menuminscrollheight"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">menuminscrollheight</span> <span class="o">||</span> <span class="m">90</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute menumaxheight</span>
|
|
<span class="c"> * @description Number defining the maximum height (in pixels) for a menu's </span>
|
|
<span class="c"> * body element (<code>&#60;div class="bd"&#60;</code>). Once a menu's body </span>
|
|
<span class="c"> * exceeds this height, the contents of the body are scrolled to maintain </span>
|
|
<span class="c"> * this value. This value cannot be set lower than the value of the </span>
|
|
<span class="c"> * "minscrollheight" configuration property.</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> * @default 0</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"menumaxheight"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">menumaxheight</span> <span class="o">||</span> <span class="m">0</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute menualignment</span>
|
|
<span class="c"> * @description Array defining how the Button's Menu is aligned to the Button. </span>
|
|
<span class="c"> * The default value of ["tl", "bl"] aligns the Menu's top left corner to the Button's </span>
|
|
<span class="c"> * bottom left corner.</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> * @default ["tl", "bl"]</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"menualignment"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">menualignment</span> <span class="o">||</span> <span class="o">[</span><span class="s2">"tl"</span><span class="o">,</span> <span class="s2">"bl"</span><span class="o">]),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute selectedMenuItem</span>
|
|
<span class="c"> * @description Object representing the item in the button's menu </span>
|
|
<span class="c"> * that is currently selected.</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"selectedMenuItem"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setSelectedMenuItem</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute onclick</span>
|
|
<span class="c"> * @description Object literal representing the code to be executed </span>
|
|
<span class="c"> * when the button is clicked. Format:<br> <code> {<br> </span>
|
|
<span class="c"> * <strong>fn:</strong> Function, &#47;&#47; The handler to call </span>
|
|
<span class="c"> * when the event fires.<br> <strong>obj:</strong> Object, </span>
|
|
<span class="c"> * &#47;&#47; An object to pass back to the handler.<br> </span>
|
|
<span class="c"> * <strong>scope:</strong> Object &#47;&#47; The object to use </span>
|
|
<span class="c"> * for the scope of the handler.<br> } </code></span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"onclick"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">oAttributes</span><span class="o">.</span><span class="nx">onclick</span><span class="o">,</span>
|
|
<span class="nx">method</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setOnClick</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @attribute focusmenu</span>
|
|
<span class="c"> * @description Boolean indicating whether or not the button's menu </span>
|
|
<span class="c"> * should be focused when it is made visible.</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default true</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s2">"focusmenu"</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">oAttributes</span><span class="o">.</span><span class="nx">focusmenu</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span> <span class="kc">true</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method focus</span>
|
|
<span class="c"> * @description Causes the button to receive the focus and fires the </span>
|
|
<span class="c"> * button's "focus" event.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">focus</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method blur</span>
|
|
<span class="c"> * @description Causes the button to lose focus and fires the button's</span>
|
|
<span class="c"> * "blur" event.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">blur</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method hasFocus</span>
|
|
<span class="c"> * @description Returns a boolean indicating whether or not the button </span>
|
|
<span class="c"> * has focus.</span>
|
|
<span class="c"> * @return {Boolean}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hasFocus</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">m_oFocusedButton</span> <span class="o">==</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method isActive</span>
|
|
<span class="c"> * @description Returns a boolean indicating whether or not the button </span>
|
|
<span class="c"> * is active.</span>
|
|
<span class="c"> * @return {Boolean}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">isActive</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span> <span class="o">+</span> <span class="s2">"-active"</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method getMenu</span>
|
|
<span class="c"> * @description Returns a reference to the button's menu.</span>
|
|
<span class="c"> * @return {<a href="YAHOO.widget.Overlay.html"></span>
|
|
<span class="c"> * YAHOO.widget.Overlay</a>|<a </span>
|
|
<span class="c"> * href="YAHOO.widget.Menu.html">YAHOO.widget.Menu</a>}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getMenu</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method getForm</span>
|
|
<span class="c"> * @description Returns a reference to the button's parent form.</span>
|
|
<span class="c"> * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-</span>
|
|
<span class="c"> * 20000929/level-one-html.html#ID-40002357">HTMLFormElement</a>}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getForm</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oButton</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">,</span>
|
|
<span class="nx">oForm</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oForm</span> <span class="o">=</span> <span class="nx">oButton</span><span class="o">.</span><span class="nx">form</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">oForm</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @method getHiddenFields</span>
|
|
<span class="c"> * @description Returns an <code>&#60;input&#62;</code> element or </span>
|
|
<span class="c"> * array of form elements used to represent the button when its parent </span>
|
|
<span class="c"> * form is submitted. </span>
|
|
<span class="c"> * @return {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span>
|
|
<span class="c"> * level-one-html.html#ID-6043025">HTMLInputElement</a>|Array}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getHiddenFields</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_hiddenFields</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method destroy</span>
|
|
<span class="c"> * @description Removes the button's element from its parent element and </span>
|
|
<span class="c"> * removes all event handlers.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">destroy</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Destroying ..."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">),</span>
|
|
<span class="nx">oParentNode</span> <span class="o">=</span> <span class="nx">oElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">,</span>
|
|
<span class="nx">oMenu</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_menu</span><span class="o">,</span>
|
|
<span class="nx">aButtons</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMenu</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Destroying menu."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">m_oOverlayManager</span> <span class="o">&&</span> <span class="nx">m_oOverlayManager</span><span class="o">.</span><span class="nx">find</span><span class="o">(</span><span class="nx">oMenu</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">m_oOverlayManager</span><span class="o">.</span><span class="nx">remove</span><span class="o">(</span><span class="nx">oMenu</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oMenu</span><span class="o">.</span><span class="nx">destroy</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Removing DOM event listeners."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="nx">oElement</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_button</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mouseup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseUp</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"keyup"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentKeyUp</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nb">document</span><span class="o">,</span> <span class="s2">"mousedown"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onDocumentMouseDown</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">oForm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getForm</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"reset"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onFormReset</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"submit"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onFormSubmit</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Removing CustomEvent listeners."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribeAll</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oParentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oParentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">oElement</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Removing from document."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="nx">delete</span> <span class="nx">m_oButtons</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"id"</span><span class="o">)];</span>
|
|
|
|
<span class="nx">aButtons</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">NODE_NAME</span><span class="o">,</span> <span class="nx">oForm</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">aButtons</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">aButtons</span><span class="o">.</span><span class="nx">length</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="nx">oForm</span><span class="o">,</span> <span class="s2">"keypress"</span><span class="o">,</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">onFormKeyPress</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Destroyed."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="nx">fireEvent</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sType</span> <span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sType</span> <span class="o">=</span> <span class="nx">arguments</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="c">// Disabled buttons should not respond to DOM events</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">DOM_EVENTS</span><span class="o">[</span><span class="nx">sType</span><span class="o">]</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method toString</span>
|
|
<span class="c"> * @description Returns a string representing the button.</span>
|
|
<span class="c"> * @return {String}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">toString</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="o">(</span><span class="s2">"Button "</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"id"</span><span class="o">));</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method YAHOO.widget.Button.onFormKeyPress</span>
|
|
<span class="c"> * @description "keypress" event handler for the button's form.</span>
|
|
<span class="c"> * @param {Event} p_oEvent Object representing the DOM event object passed </span>
|
|
<span class="c"> * back by the event utility (YAHOO.util.Event).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">onFormKeyPress</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oTarget</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">),</span>
|
|
<span class="nx">nCharCode</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">),</span>
|
|
<span class="nx">sNodeName</span> <span class="o">=</span> <span class="nx">oTarget</span><span class="o">.</span><span class="nx">nodeName</span> <span class="o">&&</span> <span class="nx">oTarget</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">(),</span>
|
|
<span class="nx">sType</span> <span class="o">=</span> <span class="nx">oTarget</span><span class="o">.</span><span class="nx">type</span><span class="o">,</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Boolean indicating if the form contains any enabled or </span>
|
|
<span class="c"> disabled YUI submit buttons</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">bFormContainsYUIButtons</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
<span class="nx">oButton</span><span class="o">,</span>
|
|
|
|
<span class="nx">oYUISubmitButton</span><span class="o">,</span> <span class="c">// The form's first, enabled YUI submit button</span>
|
|
<span class="c"></span>
|
|
<span class="c">/*</span>
|
|
<span class="c"> The form's first, enabled HTML submit button that precedes any </span>
|
|
<span class="c"> YUI submit button</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">oPrecedingSubmitButton</span><span class="o">,</span>
|
|
|
|
<span class="nx">oEvent</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">function</span> <span class="nx">isSubmitButton</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sId</span><span class="o">,</span>
|
|
<span class="nx">oSrcElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">nodeName</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">())</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="s2">"INPUT"</span><span class="o">:</span>
|
|
<span class="nx">case</span> <span class="s2">"BUTTON"</span><span class="o">:</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">p_oElement</span><span class="o">.</span><span class="nx">disabled</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bFormContainsYUIButtons</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">oPrecedingSubmitButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oPrecedingSubmitButton</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
|
|
<span class="nx">default</span><span class="o">:</span>
|
|
|
|
<span class="nx">sId</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sId</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButton</span> <span class="o">=</span> <span class="nx">m_oButtons</span><span class="o">[</span><span class="nx">sId</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">bFormContainsYUIButtons</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oButton</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"disabled"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oSrcElement</span> <span class="o">=</span> <span class="nx">oButton</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"srcelement"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oYUISubmitButton</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">oButton</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"type"</span><span class="o">)</span> <span class="o">==</span> <span class="s2">"submit"</span> <span class="o">||</span>
|
|
<span class="o">(</span><span class="nx">oSrcElement</span> <span class="o">&&</span> <span class="nx">oSrcElement</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"submit"</span><span class="o">)))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oYUISubmitButton</span> <span class="o">=</span> <span class="nx">oButton</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nCharCode</span> <span class="o">==</span> <span class="m">13</span> <span class="o">&&</span> <span class="o">((</span><span class="nx">sNodeName</span> <span class="o">==</span> <span class="s2">"INPUT"</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">sType</span> <span class="o">==</span> <span class="s2">"text"</span> <span class="o">||</span>
|
|
<span class="nx">sType</span> <span class="o">==</span> <span class="s2">"password"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"checkbox"</span> <span class="o">||</span> <span class="nx">sType</span> <span class="o">==</span> <span class="s2">"radio"</span> <span class="o">||</span>
|
|
<span class="nx">sType</span> <span class="o">==</span> <span class="s2">"file"</span><span class="o">))</span> <span class="o">||</span> <span class="nx">sNodeName</span> <span class="o">==</span> <span class="s2">"SELECT"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsBy</span><span class="o">(</span><span class="nx">isSubmitButton</span><span class="o">,</span> <span class="s2">"*"</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oPrecedingSubmitButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Need to set focus to the first enabled submit button</span>
|
|
<span class="c"> to make sure that IE includes its name and value </span>
|
|
<span class="c"> in the form's data set.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">oPrecedingSubmitButton</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="o">(!</span><span class="nx">oPrecedingSubmitButton</span> <span class="o">&&</span> <span class="nx">oYUISubmitButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Need to call "preventDefault" to ensure that the form doesn't end up getting</span>
|
|
<span class="c"> submitted twice.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">p_oEvent</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oYUISubmitButton</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">).</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"onclick"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oEvent</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="s2">"HTMLEvents"</span><span class="o">);</span>
|
|
<span class="nx">oEvent</span><span class="o">.</span><span class="nx">initEvent</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">gecko</span> <span class="o"><</span> <span class="m">1</span><span class="o">.</span><span class="m">9</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oYUISubmitButton</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s2">"click"</span><span class="o">,</span> <span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oYUISubmitButton</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s2">"element"</span><span class="o">).</span><span class="nx">dispatchEvent</span><span class="o">(</span><span class="nx">oEvent</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method YAHOO.widget.Button.addHiddenFieldsToForm</span>
|
|
<span class="c"> * @description Searches the specified form and adds hidden fields for </span>
|
|
<span class="c"> * instances of YAHOO.widget.Button that are of type "radio," "checkbox," </span>
|
|
<span class="c"> * "menu," and "split."</span>
|
|
<span class="c"> * @param {<a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span>
|
|
<span class="c"> * one-html.html#ID-40002357">HTMLFormElement</a>} p_oForm Object reference </span>
|
|
<span class="c"> * for the form to search.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">addHiddenFieldsToForm</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_oForm</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">aButtons</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">CSS_CLASS_NAME</span><span class="o">,</span>
|
|
<span class="s2">"*"</span><span class="o">,</span>
|
|
<span class="nx">p_oForm</span><span class="o">),</span>
|
|
|
|
<span class="nx">nButtons</span> <span class="o">=</span> <span class="nx">aButtons</span><span class="o">.</span><span class="nx">length</span><span class="o">,</span>
|
|
<span class="nx">oButton</span><span class="o">,</span>
|
|
<span class="nx">sId</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nButtons</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"Form contains "</span> <span class="o">+</span> <span class="nx">nButtons</span> <span class="o">+</span> <span class="s2">" YUI buttons."</span><span class="o">,</span> <span class="s2">"info"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">toString</span><span class="o">());</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">nButtons</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sId</span> <span class="o">=</span> <span class="nx">aButtons</span><span class="o">[</span><span class="nx">i</span><span class="o">].</span><span class="nx">id</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sId</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButton</span> <span class="o">=</span> <span class="nx">m_oButtons</span><span class="o">[</span><span class="nx">sId</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oButton</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oButton</span><span class="o">.</span><span class="nx">createHiddenFields</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method YAHOO.widget.Button.getButton</span>
|
|
<span class="c"> * @description Returns a button with the specified id.</span>
|
|
<span class="c"> * @param {String} p_sId String specifying the id of the root node of the </span>
|
|
<span class="c"> * HTML element representing the button to be retrieved.</span>
|
|
<span class="c"> * @return {YAHOO.widget.Button}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Button</span><span class="o">.</span><span class="nx">getButton</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">p_sId</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="nx">m_oButtons</span><span class="o">[</span><span class="nx">p_sId</span><span class="o">];</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">// Events</span>
|
|
<span class="c"></span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @event focus</span>
|
|
<span class="c"> * @description Fires when the menu item receives focus. Passes back a </span>
|
|
<span class="c"> * single object representing the original DOM event object passed back by </span>
|
|
<span class="c"> * the event utility (YAHOO.util.Event) when the event was fired. See </span>
|
|
<span class="c"> * <a href="YAHOO.util.Element.html#addListener">Element.addListener</a> </span>
|
|
<span class="c"> * for more information on listening for this event.</span>
|
|
<span class="c"> * @type YAHOO.util.CustomEvent</span>
|
|
<span class="c"> */</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @event blur</span>
|
|
<span class="c"> * @description Fires when the menu item loses the input focus. Passes back </span>
|
|
<span class="c"> * a single object representing the original DOM event object passed back by </span>
|
|
<span class="c"> * the event utility (YAHOO.util.Event) when the event was fired. See </span>
|
|
<span class="c"> * <a href="YAHOO.util.Element.html#addListener">Element.addListener</a> for </span>
|
|
<span class="c"> * more information on listening for this event.</span>
|
|
<span class="c"> * @type YAHOO.util.CustomEvent</span>
|
|
<span class="c"> */</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @event option</span>
|
|
<span class="c"> * @description Fires when the user invokes the button's option. Passes </span>
|
|
<span class="c"> * back a single object representing the original DOM event (either </span>
|
|
<span class="c"> * "mousedown" or "keydown") that caused the "option" event to fire. See </span>
|
|
<span class="c"> * <a href="YAHOO.util.Element.html#addListener">Element.addListener</a> </span>
|
|
<span class="c"> * for more information on listening for this event.</span>
|
|
<span class="c"> * @type YAHOO.util.CustomEvent</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="o">})();</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
|
|
<li class=""><a href="module_animation.html">animation</a></li>
|
|
|
|
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
|
|
|
|
<li class="selected"><a href="module_button.html">button</a></li>
|
|
|
|
<li class=""><a href="module_calendar.html">calendar</a></li>
|
|
|
|
<li class=""><a href="module_carousel.html">carousel</a></li>
|
|
|
|
<li class=""><a href="module_charts.html">charts</a></li>
|
|
|
|
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
|
|
|
|
<li class=""><a href="module_connection.html">connection</a></li>
|
|
|
|
<li class=""><a href="module_container.html">container</a></li>
|
|
|
|
<li class=""><a href="module_cookie.html">cookie</a></li>
|
|
|
|
<li class=""><a href="module_datasource.html">datasource</a></li>
|
|
|
|
<li class=""><a href="module_datatable.html">datatable</a></li>
|
|
|
|
<li class=""><a href="module_dom.html">dom</a></li>
|
|
|
|
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
|
|
|
|
<li class=""><a href="module_editor.html">editor</a></li>
|
|
|
|
<li class=""><a href="module_element.html">element</a></li>
|
|
|
|
<li class=""><a href="module_event.html">event</a></li>
|
|
|
|
<li class=""><a href="module_get.html">get</a></li>
|
|
|
|
<li class=""><a href="module_history.html">history</a></li>
|
|
|
|
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
|
|
|
|
<li class=""><a href="module_imageloader.html">imageloader</a></li>
|
|
|
|
<li class=""><a href="module_json.html">json</a></li>
|
|
|
|
<li class=""><a href="module_layout.html">layout</a></li>
|
|
|
|
<li class=""><a href="module_logger.html">logger</a></li>
|
|
|
|
<li class=""><a href="module_menu.html">menu</a></li>
|
|
|
|
<li class=""><a href="module_paginator.html">paginator</a></li>
|
|
|
|
<li class=""><a href="module_profiler.html">profiler</a></li>
|
|
|
|
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
|
|
|
|
<li class=""><a href="module_resize.html">resize</a></li>
|
|
|
|
<li class=""><a href="module_selector.html">selector</a></li>
|
|
|
|
<li class=""><a href="module_slider.html">slider</a></li>
|
|
|
|
<li class=""><a href="module_tabview.html">tabview</a></li>
|
|
|
|
<li class=""><a href="module_treeview.html">treeview</a></li>
|
|
|
|
<li class=""><a href="module_uploader.html">uploader</a></li>
|
|
|
|
<li class=""><a href="module_yahoo.html">yahoo</a></li>
|
|
|
|
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
|
|
|
|
<li class=""><a href="module_yuitest.html">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.widget.Button.html">YAHOO.widget.Button</a></li>
|
|
<li class=""><a href="YAHOO.widget.ButtonGroup.html">YAHOO.widget.ButtonGroup</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class="selected"><a href="button.js.html">button.js</a></li>
|
|
<li class=""><a href="buttongroup.js.html">buttongroup.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2008 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|