6779 lines
No EOL
659 KiB
HTML
6779 lines
No EOL
659 KiB
HTML
<html><head><title>menu.js</title><link rel="stylesheet" type="text/css" href="../style.css" media="screen"/></head><body><div class="hl-main"><pre><span class="hl-comment">/*
|
|
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
|
|
Code licensed under the BSD License:
|
|
</span><span class="hl-url">http://developer.yahoo.com/yui/license.txt</span><span class="hl-comment">
|
|
version: 0.12.0
|
|
*/
|
|
// holder
|
|
/**
|
|
* @module menu
|
|
* @description <p>The Menu Library features a collection of widgets that make
|
|
* it easy to add menus to your website or web application. With the Menu
|
|
* Library you can create website fly-out menus, customized context menus, or
|
|
* application-style menu bars with just a small amount of scripting.</p>
|
|
* <ul>
|
|
* <li>Screen-reader accessibility.</li>
|
|
* <li>Keyboard and mouse navigation.</li>
|
|
* <li>A rich event model that provides access to all of a menu's
|
|
* interesting moments.</li>
|
|
* <li>Support for
|
|
* <a href="</span><span class="hl-url">http://en.wikipedia.org/wiki/Progressive_Enhancement</span><span class="hl-comment">">Progressive
|
|
* Enhancement</a>; Menus can be created from simple,
|
|
* semantic markup on the page or purely through JavaScript.</li>
|
|
* </ul>
|
|
* @title Menu Library
|
|
* @namespace YAHOO.widget
|
|
* @requires Event, Dom, Container
|
|
*/
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Singleton that manages a collection of all menus and menu items. Listens for
|
|
* DOM events at the document level and dispatches the events to the
|
|
* corresponding menu or menu item.
|
|
*
|
|
* @namespace YAHOO.widget
|
|
* @class MenuManager
|
|
* @static
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuManager</span><span class="hl-code"> = </span><span class="hl-reserved">new function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-comment">// Private member variables
|
|
|
|
// Flag indicating if the DOM event handlers have been attached
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">m_bInitializedEventHandlers</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Collection of menus
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">m_oMenus</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">// Collection of menu items
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">m_oItems</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Collection of visible menus
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Logger
|
|
|
|
|
|
// Private methods
|
|
|
|
/**
|
|
* Adds an item to the collection of known menu items.
|
|
* @private
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem
|
|
* instance to be added.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">addItem</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sYUIId</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">generateId</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-code"> && </span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">yuiid</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">destroyEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">onItemDestroy</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Removes an item from the collection of known menu items.
|
|
* @private
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem
|
|
* instance to be removed.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">removeItem</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sYUIId</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">yuiid</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sYUIId</span><span class="hl-code"> && </span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Finds the root DIV node of a menu or the root LI node of a menu item.
|
|
* @private
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-58190037">HTMLElement</a>} p_oElement Object specifying
|
|
* an HTML element.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">getMenuRootElement</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code"> && </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code"> = </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Check if the DIV is the inner "body" node of a menu
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">bd</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oParentNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p_oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">LI</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p_oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">default</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code"> = </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentNode</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">getMenuRootElement</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentNode</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Private event handlers
|
|
|
|
/**
|
|
* Generic, global event handler for all of a menu's DOM-based
|
|
* events. This listens for events against the document object. If the
|
|
* target of a given event is a member of a menu or menu item's DOM, the
|
|
* instance's corresponding Custom Event is fired.
|
|
* @private
|
|
* @param {Event} p_oEvent Object representing the DOM event object passed
|
|
* back by the event utility (YAHOO.util.Event).
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Get the target node of the DOM event
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// See if the target of the event was a menu, or a menu item
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-identifier">getMenuRootElement</span><span class="hl-brackets">(</span><span class="hl-identifier">oTarget</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMenuItem</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sTagName</span><span class="hl-code"> = </span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sTagName</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">LI</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sYUIId</span><span class="hl-code"> = </span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">yuiid</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenuItem</span><span class="hl-code"> = </span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-identifier">oMenuItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">sTagName</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Map of DOM event names to CustomEvent names
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEventTypes</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">click</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">clickEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">mouseDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">mouseup</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">mouseUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">mouseover</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">mouseOverEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">mouseout</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">mouseOutEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">keydown</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">keyDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">keyup</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">keyUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">keypress</span><span class="hl-quotes">"</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">keyPressEvent</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sCustomEventType</span><span class="hl-code"> = </span><span class="hl-identifier">oEventTypes</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Fire the Custom Even that corresponds the current DOM event
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oMenuItem</span><span class="hl-code"> && !</span><span class="hl-identifier">oMenuItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oMenuItem</span><span class="hl-brackets">[</span><span class="hl-identifier">sCustomEventType</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-brackets">[</span><span class="hl-identifier">sCustomEventType</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">, </span><span class="hl-identifier">oMenuItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
If the target of the event wasn't a menu, hide all
|
|
dynamically positioned menus
|
|
*/
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oActiveItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i </span><span class="hl-reserved">in </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">m_oMenus</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">clicktohide</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* "destroy" event handler for a menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onMenuDestroy</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeMenu</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* "destroy" event handler for a MenuItem instance.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onItemDestroy</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sYUIId</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">yuiid</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">m_oItems</span><span class="hl-brackets">[</span><span class="hl-identifier">sYUIId</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Event handler for when the "visible" configuration property
|
|
* of a Menu instance changes.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onMenuVisibleConfigChange</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bVisible</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bVisible</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">p_oMenu</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* "itemadded" event handler for a Menu instance.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onItemAdded</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">addItem</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">])</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* "itemremoved" event handler for a Menu instance.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">onItemRemoved</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">removeItem</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">])</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Privileged methods
|
|
|
|
/**
|
|
* @method addMenu
|
|
* @description Adds a menu to the collection of known menus.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu instance
|
|
* to be added.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addMenu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-code"> && </span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code"> && !</span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">p_oMenu</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">m_bInitializedEventHandlers</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oDoc</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">mouseover</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">mouseout</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">mouseup</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">click</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">keydown</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">keyup</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oDoc</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">keypress</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">onDOMEvent</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">m_bInitializedEventHandlers</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">destroyEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">onMenuDestroy</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">subscribeToConfigEvent</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">onMenuVisibleConfigChange</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oMenu
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">itemAddedEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">onItemAdded</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">itemRemovedEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">onItemRemoved</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method removeMenu
|
|
* @description Removes a menu from the collection of known menus.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu instance
|
|
* to be removed.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeMenu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-code"> && </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method hideVisible
|
|
* @description Hides all visible, dynamically positioned menus.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hideVisible</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i </span><span class="hl-reserved">in </span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-identifier">m_oVisibleMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getMenus
|
|
* @description Returns an array of all menus registered with the
|
|
* menu manger.
|
|
* @return {Array}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getMenus</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">m_oMenus</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getMenu
|
|
* @description Returns a menu with the specified id.
|
|
* @param {String} p_sId String specifying the id of the menu to
|
|
* be retrieved.
|
|
* @return {YAHOO.widget.Menu}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getMenu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sId</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_sId</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">m_oMenus</span><span class="hl-brackets">[</span><span class="hl-identifier">p_sId</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method toString
|
|
* @description Returns a string representing the menu manager.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">MenuManager</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The Menu class creates a container that holds a vertical list representing
|
|
* a set of options or commands. Menu is the base class for all
|
|
* menu containers.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the menu.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source
|
|
* for the menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;div&#62;</code> element of the menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement
|
|
* Object specifying the <code>&#60;select&#62;</code> element to be used as
|
|
* the data source for the menu.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu. See configuration class documentation for
|
|
* more details.
|
|
* @namespace YAHOO.widget
|
|
* @class Menu
|
|
* @constructor
|
|
* @extends YAHOO.widget.Overlay
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> = </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> || </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">lazyload</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-code"> = </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-code"> || </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">itemdata</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oConfig
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Overlay</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">// Constants
|
|
|
|
/**
|
|
* @property CSS_CLASS_NAME
|
|
* @description String representing the CSS class(es) to be applied to the
|
|
* menu's <code>&#60;div&#62;</code> element.
|
|
* @default "yuimenu"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">yuimenu</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property ITEM_TYPE
|
|
* @description Object representing the type of menu item to instantiate and
|
|
* add when parsing the child nodes (either <code>&#60;li&#62;</code> element,
|
|
* <code>&#60;optgroup&#62;</code> element or <code>&#60;option&#62;</code>)
|
|
* of the menu's source HTML element.
|
|
* @default YAHOO.widget.MenuItem
|
|
* @final
|
|
* @type YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property GROUP_TITLE_TAG_NAME
|
|
* @description String representing the tagname of the HTML element used to
|
|
* title the menu's item groups.
|
|
* @default H6
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">GROUP_TITLE_TAG_NAME</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">h6</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private properties
|
|
|
|
/**
|
|
* @property _nHideDelayId
|
|
* @description Number representing the time-out setting used to cancel the
|
|
* hiding of a menu.
|
|
* @default null
|
|
* @private
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">_nHideDelayId</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _nShowDelayId
|
|
* @description Number representing the time-out setting used to cancel the
|
|
* showing of a menu.
|
|
* @default null
|
|
* @private
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">_nShowDelayId</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _hideDelayEventHandlersAssigned
|
|
* @description Boolean indicating if the "mouseover" and "mouseout" event
|
|
* handlers used for hiding the menu via a call to "window.setTimeout" have
|
|
* already been assigned.
|
|
* @default false
|
|
* @private
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">_hideDelayEventHandlersAssigned</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _bHandledMouseOverEvent
|
|
* @description Boolean indicating the current state of the menu's
|
|
* "mouseover" event.
|
|
* @default false
|
|
* @private
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">_bHandledMouseOverEvent</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _bHandledMouseOutEvent
|
|
* @description Boolean indicating the current state of the menu's
|
|
* "mouseout" event.
|
|
* @default false
|
|
* @private
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">_bHandledMouseOutEvent</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _aGroupTitleElements
|
|
* @description Array of HTML element used to title groups of menu items.
|
|
* @default []
|
|
* @private
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _aItemGroups
|
|
* @description Array of menu items.
|
|
* @default []
|
|
* @private
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _aListElements
|
|
* @description Array of <code>&#60;ul&#62;</code> elements, each of which is
|
|
* the parent node for each item's <code>&#60;li&#62;</code> element.
|
|
* @default []
|
|
* @private
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">_aListElements</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public properties
|
|
|
|
/**
|
|
* @property lazyLoad
|
|
* @description Boolean indicating if the menu's "lazy load" feature is
|
|
* enabled. If set to "true," initialization and rendering of the menu's
|
|
* items will be deferred until the first time it is made visible. This
|
|
* property should be set via the constructor using the configuration
|
|
* object literal.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">lazyLoad</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property itemData
|
|
* @description Array of items to be added to the menu. The array can contain
|
|
* strings representing the text for each item to be created, object literals
|
|
* representing the menu item configuration properties, or MenuItem instances.
|
|
* This property should be set via the constructor using the configuration
|
|
* object literal.
|
|
* @default null
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">itemData</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property activeItem
|
|
* @description Object reference to the item in the menu that has focus.
|
|
* @default null
|
|
* @type YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">activeItem</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property parent
|
|
* @description Object reference to the menu's parent menu or menu item.
|
|
* This property can be set via the constructor using the configuration
|
|
* object literal.
|
|
* @default null
|
|
* @type YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property srcElement
|
|
* @description Object reference to the HTML element (either
|
|
* <code>&#60;select&#62;</code> or <code>&#60;div&#62;</code>) used to
|
|
* create the menu.
|
|
* @default null
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-94282980">HTMLSelectElement</a>|<a
|
|
* href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.</span><span class="hl-comment">
|
|
* html#ID-22445964">HTMLDivElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">srcElement</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Events
|
|
|
|
/**
|
|
* @event mouseOverEvent
|
|
* @description Fires when the mouse has entered the menu. Passes back
|
|
* the DOM Event object as an argument.
|
|
*/
|
|
</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseOutEvent
|
|
* @description Fires when the mouse has left the menu. Passes back the DOM
|
|
* Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseDownEvent
|
|
* @description Fires when the user mouses down on the menu. Passes back the
|
|
* DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseUpEvent
|
|
* @description Fires when the user releases a mouse button while the mouse is
|
|
* over the menu. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event clickEvent
|
|
* @description Fires when the user clicks the on the menu. Passes back the
|
|
* DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">clickEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyPressEvent
|
|
* @description Fires when the user presses an alphanumeric key when one of the
|
|
* menu's items has focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyDownEvent
|
|
* @description Fires when the user presses a key when one of the menu's items
|
|
* has focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyUpEvent
|
|
* @description Fires when the user releases a key when one of the menu's items
|
|
* has focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event itemAddedEvent
|
|
* @description Fires when an item is added to the menu.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">itemAddedEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event itemRemovedEvent
|
|
* @description Fires when an item is removed to the menu.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">itemRemovedEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The Menu class's initialization method. This method is
|
|
* automatically called by the constructor, and sets up all DOM references
|
|
* for pre-existing markup, and creates required markup if it is not
|
|
* already present.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the menu.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source
|
|
* for the menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;div&#62;</code> element of the menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement
|
|
* Object specifying the <code>&#60;select&#62;</code> element to be used as
|
|
* the data source for the menu.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu. See configuration class documentation for
|
|
* more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oElement</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">string</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementById</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-code"> && </span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> = </span><span class="hl-identifier">oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">id</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">generateId</span><span class="hl-brackets">())</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
</span><span class="hl-inlinedoc">Note:</span><span class="hl-comment"> we don't pass the user config in here yet
|
|
because we only want it executed once, at the lowest
|
|
subclass level.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">oElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeInitEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">SELECT</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> = </span><span class="hl-identifier">oElement</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/*
|
|
The source element is not something that we can use
|
|
outright, so we need to create a new Overlay
|
|
|
|
</span><span class="hl-inlinedoc">Note:</span><span class="hl-comment"> we don't pass the user config in here yet
|
|
because we only want it executed once, at the lowest
|
|
subclass level.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">generateId</span><span class="hl-brackets">())</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeInitEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/*
|
|
</span><span class="hl-inlinedoc">Note:</span><span class="hl-comment"> we don't pass the user config in here yet
|
|
because we only want it executed once, at the lowest
|
|
subclass level.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">p_oElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeInitEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Subscribe to Custom Events
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onInit</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeRenderEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onBeforeRender</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">renderEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onRender</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeShowEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onBeforeShow</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">showEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onShow</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeHideEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onBeforeHide</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onMouseOver</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onMouseOut</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clickEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onClick</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onKeyDown</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Register the Menu instance with the MenuManager
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuManager</span><span class="hl-code">.</span><span class="hl-identifier">addMenu</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private methods
|
|
|
|
/**
|
|
* @method _initSubTree
|
|
* @description Iterates the childNodes of the source element to find nodes
|
|
* used to instantiate menu and menu items.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_initSubTree</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Populate the collection of item groups and item
|
|
group titles
|
|
*/
|
|
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroup</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sGroupTitleTagName</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">GROUP_TITLE_TAG_NAME</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code"> && </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-identifier">sGroupTitleTagName</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroup</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">UL</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroup</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroup</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">nGroup</span><span class="hl-code">++;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">((</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Apply the "first-of-type" class to the first UL to mimic
|
|
the "first-of-type" CSS3 psuedo class.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code"> && </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">LI</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItem</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">this </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">i
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">((</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">SELECT</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code"> && </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">OPTGROUP</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">OPTION</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItem</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oNode</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">this </span><span class="hl-brackets">}
|
|
)
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">((</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _getFirstEnabledItem
|
|
* @description Returns the first enabled item in the menu.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_getFirstEnabledItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroups</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aItemGroup</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"><</span><span class="hl-identifier">nGroups</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">aItemGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItems</span><span class="hl-code"> = </span><span class="hl-identifier">aItemGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">n</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code"><</span><span class="hl-identifier">nItems</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">aItemGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">n</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> != </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _checkPosition
|
|
* @description Checks to make sure that the value of the "position" property
|
|
* is one of the supported strings. Returns true if the position is supported.
|
|
* @private
|
|
* @param {Object} p_sPosition String specifying the position of the menu.
|
|
* @return {Boolean}
|
|
*/
|
|
</span><span class="hl-identifier">_checkPosition</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sPosition</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_sPosition</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">string</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sPosition</span><span class="hl-code"> = </span><span class="hl-identifier">p_sPosition</span><span class="hl-code">.</span><span class="hl-identifier">toLowerCase</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">dynamic,static</span><span class="hl-quotes">"</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">sPosition</span><span class="hl-brackets">)</span><span class="hl-code"> != -</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _addItemToGroup
|
|
* @description Adds a menu item to a group.
|
|
* @private
|
|
* @param {Number} p_nGroupIndex Number indicating the group to which the
|
|
* item belongs.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance to be added to the menu.
|
|
* @param {String} p_oItem String specifying the text of the item to be added
|
|
* to the menu.
|
|
* @param {Object} p_oItem Object literal containing a set of menu item
|
|
* configuration properties.
|
|
* @param {Number} p_nItemIndex Optional. Number indicating the index at
|
|
* which the menu item should be added.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">_addItemToGroup</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem </span><span class="hl-reserved">instanceof this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oItem</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">string</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">this </span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oItem</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">object</span><span class="hl-quotes">"</span><span class="hl-code"> && </span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">text</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">text</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(</span><span class="hl-identifier">sText</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> = </span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-code"> ? </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> : </span><span class="hl-number">0</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oGroupItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_createItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bAppend</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code"> >= </span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">bAppend</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">.</span><span class="hl-identifier">nodeType</span><span class="hl-code"> == </span><span class="hl-number">11
|
|
</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns the next sibling of an item in an array.
|
|
* @private
|
|
* @param {p_aArray} Array to search.
|
|
* @param {p_nStartIndex} Number indicating the index to
|
|
* start searching the array.
|
|
* @return {Object}
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">getNextItemSibling</span><span class="hl-code"> =
|
|
|
|
</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">p_aArray</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">]</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">getNextItemSibling</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">p_aArray</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">)
|
|
)
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNextItemSibling</span><span class="hl-code"> =
|
|
</span><span class="hl-identifier">getNextItemSibling</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oNextItemSibling</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">.</span><span class="hl-identifier">nodeType</span><span class="hl-code"> == </span><span class="hl-number">11
|
|
</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oNextItemSibling</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_subscribeToItemEvents</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configureSubmenu</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_updateItemProperties</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemAddedEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oGroupItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItemIndex</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">nItemIndex</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">nItemIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">groupindex</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">index</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">nItemIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-identifier">nItemIndex</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">groupIndex</span><span class="hl-code"> = </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_subscribeToItemEvents</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configureSubmenu</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItemIndex</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemAddedEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oGroupItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _removeItemFromGroupByIndex
|
|
* @description Removes a menu item from a group by index. Returns the menu
|
|
* item that was removed.
|
|
* @private
|
|
* @param {Number} p_nGroupIndex Number indicating the group to which the menu
|
|
* item belongs.
|
|
* @param {Number} p_nItemIndex Number indicating the index of the menu item
|
|
* to be removed.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">_removeItemFromGroupByIndex</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> = </span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-code"> ? </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> : </span><span class="hl-number">0</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aArray</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">aArray</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Update the index and className properties of each member
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_updateItemProperties</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Remove the UL
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oUL</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code"> && </span><span class="hl-identifier">oUL</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Remove the group from the array of items
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">// Remove the UL from the array of ULs
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/*
|
|
Assign the "first-of-type" class to the new first UL
|
|
in the collection
|
|
*/
|
|
|
|
</span><span class="hl-identifier">oUL</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemRemovedEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Return a reference to the item that was removed
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _removeItemFromGroupByValue
|
|
* @description Removes a menu item from a group by reference. Returns the
|
|
* menu item that was removed.
|
|
* @private
|
|
* @param {Number} p_nGroupIndex Number indicating the group to which the
|
|
* menu item belongs.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance to be removed.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">_removeItemFromGroupByValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItems</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItemIndex</span><span class="hl-code"> = -</span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItems</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-identifier">nItems</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code"> == </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">nItemIndex</span><span class="hl-code"> = </span><span class="hl-identifier">i</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItemIndex</span><span class="hl-code"> > -</span><span class="hl-number">1</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_removeItemFromGroupByIndex</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">nItemIndex
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _updateItemProperties
|
|
* @description Updates the "index," "groupindex," and "className" properties
|
|
* of the menu items in the specified group.
|
|
* @private
|
|
* @param {Number} p_nGroupIndex Number indicating the group of items to update.
|
|
*/
|
|
</span><span class="hl-identifier">_updateItemProperties</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItems</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItems</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-identifier">nItems</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oLI</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Update the index and className properties of each member
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oLI</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-identifier">i</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">groupIndex</span><span class="hl-code"> = </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oLI</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">groupindex</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oLI</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">index</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oLI</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oLI</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oLI</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _createItemGroup
|
|
* @description Creates a new menu item group (array) and its associated
|
|
* <code>&#60;ul&#62;</code> element. Returns an aray of menu item groups.
|
|
* @private
|
|
* @param {Number} p_nIndex Number indicating the group to create.
|
|
* @return {Array}
|
|
*/
|
|
</span><span class="hl-identifier">_createItemGroup</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oUL</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">ul</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oUL</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _getItemGroup
|
|
* @description Returns the menu item group at the specified index.
|
|
* @private
|
|
* @param {Number} p_nIndex Number indicating the index of the menu item group
|
|
* to be retrieved.
|
|
* @return {Array}
|
|
*/
|
|
</span><span class="hl-identifier">_getItemGroup</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nIndex</span><span class="hl-code"> = </span><span class="hl-brackets">((</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">p_nIndex</span><span class="hl-code"> : </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _configureSubmenu
|
|
* @description Subscribes the menu item's submenu to its parent menu's events.
|
|
* @private
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance with the submenu to be configured.
|
|
*/
|
|
</span><span class="hl-identifier">_configureSubmenu</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Listen for configuration changes to the parent menu
|
|
so they they can be applied to the submenu.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">configChangedEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onParentMenuConfigChange</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">renderEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onParentMenuRender</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">beforeShowEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onSubmenuBeforeShow</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">showEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onSubmenuShow</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hideEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onSubmenuHide</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _subscribeToItemEvents
|
|
* @description Subscribes a menu to a menu item's event.
|
|
* @private
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance whose events should be subscribed to.
|
|
*/
|
|
</span><span class="hl-identifier">_subscribeToItemEvents</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">focusEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onMenuItemFocus</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">blurEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onMenuItemBlur</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">configChangedEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onMenuItemConfigChange</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oItem</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _getOffsetWidth
|
|
* @description Returns the offset width of the menu's
|
|
* <code>&#60;div&#62;</code> element.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_getOffsetWidth</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oClone</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">cloneNode</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-identifier">oClone</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">width</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-quotes">""</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oClone</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sWidth</span><span class="hl-code"> = </span><span class="hl-identifier">oClone</span><span class="hl-code">.</span><span class="hl-identifier">offsetWidth</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oClone</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">sWidth</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _cancelHideDelay
|
|
* @description Cancels the call to "hideMenu."
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nHideDelayId</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">clearTimeout</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nHideDelayId</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _execHideDelay
|
|
* @description Hides the menu after the number of milliseconds specified by
|
|
* the "hidedelay" configuration property.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_execHideDelay</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">me</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">hideMenu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code"> == </span><span class="hl-identifier">me</span><span class="hl-code"> && </span><span class="hl-identifier">me</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">me</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nHideDelayId</span><span class="hl-code"> =
|
|
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">setTimeout</span><span class="hl-brackets">(</span><span class="hl-identifier">hideMenu</span><span class="hl-code">, </span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">hidedelay</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _cancelShowDelay
|
|
* @description Cancels the call to the "showMenu."
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_cancelShowDelay</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nShowDelayId</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">clearTimeout</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nShowDelayId</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _execShowDelay
|
|
* @description Shows the menu after the number of milliseconds specified by
|
|
* the "showdelay" configuration property have ellapsed.
|
|
* @private
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should
|
|
* be made visible.
|
|
*/
|
|
</span><span class="hl-identifier">_execShowDelay</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelShowDelay</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">showMenu</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">p_oMenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">_nShowDelayId</span><span class="hl-code"> =
|
|
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">setTimeout</span><span class="hl-brackets">(</span><span class="hl-identifier">showMenu</span><span class="hl-code">, </span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Protected methods
|
|
|
|
/**
|
|
* @method _onMouseOver
|
|
* @description "mouseover" event handler for the menu.
|
|
* @protected
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onMouseOver</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOverEvent</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">oTarget</span><span class="hl-code"> == </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oTarget</span><span class="hl-brackets">))
|
|
) {
|
|
|
|
</span><span class="hl-comment">// MENU MOUSEOVER LOGIC HERE
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> && !</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOverEvent</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">oTarget</span><span class="hl-code"> == </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oTarget</span><span class="hl-brackets">))
|
|
) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemCfg</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Select and focus the current menu item
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-comment">// Show the submenu this menu item
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_execShowDelay</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onMouseOut
|
|
* @description "mouseout" event handler for the menu.
|
|
* @protected
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onMouseOut</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRelatedTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getRelatedTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bMovingToSubmenu</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemCfg</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oRelatedTarget</span><span class="hl-code"> == </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oRelatedTarget</span><span class="hl-brackets">)
|
|
)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">bMovingToSubmenu</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOutEvent</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(
|
|
(
|
|
</span><span class="hl-identifier">oRelatedTarget</span><span class="hl-code"> != </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oRelatedTarget</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code"> || </span><span class="hl-identifier">bMovingToSubmenu
|
|
</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelShowDelay</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">bMovingToSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oRelatedTarget</span><span class="hl-code"> == </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oRelatedTarget
|
|
</span><span class="hl-brackets">)
|
|
)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">handledMouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOutEvent</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(
|
|
(
|
|
</span><span class="hl-identifier">oRelatedTarget</span><span class="hl-code"> != </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oRelatedTarget</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code">
|
|
|| </span><span class="hl-identifier">bMovingToSubmenu
|
|
</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_bHandledMouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onClick
|
|
* @description "click" event handler for the menu.
|
|
* @protected
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onClick</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemCfg</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
ACCESSIBILITY FEATURE FOR SCREEN READERS:
|
|
Expand/collapse the submenu when the user clicks
|
|
on the submenu indicator image.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oTarget</span><span class="hl-code"> == </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code"> && </span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sURL</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">url</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bCurrentPageURL</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">sURL</span><span class="hl-code">.</span><span class="hl-identifier">substr</span><span class="hl-brackets">((</span><span class="hl-identifier">sURL</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">#</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sTarget</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bHasTarget</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">sTarget</span><span class="hl-code"> && </span><span class="hl-identifier">sTarget</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Prevent the browser from following links
|
|
equal to "#"
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTarget</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">A</span><span class="hl-quotes">"</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">bCurrentPageURL</span><span class="hl-code"> && !</span><span class="hl-identifier">bHasTarget
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTarget</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> != </span><span class="hl-quotes">"</span><span class="hl-string">A</span><span class="hl-quotes">"</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">bCurrentPageURL</span><span class="hl-code"> && !</span><span class="hl-identifier">bHasTarget
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Follow the URL of the item regardless of
|
|
whether or not the user clicked specifically
|
|
on the anchor element.
|
|
*/
|
|
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">location</span><span class="hl-code"> = </span><span class="hl-identifier">sURL</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
If the item doesn't navigate to a URL and it doesn't have
|
|
a submenu, then collapse the menu tree.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bCurrentPageURL</span><span class="hl-code"> && !</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onKeyDown
|
|
* @description "keydown" event handler for the menu.
|
|
* @protected
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onKeyDown</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemCfg</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRoot</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNextItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">38</span><span class="hl-code">: </span><span class="hl-comment">// Up arrow
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">40</span><span class="hl-code">: </span><span class="hl-comment">// Down arrow
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> == </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> == </span><span class="hl-number">38</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">getPreviousEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code"> :
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">getNextEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNextItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">39</span><span class="hl-code">: </span><span class="hl-comment">// Right arrow
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">setInitialSelection</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oRoot </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code"> = </span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">getNextEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNextItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oRoot</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">37</span><span class="hl-code">: </span><span class="hl-comment">// Left arrow
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentMenu</span><span class="hl-code"> = </span><span class="hl-identifier">oParentItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentMenu </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code"> =
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">getPreviousEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNextItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oParentItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> == </span><span class="hl-number">27</span><span class="hl-brackets">) { </span><span class="hl-comment">// Esc key
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> && </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private methods
|
|
|
|
/**
|
|
* @method _onInit
|
|
* @description "init" event handler for the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onInit</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
(
|
|
(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> && !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-brackets">)</span><span class="hl-code"> ||
|
|
</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> ||
|
|
</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> &&
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getItemGroups</span><span class="hl-brackets">()</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> === </span><span class="hl-number">0
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initSubTree</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItems</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onBeforeRender
|
|
* @description "beforerender" event handler for the menu. Appends all of the
|
|
* <code>&#60;ul&#62;</code>, <code>&#60;li&#62;</code> and their accompanying
|
|
* title elements to the body element of the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onBeforeRender</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nListElements</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nListElements</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bFirstList</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oUL</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oGroupTitle</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oUL</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aListElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bFirstList</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">bFirstList</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-identifier">oUL</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">appendToBody</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oGroupTitle</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupTitle</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-identifier">oGroupTitle</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oUL</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">oGroupTitle</span><span class="hl-code">, </span><span class="hl-identifier">oUL</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">oUL</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hastitle</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">i</span><span class="hl-code">++;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">nListElements</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onRender
|
|
* @description "render" event handler for the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onRender</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sWidth</span><span class="hl-code"> =
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">BODY</span><span class="hl-quotes">"</span><span class="hl-code"> ?
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">offsetWidth</span><span class="hl-code"> : </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getOffsetWidth</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">width</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-identifier">sWidth</span><span class="hl-code"> + </span><span class="hl-quotes">"</span><span class="hl-string">px</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onBeforeShow
|
|
* @description "beforeshow" event handler for the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onBeforeShow</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getItemGroups</span><span class="hl-brackets">()</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initSubTree</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">SELECT</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nOptions</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">n</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code"><</span><span class="hl-identifier">nOptions</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">[</span><span class="hl-identifier">n</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItem</span><span class="hl-brackets">((</span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">[</span><span class="hl-identifier">n</span><span class="hl-brackets">])))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItems</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemData</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">render</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">render</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">render</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">container</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onShow
|
|
* @description "show" event handler for the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired
|
|
* the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onShow</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">setInitialFocus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oParent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentMenu</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aParentAlignment</span><span class="hl-code"> = </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aAlignment</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
(</span><span class="hl-identifier">aParentAlignment</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-identifier">aAlignment</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">])</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">aParentAlignment</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-identifier">aAlignment</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">])
|
|
) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">[ </span><span class="hl-identifier">aParentAlignment</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">aParentAlignment</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">] ]
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* "click" event handler for the document
|
|
* @private
|
|
* @param {Event} p_oEvent Object reference for the DOM event object
|
|
* passed back by the event utility (YAHOO.util.Event).
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">disableAutoSubmenuDisplay</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code"> ||
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">keydown</span><span class="hl-quotes">"</span><span class="hl-code"> && </span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> == </span><span class="hl-number">27</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Set the "autosubmenudisplay" to "false" if the user
|
|
clicks outside the menu bar.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTarget</span><span class="hl-code"> != </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> ||
|
|
!</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oTarget</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">false
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">disableAutoSubmenuDisplay
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">keydown</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">disableAutoSubmenuDisplay
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">disableAutoSubmenuDisplay</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">keydown</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">disableAutoSubmenuDisplay</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onBeforeHide
|
|
* @description "beforehide" event handler for the menu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired
|
|
* the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onBeforeHide</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onParentMenuConfigChange
|
|
* @description "configchange" event handler for a submenu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that
|
|
* subscribed to the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onParentMenuConfigChange</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sPropertyName</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">][</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oPropertyValue</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">][</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">sPropertyName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">iframe</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">constraintoviewport</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">hidedelay</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">clicktohide</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">effect</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">p_oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">sPropertyName</span><span class="hl-code">, </span><span class="hl-identifier">oPropertyValue</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onParentMenuRender
|
|
* @description "render" event handler for a submenu. Renders a
|
|
* submenu in response to the firing of its parent's "render" event.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that
|
|
* subscribed to the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onParentMenuRender</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Set the "constraintoviewport" configuration
|
|
property to match the parent Menu
|
|
*/
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentMenu</span><span class="hl-code"> = </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">constraintoviewport</span><span class="hl-code">:
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">constraintoviewport</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">xy</span><span class="hl-code">: </span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">clicktohide</span><span class="hl-code">:
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">clicktohide</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">effect</span><span class="hl-code">:
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">effect</span><span class="hl-quotes">"</span><span class="hl-brackets">)
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nShowDelay</span><span class="hl-code"> = </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nShowDelay</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">showdelay</span><span class="hl-code"> = </span><span class="hl-identifier">nShowDelay</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nHideDelay</span><span class="hl-code"> = </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">hidedelay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nHideDelay</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">hidedelay</span><span class="hl-code"> = </span><span class="hl-identifier">nHideDelay</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
Only sync the "iframe" configuration property if the parent
|
|
menu's "position" configuration is the same.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> ==
|
|
</span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">iframe</span><span class="hl-code"> = </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">iframe</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
|
|
</span><span class="hl-identifier">p_oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">inDocument</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">render</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">render</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onSubmenuBeforeShow
|
|
* @description "beforeshow" event handler for a submenu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that
|
|
* subscribed to the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onSubmenuBeforeShow</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aAlignment</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">context</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">[</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">aAlignment</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">aAlignment</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]]
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">EXPANDED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onSubmenuShow
|
|
* @description "show" event handler for a submenu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that
|
|
* subscribed to the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onSubmenuShow</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">EXPANDED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onSubmenuHide
|
|
* @description "hide" Custom Event handler for a submenu.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that
|
|
* subscribed to the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onSubmenuHide</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onMenuItemFocus
|
|
* @description "focus" event handler for the menu's items.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onMenuItemFocus</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onMenuItemBlur
|
|
* @description "blur" event handler for the menu's items.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event
|
|
* that was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
*/
|
|
</span><span class="hl-identifier">_onMenuItemBlur</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onMenuItemConfigChange
|
|
* @description "configchange" event handler for the menu's items.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onMenuItemConfigChange</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sProperty</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">][</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">sProperty</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">][</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configureSubmenu</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">helptext</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-comment">/*
|
|
A change to an item's "text" or "helptext"
|
|
configuration properties requires the width of the parent
|
|
menu to be recalculated.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">width</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sWidth</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getOffsetWidth</span><span class="hl-brackets">()</span><span class="hl-code"> + </span><span class="hl-quotes">"</span><span class="hl-string">px</span><span class="hl-quotes">"</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">width</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sWidth</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public event handlers for configuration properties
|
|
|
|
/**
|
|
* @method enforceConstraints
|
|
* @description The default event handler executed when the moveEvent is fired,
|
|
* if the "constraintoviewport" configuration property is set to true.
|
|
* @param {String} type The name of the event that was fired.
|
|
* @param {Array} args Collection of arguments sent when the
|
|
* event was fired.
|
|
* @param {Array} obj Array containing the current Menu instance
|
|
* and the item that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">enforceConstraints</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">args</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">pos</span><span class="hl-code"> = </span><span class="hl-identifier">args</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">x</span><span class="hl-code"> = </span><span class="hl-identifier">pos</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">y</span><span class="hl-code"> = </span><span class="hl-identifier">pos</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bod</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">body</span><span class="hl-quotes">'</span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">htm</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">html</span><span class="hl-quotes">'</span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bodyOverflow</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-identifier">bod</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">overflow</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">htmOverflow</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-identifier">htm</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">overflow</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">offsetHeight</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">offsetHeight</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">offsetWidth</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">offsetWidth</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">viewPortWidth</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getClientWidth</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">viewPortHeight</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getClientHeight</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">scrollX</span><span class="hl-code"> = </span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">scrollX</span><span class="hl-code"> || </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">scrollLeft</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">scrollY</span><span class="hl-code"> = </span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">scrollY</span><span class="hl-code"> || </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">scrollTop</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">topConstraint</span><span class="hl-code"> = </span><span class="hl-identifier">scrollY</span><span class="hl-code"> + </span><span class="hl-number">10</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">leftConstraint</span><span class="hl-code"> = </span><span class="hl-identifier">scrollX</span><span class="hl-code"> + </span><span class="hl-number">10</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bottomConstraint</span><span class="hl-code"> = </span><span class="hl-identifier">scrollY</span><span class="hl-code"> + </span><span class="hl-identifier">viewPortHeight</span><span class="hl-code"> - </span><span class="hl-identifier">offsetHeight</span><span class="hl-code"> - </span><span class="hl-number">10</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">rightConstraint</span><span class="hl-code"> = </span><span class="hl-identifier">scrollX</span><span class="hl-code"> + </span><span class="hl-identifier">viewPortWidth</span><span class="hl-code"> - </span><span class="hl-identifier">offsetWidth</span><span class="hl-code"> - </span><span class="hl-number">10</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aContext</span><span class="hl-code"> = </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">context</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oContextElement</span><span class="hl-code"> = </span><span class="hl-identifier">aContext</span><span class="hl-code"> ? </span><span class="hl-identifier">aContext</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> : </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">x</span><span class="hl-code"> < </span><span class="hl-number">10</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">x</span><span class="hl-code"> = </span><span class="hl-identifier">leftConstraint</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">((</span><span class="hl-identifier">x</span><span class="hl-code"> + </span><span class="hl-identifier">offsetWidth</span><span class="hl-brackets">)</span><span class="hl-code"> > </span><span class="hl-identifier">viewPortWidth</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oContextElement</span><span class="hl-code"> &&
|
|
</span><span class="hl-brackets">((</span><span class="hl-identifier">x</span><span class="hl-code"> - </span><span class="hl-identifier">oContextElement</span><span class="hl-code">.</span><span class="hl-identifier">offsetWidth</span><span class="hl-brackets">)</span><span class="hl-code"> > </span><span class="hl-identifier">offsetWidth</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">x</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">x</span><span class="hl-code"> - </span><span class="hl-brackets">(</span><span class="hl-identifier">oContextElement</span><span class="hl-code">.</span><span class="hl-identifier">offsetWidth</span><span class="hl-code"> + </span><span class="hl-identifier">offsetWidth</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">x</span><span class="hl-code"> = </span><span class="hl-identifier">rightConstraint</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">y</span><span class="hl-code"> < </span><span class="hl-number">10</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">y</span><span class="hl-code"> = </span><span class="hl-identifier">topConstraint</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">(</span><span class="hl-identifier">y</span><span class="hl-code"> > </span><span class="hl-identifier">bottomConstraint</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oContextElement</span><span class="hl-code"> && </span><span class="hl-brackets">(</span><span class="hl-identifier">y</span><span class="hl-code"> > </span><span class="hl-identifier">offsetHeight</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">y</span><span class="hl-code"> = </span><span class="hl-brackets">((</span><span class="hl-identifier">y</span><span class="hl-code"> + </span><span class="hl-identifier">oContextElement</span><span class="hl-code">.</span><span class="hl-identifier">offsetHeight</span><span class="hl-brackets">)</span><span class="hl-code"> - </span><span class="hl-identifier">offsetHeight</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">y</span><span class="hl-code"> = </span><span class="hl-identifier">bottomConstraint</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">x</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">x</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">y</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">y</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configVisible
|
|
* @description Event handler for when the "visible" configuration property
|
|
* the menu changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configVisible</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">configVisible</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_sType</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_aArgs</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oMenu
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bVisible</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sDisplay</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">display</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bVisible</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sDisplay</span><span class="hl-code"> != </span><span class="hl-quotes">"</span><span class="hl-string">block</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeShowEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">display</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">block</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">showEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sDisplay</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">block</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeHideEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">display</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hideEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configPosition
|
|
* @description Event handler for when the "position" configuration property
|
|
* of the menu changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configPosition</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sCSSPosition</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-code"> ? </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-code"> : </span><span class="hl-quotes">"</span><span class="hl-string">absolute</span><span class="hl-quotes">"</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oCfg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sCSSPosition</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sCSSPosition</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Remove the iframe for statically positioned menus since it will
|
|
intercept mouse events.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">oCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">iframe</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Statically positioned menus are visible by default
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">display</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">block</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/*
|
|
Even though the "visible" property is queued to
|
|
"false" by default, we need to set the "visibility" property to
|
|
"hidden" since Overlay's "configVisible" implementation checks the
|
|
element's "visibility" style property before deciding whether
|
|
or not to show an Overlay instance.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">visibility</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hidden</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sCSSPosition</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">absolute</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nZIndex</span><span class="hl-code"> = </span><span class="hl-identifier">oCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">zindex</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">nZIndex</span><span class="hl-code"> || </span><span class="hl-identifier">nZIndex</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">nZIndex</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> ?
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">zindex</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">zindex</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">nZIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configIframe
|
|
* @description Event handler for when the "iframe" configuration property of
|
|
* the menu changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configIframe</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">configIframe</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_sType</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_aArgs</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oMenu
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configHideDelay
|
|
* @description Event handler for when the "hidedelay" configuration property
|
|
* of the menu changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configHideDelay</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nHideDelay</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oKeyDownEvent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nHideDelay</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
Only assign event handlers once. This way the user change
|
|
the value for the hidedelay as many times as they want.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_hideDelayEventHandlersAssigned</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMouseOutEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_execHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oMouseOverEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oKeyDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_hideDelayEventHandlersAssigned</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oMouseOutEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_execHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oMouseOverEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oKeyDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelHideDelay</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_hideDelayEventHandlersAssigned</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configContainer
|
|
* @description Event handler for when the "container" configuration property
|
|
of the menu changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that
|
|
* fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configContainer</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">oElement</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">string</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">container</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementById</span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* Event handler called when the resize monitor element's "resize" evet is fired.
|
|
*/
|
|
</span><span class="hl-identifier">onDomResize</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_handleResize</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_handleResize</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">width</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getOffsetWidth</span><span class="hl-brackets">()</span><span class="hl-code"> + </span><span class="hl-quotes">"</span><span class="hl-string">px</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">onDomResize</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method initEvents
|
|
* @description Initializes the custom events for the menu.
|
|
*/
|
|
</span><span class="hl-identifier">initEvents</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initEvents</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Create custom events
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">CustomEvent</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseOverEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseOutEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clickEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">clickEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyPressEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemAddedEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">itemAddedEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">itemRemovedEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">itemRemovedEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getRoot
|
|
* @description Finds the menu's root menu.
|
|
*/
|
|
</span><span class="hl-identifier">getRoot</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentMenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oParentMenu</span><span class="hl-code"> ? </span><span class="hl-identifier">oParentMenu</span><span class="hl-code">.</span><span class="hl-identifier">getRoot</span><span class="hl-brackets">()</span><span class="hl-code"> : </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method toString
|
|
* @description Returns a string representing the menu.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">Menu </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method setItemGroupTitle
|
|
* @description Sets the title of a group of menu items.
|
|
* @param {String} p_sGroupTitle String specifying the title of the group.
|
|
* @param {Number} p_nGroupIndex Optional. Number specifying the group to which
|
|
* the title belongs.
|
|
*/
|
|
</span><span class="hl-identifier">setItemGroupTitle</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sGroupTitle</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_sGroupTitle</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">string</span><span class="hl-quotes">"</span><span class="hl-code"> && </span><span class="hl-identifier">p_sGroupTitle</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> = </span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-code"> ? </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code"> : </span><span class="hl-number">0</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTitle</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oTitle</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oTitle</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">p_sGroupTitle</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oTitle</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">GROUP_TITLE_TAG_NAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oTitle</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">p_sGroupTitle</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oTitle</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nFirstIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">nFirstIndex</span><span class="hl-code"> = </span><span class="hl-identifier">i</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nFirstIndex</span><span class="hl-code"> !== </span><span class="hl-reserved">null</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aGroupTitleElements</span><span class="hl-brackets">[</span><span class="hl-identifier">nFirstIndex</span><span class="hl-brackets">]</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">first-of-type</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method addItem
|
|
* @description Appends an item to the menu.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance to be added to the menu.
|
|
* @param {String} p_oItem String specifying the text of the item to be added
|
|
* to the menu.
|
|
* @param {Object} p_oItem Object literal containing a set of menu item
|
|
* configuration properties.
|
|
* @param {Number} p_nGroupIndex Optional. Number indicating the group to
|
|
* which the item belongs.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">addItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_addItemToGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method addItems
|
|
* @description Adds an array of items to the menu.
|
|
* @param {Array} p_aItems Array of items to be added to the menu. The array
|
|
* can contain strings specifying the text for each item to be created, object
|
|
* literals specifying each of the menu item configuration properties,
|
|
* or MenuItem instances.
|
|
* @param {Number} p_nGroupIndex Optional. Number specifying the group to
|
|
* which the items belongs.
|
|
* @return {Array}
|
|
*/
|
|
</span><span class="hl-identifier">addItems</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aItems</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">function </span><span class="hl-identifier">isArray</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oValue</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oValue</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">object</span><span class="hl-quotes">"</span><span class="hl-code"> && </span><span class="hl-identifier">p_oValue</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code"> == </span><span class="hl-builtin">Array</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">isArray</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aItems</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItems</span><span class="hl-code"> = </span><span class="hl-identifier">p_aItems</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aItems</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"><</span><span class="hl-identifier">nItems</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aItems</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">isArray</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">aItems</span><span class="hl-brackets">[</span><span class="hl-identifier">aItems</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addItems</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-code">, </span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">aItems</span><span class="hl-brackets">[</span><span class="hl-identifier">aItems</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> =
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_addItemToGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">oItem</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aItems</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">aItems</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method insertItem
|
|
* @description Inserts an item into the menu at the specified index.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem
|
|
* instance to be added to the menu.
|
|
* @param {String} p_oItem String specifying the text of the item to be added
|
|
* to the menu.
|
|
* @param {Object} p_oItem Object literal containing a set of menu item
|
|
* configuration properties.
|
|
* @param {Number} p_nItemIndex Number indicating the ordinal position at which
|
|
* the item should be added.
|
|
* @param {Number} p_nGroupIndex Optional. Number indicating the group to which
|
|
* the item belongs.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">insertItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_addItemToGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-code">, </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method removeItem
|
|
* @description Removes the specified item from the menu.
|
|
* @param {YAHOO.widget.MenuItem} p_oObject Object reference for the MenuItem
|
|
* instance to be removed from the menu.
|
|
* @param {Number} p_oObject Number specifying the index of the item
|
|
* to be removed.
|
|
* @param {Number} p_nGroupIndex Optional. Number specifying the group to
|
|
* which the item belongs.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">removeItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oObject</span><span class="hl-code"> != </span><span class="hl-quotes">"</span><span class="hl-string">undefined</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_removeItemFromGroupByValue</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oObject</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_removeItemFromGroupByIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">destroy</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getItemGroups
|
|
* @description Returns a multi-dimensional array of all of the items in the menu.
|
|
* @return {Array}
|
|
*/
|
|
</span><span class="hl-identifier">getItemGroups</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getItem
|
|
* @description Returns the item at the specified index.
|
|
* @param {Number} p_nItemIndex Number indicating the ordinal position of the
|
|
* item to be retrieved.
|
|
* @param {Number} p_nGroupIndex Optional. Number indicating the group to which
|
|
* the item belongs.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">getItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code">, </span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_nItemIndex</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">number</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getItemGroup</span><span class="hl-brackets">(</span><span class="hl-identifier">p_nGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">aGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">aGroup</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nItemIndex</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method destroy
|
|
* @description Removes the menu's <code>&#60;div&#62;</code> element
|
|
* (and accompanying child nodes) from the document.
|
|
*/
|
|
</span><span class="hl-identifier">destroy</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-comment">// Remove Custom Event listeners
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clickEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItemGroups</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nItems</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemGroup</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">n</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Remove all items
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItemGroups</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-identifier">nItemGroups</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oItemGroup</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItemGroup</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">nItems</span><span class="hl-code"> = </span><span class="hl-identifier">oItemGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nItems</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">n</span><span class="hl-code"> = </span><span class="hl-identifier">nItems</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">][</span><span class="hl-identifier">n</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">destroy</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">n</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Continue with the superclass implementation of this method
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">destroy</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method setInitialFocus
|
|
* @description Sets focus to the menu's first enabled item.
|
|
*/
|
|
</span><span class="hl-identifier">setInitialFocus</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstEnabledItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method setInitialSelection
|
|
* @description Sets the "selected" configuration property of the menu's first
|
|
* enabled item to "true."
|
|
*/
|
|
</span><span class="hl-identifier">setInitialSelection</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstEnabledItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method clearActiveItem
|
|
* @description Sets the "selected" configuration property of the menu's active
|
|
* item to "false" and hides the item's submenu.
|
|
* @param {Boolean} p_bBlur Boolean indicating if the menu's active item
|
|
* should be blurred.
|
|
*/
|
|
</span><span class="hl-identifier">clearActiveItem</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_bBlur</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_cancelShowDelay</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oActiveItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oActiveItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-identifier">oActiveItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_bBlur</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oActiveItem</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @description Initializes the class's configurable properties which can be
|
|
* changed using the menu's Config object ("cfg").
|
|
* @method initDefaultConfig
|
|
*/
|
|
</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Add configuration properties
|
|
|
|
/*
|
|
Change the default value for the "visible" configuration
|
|
property to "false" by re-adding the property.
|
|
*/
|
|
// holder
|
|
/**
|
|
* @config visible
|
|
* @description Boolean indicating whether or not the menu is visible. If
|
|
* the menu's "position" configuration property is set to "dynamic" (the
|
|
* default), this property toggles the menu's <code>&#60;div&#62;</code>
|
|
* element's "visibility" style property between "visible" (true) or
|
|
* "hidden" (false). If the menu's "position" configuration property is
|
|
* set to "static" this property toggles the menu's
|
|
* <code>&#60;div&#62;</code> element's "display" style property
|
|
* between "block" (true) or "none" (false).
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">:</span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">:</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configVisible</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">:</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Change the default value for the "constraintoviewport" configuration
|
|
property to "true" by re-adding the property.
|
|
*/
|
|
// holder
|
|
/**
|
|
* @config constraintoviewport
|
|
* @description Boolean indicating if the menu will try to remain inside
|
|
* the boundaries of the size of viewport.
|
|
* @default true
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">constraintoviewport</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">:</span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">:</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configConstrainToViewport</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">:</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">supercedes</span><span class="hl-code">:</span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">iframe</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-quotes">"</span><span class="hl-string">x</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-quotes">"</span><span class="hl-string">y</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-quotes">"</span><span class="hl-string">xy</span><span class="hl-quotes">"</span><span class="hl-brackets">]
|
|
}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config position
|
|
* @description String indicating how a menu should be positioned on the
|
|
* screen. Possible values are "static" and "dynamic." Static menus are
|
|
* visible by default and reside in the normal flow of the document
|
|
* (CSS position: static). Dynamic menus are hidden by default, reside
|
|
* out of the normal flow of the document (CSS position: absolute), and
|
|
* can overlay other elements on the screen.
|
|
* @default dynamic
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configPosition</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkPosition</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">supercedes</span><span class="hl-code">: </span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">]
|
|
}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config submenualignment
|
|
* @description Array defining how submenus should be aligned to their
|
|
* parent menu item. The format is: [itemCorner, submenuCorner]. By default
|
|
* a submenu's top left corner is aligned to its parent menu item's top
|
|
* right corner.
|
|
* @default ["tl","tr"]
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">tl</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-quotes">"</span><span class="hl-string">tr</span><span class="hl-quotes">"</span><span class="hl-brackets">] } )</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config autosubmenudisplay
|
|
* @description Boolean indicating if submenus are automatically made
|
|
* visible when the user mouses over the menu's items.
|
|
* @default true
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config showdelay
|
|
* @description Number indicating the time (in milliseconds) that should
|
|
* expire before a submenu is made visible when the user mouses over
|
|
* the menu's items.
|
|
* @default 0
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">showdelay</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-number">0</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkNumber
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config hidedelay
|
|
* @description Number indicating the time (in milliseconds) that should
|
|
* expire before the menu is hidden.
|
|
* @default 0
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">hidedelay</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-number">0</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkNumber</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configHideDelay</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config clicktohide
|
|
* @description Boolean indicating if the menu will automatically be
|
|
* hidden if the user clicks outside of it.
|
|
* @default true
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">clicktohide</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config container
|
|
* @description HTML element reference or string specifying the id
|
|
* attribute of the HTML element that the menu's markup should be rendered into.
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-58190037">HTMLElement</a>|String
|
|
* @default document.body
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">container</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">:</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">, </span><span class="hl-identifier">handler</span><span class="hl-code">:</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configContainer </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
})</span><span class="hl-code">; </span><span class="hl-comment">// END YAHOO.extend
|
|
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The base class for all menuing containers.
|
|
*
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the menu module.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source for the
|
|
* menu module.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929</span><span class="hl-comment">
|
|
* /level-one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;div&#62;</code> element of the menu module.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;select&#62;</code> element to be used as the data
|
|
* source for the menu module.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu module. See configuration class documentation for
|
|
* more details.
|
|
* @class MenuModule
|
|
* @constructor
|
|
* @extends YAHOO.widget.Overlay
|
|
* @deprecated As of version 0.12, all MenuModule functionality has been
|
|
* implemented directly in YAHOO.widget.Menu, making YAHOO.widget.Menu the base
|
|
* class for all menuing containers.
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">MenuModule</span><span class="hl-default"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">Menu</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Module</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Module</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Menu</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Creates an item for a menu.
|
|
*
|
|
* @param {String} p_oObject String specifying the text of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;li&#62;</code> element of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;option&#62;</code> element of the menu item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu item. See configuration class documentation
|
|
* for more details.
|
|
* @class MenuItem
|
|
* @constructor
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">p_oConfig</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">// Constants
|
|
|
|
/**
|
|
* @property SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* menu item's submenu arrow indicator.
|
|
* @default "nt/ic/ut/alt1/menuarorght8_nrm_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarorght8_nrm_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property SELECTED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* submenu arrow indicator when the menu item is selected.
|
|
* @default "nt/ic/ut/alt1/menuarorght8_hov_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">SELECTED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">:
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarorght8_hov_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property DISABLED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* submenu arrow indicator when the menu item is disabled.
|
|
* @default "nt/ic/ut/alt1/menuarorght8_dim_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">:
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarorght8_dim_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT
|
|
* @description String representing the alt text for the image to be used
|
|
* for the submenu arrow indicator.
|
|
* @default "Collapsed. Click to expand."
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">Collapsed. Click to expand.</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property EXPANDED_SUBMENU_INDICATOR_ALT_TEXT
|
|
* @description String representing the alt text for the image to be used
|
|
* for the submenu arrow indicator when the submenu is visible.
|
|
* @default "Expanded. Click to collapse."
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">EXPANDED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">Expanded. Click to collapse.</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property DISABLED_SUBMENU_INDICATOR_ALT_TEXT
|
|
* @description String representing the alt text for the image to be used
|
|
* for the submenu arrow indicator when the menu item is disabled.
|
|
* @default "Disabled."
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">Disabled.</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property CHECKED_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for
|
|
* the checked state.
|
|
* @default "nt/ic/ut/bsc/menuchk8_nrm_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CHECKED_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/bsc/menuchk8_nrm_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property SELECTED_CHECKED_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for
|
|
* the selected checked state.
|
|
* @default "nt/ic/ut/bsc/menuchk8_hov_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">SELECTED_CHECKED_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/bsc/menuchk8_hov_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property DISABLED_CHECKED_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for
|
|
* the disabled checked state.
|
|
* @default "nt/ic/ut/bsc/menuchk8_dim_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">DISABLED_CHECKED_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/bsc/menuchk8_dim_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property CHECKED_IMAGE_ALT_TEXT
|
|
* @description String representing the alt text for the image to be used
|
|
* for the checked image.
|
|
* @default "Checked."
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CHECKED_IMAGE_ALT_TEXT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">Checked.</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property DISABLED_CHECKED_IMAGE_ALT_TEXT
|
|
* @description String representing the alt text for the image to be used
|
|
* for the checked image when the item is disabled.
|
|
* @default "Checked. (Item disabled.)"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">DISABLED_CHECKED_IMAGE_ALT_TEXT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">Checked. (Item disabled.)</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property CSS_CLASS_NAME
|
|
* @description String representing the CSS class(es) to be applied to the
|
|
* <code>&#60;li&#62;</code> element of the menu item.
|
|
* @default "yuimenuitem"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">yuimenuitem</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property SUBMENU_TYPE
|
|
* @description Object representing the type of menu to instantiate and
|
|
* add when parsing the child nodes of the menu item's source HTML element.
|
|
* @final
|
|
* @type YAHOO.widget.Menu
|
|
*/
|
|
</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property IMG_ROOT
|
|
* @description String representing the prefix path to use for
|
|
* non-secure images.
|
|
* @default "</span><span class="hl-url">http://us.i1.yimg.com/us.yimg.com/i/</span><span class="hl-comment">"
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">IMG_ROOT</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">http://us.i1.yimg.com/us.yimg.com/i/</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property IMG_ROOT_SSL
|
|
* @description String representing the prefix path to use for securely
|
|
* served images.
|
|
* @default "</span><span class="hl-url">https://a248.e.akamai.net/sec.yimg.com/i/</span><span class="hl-comment">"
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">IMG_ROOT_SSL</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">https://a248.e.akamai.net/sec.yimg.com/i/</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private member variables
|
|
|
|
/**
|
|
* @property _oAnchor
|
|
* @description Object reference to the menu item's
|
|
* <code>&#60;a&#62;</code> element.
|
|
* @default null
|
|
* @private
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-48250443">HTMLAnchorElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _oText
|
|
* @description Object reference to the menu item's text node.
|
|
* @default null
|
|
* @private
|
|
* @type TextNode
|
|
*/
|
|
</span><span class="hl-identifier">_oText</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _oHelpTextEM
|
|
* @description Object reference to the menu item's help text
|
|
* <code>&#60;em&#62;</code> element.
|
|
* @default null
|
|
* @private
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-58190037">HTMLElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _oSubmenu
|
|
* @description Object reference to the menu item's submenu.
|
|
* @default null
|
|
* @private
|
|
* @type YAHOO.widget.Menu
|
|
*/
|
|
</span><span class="hl-identifier">_oSubmenu</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property _checkImage
|
|
* @description Object reference to the menu item's checkmark image.
|
|
* @default null
|
|
* @private
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-17701901">HTMLImageElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">_checkImage</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public properties
|
|
|
|
/**
|
|
* @property constructor
|
|
* @description Object reference to the menu item's constructor function.
|
|
* @default YAHOO.widget.MenuItem
|
|
* @type YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">constructor</span><span class="hl-code">: </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property imageRoot
|
|
* @description String representing the root path for all of the menu
|
|
* item's images.
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">imageRoot</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property isSecure
|
|
* @description Boolean representing whether or not the current browsing
|
|
* context is secure (HTTPS).
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">isSecure</span><span class="hl-code">: </span><span class="hl-identifier">Module</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">isSecure</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property index
|
|
* @description Number indicating the ordinal position of the menu item in
|
|
* its group.
|
|
* @default null
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">index</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property groupIndex
|
|
* @description Number indicating the index of the group to which the menu
|
|
* item belongs.
|
|
* @default null
|
|
* @type Number
|
|
*/
|
|
</span><span class="hl-identifier">groupIndex</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property parent
|
|
* @description Object reference to the menu item's parent menu.
|
|
* @default null
|
|
* @type YAHOO.widget.Menu
|
|
*/
|
|
</span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property element
|
|
* @description Object reference to the menu item's
|
|
* <code>&#60;li&#62;</code> element.
|
|
* @default <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level</span><span class="hl-comment">
|
|
* -one-html.html#ID-74680021">HTMLLIElement</a>
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">element</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property srcElement
|
|
* @description Object reference to the HTML element (either
|
|
* <code>&#60;li&#62;</code>, <code>&#60;optgroup&#62;</code> or
|
|
* <code>&#60;option&#62;</code>) used create the menu item.
|
|
* @default <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-74680021">HTMLLIElement</a>|<a href="</span><span class="hl-url">http://www.</span><span class="hl-comment">
|
|
* w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247"
|
|
* >HTMLOptGroupElement</a>|<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-</span><span class="hl-comment">
|
|
* Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>|<a href="</span><span class="hl-url">http://www.w3.</span><span class="hl-comment">
|
|
* org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247">
|
|
* HTMLOptGroupElement</a>|<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-</span><span class="hl-comment">
|
|
* Level-1-20000929/level-one-html.html#ID-70901257">HTMLOptionElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">srcElement</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property value
|
|
* @description Object reference to the menu item's value.
|
|
* @default null
|
|
* @type Object
|
|
*/
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property submenuIndicator
|
|
* @description Object reference to the <code>&#60;img&#62;</code> element
|
|
* used to create the submenu indicator for the menu item.
|
|
* @default <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-17701901">HTMLImageElement</a>
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-17701901">HTMLImageElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property browser
|
|
* @description String representing the browser.
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">browser</span><span class="hl-code">: </span><span class="hl-identifier">Module</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">browser</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Events
|
|
|
|
/**
|
|
* @event destroyEvent
|
|
* @description Fires when the menu item's <code>&#60;li&#62;</code>
|
|
* element is removed from its parent <code>&#60;ul&#62;</code> element.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">destroyEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseOverEvent
|
|
* @description Fires when the mouse has entered the menu item. Passes
|
|
* back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseOutEvent
|
|
* @description Fires when the mouse has left the menu item. Passes back
|
|
* the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseDownEvent
|
|
* @description Fires when the user mouses down on the menu item. Passes
|
|
* back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event mouseUpEvent
|
|
* @description Fires when the user releases a mouse button while the mouse
|
|
* is over the menu item. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event clickEvent
|
|
* @description Fires when the user clicks the on the menu item. Passes
|
|
* back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">clickEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyPressEvent
|
|
* @description Fires when the user presses an alphanumeric key when the
|
|
* menu item has focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyDownEvent
|
|
* @description Fires when the user presses a key when the menu item has
|
|
* focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event keyUpEvent
|
|
* @description Fires when the user releases a key when the menu item has
|
|
* focus. Passes back the DOM Event object as an argument.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event focusEvent
|
|
* @description Fires when the menu item receives focus.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">focusEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @event blurEvent
|
|
* @description Fires when the menu item loses the input focus.
|
|
* @type YAHOO.util.CustomEvent
|
|
*/
|
|
</span><span class="hl-identifier">blurEvent</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The MenuItem class's initialization method. This method is
|
|
* automatically called by the constructor, and sets up all DOM references
|
|
* for pre-existing markup, and creates required markup if it is not
|
|
* already present.
|
|
* @param {String} p_oObject String specifying the text of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;li&#62;</code> element of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;option&#62;</code> element of the menu item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu item. See configuration class documentation
|
|
* for more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">isSecure</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">IMG_ROOT_SSL</span><span class="hl-code"> : </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">IMG_ROOT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">Menu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Create the config object
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Config</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkString</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_createRootNodeStructure</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkDOMNode</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">OPTION</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_createRootNodeStructure</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-identifier">text</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oObject</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">OPTGROUP</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_createRootNodeStructure</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-reserved">label</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oObject</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initSubTree</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">LI</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-comment">// Get the anchor node (if it exists)
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstElement</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">A</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sURL</span><span class="hl-code"> = </span><span class="hl-quotes">"</span><span class="hl-string">#</span><span class="hl-quotes">"</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sTarget</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Capture the "text" and/or the "URL"
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">sURL</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">href</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sTarget</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">innerText</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">innerText</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oRange</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">ownerDocument</span><span class="hl-code">.</span><span class="hl-identifier">createRange</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oRange</span><span class="hl-code">.</span><span class="hl-identifier">selectNodeContents</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-identifier">oRange</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oText</span><span class="hl-code"> = </span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-identifier">oText</span><span class="hl-code">.</span><span class="hl-identifier">nodeValue</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">a</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">href</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sURL</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-code">, </span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oObject</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">p_oObject</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">// Check if emphasis has been applied to the MenuItem
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEmphasisNode</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstElement</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bEmphasis</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oEmphasisNode</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Set a reference to the text node
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code"> = </span><span class="hl-identifier">oEmphasisNode</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oEmphasisNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">EM</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">bEmphasis</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">STRONG</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">// Set a reference to the text node
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code"> = </span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
Set these properties silently to sync up the
|
|
configuration object without making changes to the
|
|
element's DOM
|
|
*/
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sText</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">url</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sURL</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sTarget</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">emphasis</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">bEmphasis</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">strongemphasis</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initSubTree</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Create custom events
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">CustomEvent</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">destroyEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">destroyEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseOverEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseOutEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">mouseUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clickEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">clickEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyPressEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyDownEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">keyUpEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">focusEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">focusEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">blurEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">blurEvent</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private methods
|
|
|
|
/**
|
|
* @method _getFirstElement
|
|
* @description Returns an HTML element's first HTML element node.
|
|
* @private
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-58190037">HTMLElement</a>} p_oElement Object
|
|
* reference specifying the element to be evaluated.
|
|
* @param {String} p_sTagName Optional. String specifying the tagname of
|
|
* the element to be retrieved.
|
|
* @return {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-58190037">HTMLElement</a>}
|
|
*/
|
|
</span><span class="hl-identifier">_getFirstElement</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_sTagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code"> && </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">.</span><span class="hl-identifier">nodeType</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-code">.</span><span class="hl-identifier">nodeType</span><span class="hl-code"> == </span><span class="hl-number">1
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code"> = </span><span class="hl-identifier">p_oElement</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sTagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-identifier">oElement</span><span class="hl-code"> && </span><span class="hl-identifier">oElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-identifier">p_sTagName</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">oElement</span><span class="hl-code"> : </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">oElement</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _checkString
|
|
* @description Determines if an object is a string.
|
|
* @private
|
|
* @param {Object} p_oObject Object to be evaluated.
|
|
* @return {Boolean}
|
|
*/
|
|
</span><span class="hl-identifier">_checkString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">p_oObject</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">string</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _checkDOMNode
|
|
* @description Determines if an object is an HTML element.
|
|
* @private
|
|
* @param {Object} p_oObject Object to be evaluated.
|
|
* @return {Boolean}
|
|
*/
|
|
</span><span class="hl-identifier">_checkDOMNode</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code"> && </span><span class="hl-identifier">p_oObject</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _createRootNodeStructure
|
|
* @description Creates the core DOM structure for the menu item.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_createRootNodeStructure</span><span class="hl-code">: </span><span class="hl-reserved">function </span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">li</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createTextNode</span><span class="hl-brackets">(</span><span class="hl-quotes">""</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">a</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">url</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _initSubTree
|
|
* @description Iterates the source element's childNodes collection and uses
|
|
* the child nodes to instantiate other menus.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_initSubTree</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSrcEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSrcEl</span><span class="hl-code">.</span><span class="hl-identifier">childNodes</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">SELECT</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">id</span><span class="hl-code">: </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">generateId</span><span class="hl-brackets">()</span><span class="hl-code">, </span><span class="hl-identifier">itemdata</span><span class="hl-code">: </span><span class="hl-identifier">oSrcEl</span><span class="hl-code">.</span><span class="hl-identifier">childNodes </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-identifier">oSrcEl</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aOptions</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">do </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code"> && </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">DIV</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">oNode</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">"</span><span class="hl-string">OPTION</span><span class="hl-quotes">"</span><span class="hl-code">:
|
|
|
|
</span><span class="hl-identifier">aOptions</span><span class="hl-brackets">[</span><span class="hl-identifier">aOptions</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">((</span><span class="hl-identifier">oNode</span><span class="hl-code"> = </span><span class="hl-identifier">oNode</span><span class="hl-code">.</span><span class="hl-identifier">nextSibling</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nOptions</span><span class="hl-code"> = </span><span class="hl-identifier">aOptions</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nOptions</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">(</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">generateId</span><span class="hl-brackets">())</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">oMenu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">n</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code"><</span><span class="hl-identifier">nOptions</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">addItem</span><span class="hl-brackets">((</span><span class="hl-reserved">new </span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">(</span><span class="hl-identifier">aOptions</span><span class="hl-brackets">[</span><span class="hl-identifier">n</span><span class="hl-brackets">])))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _preloadImage
|
|
* @description Preloads an image by creating an image element from the
|
|
* specified path and appending the image to the body of the document.
|
|
* @private
|
|
* @param {String} p_sPath String specifying the path to the image.
|
|
*/
|
|
</span><span class="hl-identifier">_preloadImage</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sPath</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sPath</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-identifier">p_sPath</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">images</span><span class="hl-brackets">[</span><span class="hl-identifier">sPath</span><span class="hl-brackets">]) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImage</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">img</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImage</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-identifier">sPath</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImage</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-identifier">sPath</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImage</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code"> = </span><span class="hl-identifier">sPath</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImage</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> = </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oImage</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Event handlers for configuration properties
|
|
|
|
/**
|
|
* @method configText
|
|
* @description Event handler for when the "text" configuration property of
|
|
* the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configText</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sText</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code">.</span><span class="hl-identifier">nodeValue</span><span class="hl-code"> = </span><span class="hl-identifier">sText</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configHelpText
|
|
* @description Event handler for when the "helptext" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configHelpText</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">me</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oHelpText</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aNodes</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Adds the "hashelptext" class to the necessary nodes and refires the
|
|
* "selected" and "disabled" configuration events.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">initHelpText</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hashelptext</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Removes the "hashelptext" class and corresponding DOM element (EM).
|
|
* @private
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">removeHelpText</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hashelptext</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">me</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">me</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkDOMNode</span><span class="hl-brackets">(</span><span class="hl-identifier">oHelpText</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oHelpText</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code"> = </span><span class="hl-identifier">oHelpText</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">, </span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">initHelpText</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkString</span><span class="hl-brackets">(</span><span class="hl-identifier">oHelpText</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oHelpText</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">removeHelpText</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">em</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">, </span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">oHelpText</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">initHelpText</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">oHelpText</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">removeHelpText</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configURL
|
|
* @description Event handler for when the "url" configuration property of
|
|
* the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configURL</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sURL</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">sURL</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">sURL</span><span class="hl-code"> = </span><span class="hl-quotes">"</span><span class="hl-string">#</span><span class="hl-quotes">"</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">href</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sURL</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configTarget
|
|
* @description Event handler for when the "target" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configTarget</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sTarget</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sTarget</span><span class="hl-code"> && </span><span class="hl-identifier">sTarget</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> > </span><span class="hl-number">0</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">sTarget</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">removeAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configEmphasis
|
|
* @description Event handler for when the "emphasis" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configEmphasis</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bEmphasis</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oText</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEM</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bEmphasis</span><span class="hl-code"> && </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">strongemphasis</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">strongemphasis</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bEmphasis</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oEM</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">em</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oEM</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oEM</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oEM</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstElement</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">EM</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oEM</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configStrongEmphasis
|
|
* @description Event handler for when the "strongemphasis" configuration
|
|
* property of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configStrongEmphasis</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oText</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oText</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oStrong</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-code"> && </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">emphasis</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">emphasis</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bStrongEmphasis</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oStrong</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">strong</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oStrong</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oStrong</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oStrong</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_getFirstElement</span><span class="hl-brackets">(</span><span class="hl-identifier">oAnchor</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">STRONG</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oStrong</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configChecked
|
|
* @description Event handler for when the "checked" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configChecked</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bChecked</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImg</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bChecked</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SELECTED_CHECKED_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CHECKED_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">img</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-code">, </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">([</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-identifier">oImg</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">checked</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkImage</span><span class="hl-code"> = </span><span class="hl-identifier">oImg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkImage</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">([</span><span class="hl-identifier">oEl</span><span class="hl-code">, </span><span class="hl-identifier">oImg</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">checked</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkImage</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configDisabled
|
|
* @description Event handler for when the "disabled" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configDisabled</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bDisabled</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aNodes</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">oAnchor</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEM</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sImgSrc</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sImgAlt</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oEM</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">aNodes</span><span class="hl-brackets">[</span><span class="hl-number">2</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oEM</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">checked</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">sImgAlt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_ALT_TEXT</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_PATH</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkImage</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bDisabled</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">sImgAlt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CHECKED_IMAGE_ALT_TEXT</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CHECKED_IMAGE_PATH</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">images</span><span class="hl-brackets">[(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-identifier">sImgSrc</span><span class="hl-brackets">)]</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-identifier">sImgAlt</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bDisabled</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">removeAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">href</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgAlt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">href</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">url</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgAlt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-identifier">sImgSrc</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-identifier">sImgAlt</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configSelected
|
|
* @description Event handler for when the "selected" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configSelected</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bSelected</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEM</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oHelpTextEM</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aNodes</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sImgSrc</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oEM</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">aNodes</span><span class="hl-brackets">[</span><span class="hl-identifier">aNodes</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oEM</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">aNodes</span><span class="hl-brackets">[</span><span class="hl-identifier">aNodes</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">oImg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">checked</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-brackets">(</span><span class="hl-identifier">bSelected</span><span class="hl-code"> ?
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SELECTED_CHECKED_IMAGE_PATH</span><span class="hl-code"> : </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CHECKED_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkImage</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">images</span><span class="hl-brackets">[</span><span class="hl-identifier">sImgSrc</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bSelected</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SELECTED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">sImgSrc</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">images</span><span class="hl-brackets">[(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-identifier">sImgSrc</span><span class="hl-brackets">)]</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method configSubmenu
|
|
* @description Event handler for when the "submenu" configuration property
|
|
* of the menu item changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configSubmenu</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aNodes</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oMenu</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bLazyLoad</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">Menu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code">.</span><span class="hl-identifier">lazyLoad</span><span class="hl-code"> = </span><span class="hl-identifier">bLazyLoad</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">typeof </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">object</span><span class="hl-quotes">"</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">nodeType
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">sSubmenuId</span><span class="hl-code"> = </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenuConfig</span><span class="hl-code"> = </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">delete </span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">id</span><span class="hl-quotes">"</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oSubmenuConfig</span><span class="hl-code">.</span><span class="hl-identifier">lazyload</span><span class="hl-code"> = </span><span class="hl-identifier">bLazyLoad</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oSubmenuConfig</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">(</span><span class="hl-identifier">sSubmenuId</span><span class="hl-code">, </span><span class="hl-identifier">oSubmenuConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Set the value of the property to the Menu instance
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">oMenu</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oMenu</span><span class="hl-code"> = </span><span class="hl-reserved">new this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">lazyload</span><span class="hl-code">: </span><span class="hl-identifier">bLazyLoad</span><span class="hl-code">, </span><span class="hl-identifier">parent</span><span class="hl-code">: </span><span class="hl-reserved">this </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Set the value of the property to the Menu instance
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">oMenu</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oMenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SELECTED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_preloadImage</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">img</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">src</span><span class="hl-code"> =
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">imageRoot</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oImg</span><span class="hl-code">.</span><span class="hl-identifier">alt</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-code"> = </span><span class="hl-identifier">oImg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hassubmenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">refireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-identifier">aNodes</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">hassubmenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oImg</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">destroy</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* @method initDefaultConfig
|
|
* @description Initializes an item's configurable properties.
|
|
*/
|
|
</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">CheckBoolean</span><span class="hl-code"> = </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Define the config properties
|
|
|
|
/**
|
|
* @config text
|
|
* @description String specifying the text label for the menu item.
|
|
* When building a menu from existing HTML the value of this property
|
|
* will be interpreted from the menu's markup.
|
|
* @default ""
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-quotes">""</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configText</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkString</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config helptext
|
|
* @description String specifying additional instructional text to
|
|
* accompany the text for the nenu item.
|
|
* @default null
|
|
* @type String|<a href="</span><span class="hl-url">http://www.w3.org/TR/</span><span class="hl-comment">
|
|
* 2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
|
|
* HTMLElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">helptext</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configHelpText </span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config url
|
|
* @description String specifying the URL for the menu item's anchor's
|
|
* "href" attribute. When building a menu from existing HTML the value
|
|
* of this property will be interpreted from the menu's markup.
|
|
* @default "#"
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">url</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">#</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configURL</span><span class="hl-code">, </span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config target
|
|
* @description String specifying the value for the "target" attribute
|
|
* of the menu item's anchor element. <strong>Specifying a target will
|
|
* require the user to click directly on the menu item's anchor node in
|
|
* order to cause the browser to navigate to the specified URL.</strong>
|
|
* When building a menu from existing HTML the value of this property
|
|
* will be interpreted from the menu's markup.
|
|
* @default null
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">target</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configTarget</span><span class="hl-code">, </span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config emphasis
|
|
* @description Boolean indicating if the text of the menu item will be
|
|
* rendered with emphasis. When building a menu from existing HTML the
|
|
* value of this property will be interpreted from the menu's markup.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">emphasis</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configEmphasis</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">CheckBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config strongemphasis
|
|
* @description Boolean indicating if the text of the menu item will be
|
|
* rendered with strong emphasis. When building a menu from existing
|
|
* HTML the value of this property will be interpreted from the
|
|
* menu's markup.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">strongemphasis</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configStrongEmphasis</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">CheckBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config checked
|
|
* @description Boolean indicating if the menu item should be rendered
|
|
* with a checkmark.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">checked</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configChecked</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">supercedes</span><span class="hl-code">:</span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">]
|
|
}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config disabled
|
|
* @description Boolean indicating if the menu item should be disabled.
|
|
* (Disabled menu items are dimmed and will not respond to user input
|
|
* or fire events.)
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configDisabled</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">CheckBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config selected
|
|
* @description Boolean indicating if the menu item should
|
|
* be highlighted.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configSelected</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">CheckBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">suppressEvent</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config submenu
|
|
* @description Object specifying the submenu to be appended to the
|
|
* menu item. The value can be one of the following: <ul><li>Object
|
|
* specifying a Menu instance.</li><li>Object literal specifying the
|
|
* menu to be created. Format: <code>{ id: [menu id], itemdata:
|
|
* [<a href="YAHOO.widget.Menu.html#itemData">array of values for
|
|
* items</a>] }</code>.</li><li>String specifying the id attribute
|
|
* of the <code>&#60;div&#62;</code> element of the menu.</li><li>
|
|
* Object specifying the <code>&#60;div&#62;</code> element of the
|
|
* menu.</li></ul>
|
|
* @default null
|
|
* @type Menu|String|Object|<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/</span><span class="hl-comment">
|
|
* WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037">
|
|
* HTMLElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configSubmenu </span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getNextEnabledSibling
|
|
* @description Finds the menu item's next enabled sibling.
|
|
* @return YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">getNextEnabledSibling</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">Menu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">groupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Finds the next item in an array.
|
|
* @private
|
|
* @param {p_aArray} Array to search.
|
|
* @param {p_nStartIndex} Number indicating the index to
|
|
* start searching the array.
|
|
* @return {Object}
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">getNextArrayItem</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p_aArray</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">]</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">getNextArrayItem</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aItemGroups</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">getItemGroups</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNextItem</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code"> < </span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code"> = </span><span class="hl-identifier">getNextArrayItem</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nNextGroupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> < </span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">nNextGroupIndex</span><span class="hl-code"> = </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">nNextGroupIndex</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aNextGroup</span><span class="hl-code"> = </span><span class="hl-identifier">getNextArrayItem</span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-code">, </span><span class="hl-identifier">nNextGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Retrieve the first menu item in the next group
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code"> = </span><span class="hl-identifier">getNextArrayItem</span><span class="hl-brackets">(</span><span class="hl-identifier">aNextGroup</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">getNextEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code"> : </span><span class="hl-identifier">oNextItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method getPreviousEnabledSibling
|
|
* @description Finds the menu item's previous enabled sibling.
|
|
* @return {YAHOO.widget.MenuItem}
|
|
*/
|
|
</span><span class="hl-identifier">getPreviousEnabledSibling</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent </span><span class="hl-reserved">instanceof </span><span class="hl-identifier">Menu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">groupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns the previous item in an array
|
|
* @private
|
|
* @param {p_aArray} Array to search.
|
|
* @param {p_nStartIndex} Number indicating the index to
|
|
* start searching the array.
|
|
* @return {Object}
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">getPreviousArrayItem</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p_aArray</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">]</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">getPreviousArrayItem</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Get the index of the first item in an array
|
|
* @private
|
|
* @param {p_aArray} Array to search.
|
|
* @param {p_nStartIndex} Number indicating the index to
|
|
* start searching the array.
|
|
* @return {Object}
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">getFirstItemIndex</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p_aArray</span><span class="hl-brackets">[</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-brackets">]</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-code"> :
|
|
</span><span class="hl-identifier">getFirstItemIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">p_aArray</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-identifier">p_nStartIndex</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aItemGroups</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">getItemGroups</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oPreviousItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code"> > </span><span class="hl-identifier">getFirstItemIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oPreviousItem</span><span class="hl-code"> =
|
|
</span><span class="hl-identifier">getPreviousArrayItem</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">aItemGroups</span><span class="hl-brackets">[</span><span class="hl-identifier">nGroupIndex</span><span class="hl-brackets">]</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">index</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nPreviousGroupIndex</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> > </span><span class="hl-identifier">getFirstItemIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">nPreviousGroupIndex</span><span class="hl-code"> = </span><span class="hl-identifier">nGroupIndex</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">nPreviousGroupIndex</span><span class="hl-code"> = </span><span class="hl-identifier">aItemGroups</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">aPreviousGroup</span><span class="hl-code"> =
|
|
</span><span class="hl-identifier">getPreviousArrayItem</span><span class="hl-brackets">(</span><span class="hl-identifier">aItemGroups</span><span class="hl-code">, </span><span class="hl-identifier">nPreviousGroupIndex</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oPreviousItem</span><span class="hl-code"> =
|
|
</span><span class="hl-identifier">getPreviousArrayItem</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">aPreviousGroup</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">aPreviousGroup</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-brackets">)
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oPreviousItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> ||
|
|
</span><span class="hl-identifier">oPreviousItem</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">oPreviousItem</span><span class="hl-code">.</span><span class="hl-identifier">getPreviousEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code"> : </span><span class="hl-identifier">oPreviousItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method focus
|
|
* @description Causes the menu item to receive the focus and fires the
|
|
* focus event.
|
|
*/
|
|
</span><span class="hl-identifier">focus</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oAnchor</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oActiveItem</span><span class="hl-code"> = </span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> != </span><span class="hl-quotes">"</span><span class="hl-string">none</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oActiveItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oActiveItem</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">try </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">catch</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
|
|
}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">focusEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method blur
|
|
* @description Causes the menu item to lose focus and fires the
|
|
* onblur event.
|
|
*/
|
|
</span><span class="hl-identifier">blur</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">
|
|
!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">disabled</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">oParent</span><span class="hl-code"> &&
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-identifier">oParent</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">visibility</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"
|
|
</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oAnchor</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">blurEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method destroy
|
|
* @description Removes the menu item's <code>&#60;li&#62;</code> element
|
|
* from its parent <code>&#60;ul&#62;</code> element.
|
|
*/
|
|
</span><span class="hl-identifier">destroy</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oEl</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Remove CustomEvent listeners
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOverEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseOutEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">mouseUpEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clickEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyPressEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyDownEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keyUpEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">focusEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">blurEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">configChangedEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Remove the element from the parent node
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oParentNode</span><span class="hl-code"> = </span><span class="hl-identifier">oEl</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oParentNode</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oParentNode</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">oEl</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">destroyEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">destroyEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribeAll</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method toString
|
|
* @description Returns a string representing the menu item.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">MenuItem: </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Creates an item for a menu module.
|
|
*
|
|
* @param {String} p_oObject String specifying the text of the menu module item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;li&#62;</code> element of the menu module item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;optgroup&#62;</code> element of the menu module item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;option&#62;</code> element of the menu module item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu module item. See configuration class documentation
|
|
* for more details.
|
|
* @class MenuModuleItem
|
|
* @constructor
|
|
* @deprecated As of version 0.12, all MenuModuleItem functionality has been
|
|
* implemented directly in YAHOO.widget.MenuItem, making YAHOO.widget.MenuItem
|
|
* the base class for all menu items.
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">MenuModuleItem</span><span class="hl-default"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">MenuItem</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Creates a list of options or commands which are made visible in response to
|
|
* an HTML element's "contextmenu" event ("mousedown" for Opera).
|
|
*
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the context menu.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source for the
|
|
* context menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying the
|
|
* <code>&#60;div&#62;</code> element of the context menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object specifying
|
|
* the <code>&#60;select&#62;</code> element to be used as the data source for
|
|
* the context menu.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the context menu. See configuration class documentation
|
|
* for more details.
|
|
* @class ContextMenu
|
|
* @constructor
|
|
* @extends YAHOO.widget.Menu
|
|
* @namespace YAHOO.widget
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oConfig
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">// Private properties
|
|
|
|
/**
|
|
* @property _oTrigger
|
|
* @description Object reference to the current value of the "trigger"
|
|
* configuration property.
|
|
* @default null
|
|
* @private
|
|
* @type String|<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/leve</span><span class="hl-comment">
|
|
* l-one-html.html#ID-58190037">HTMLElement</a>|Array
|
|
*/
|
|
</span><span class="hl-identifier">_oTrigger</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public properties
|
|
|
|
/**
|
|
* @property contextEventTarget
|
|
* @description Object reference for the HTML element that was the target of the
|
|
* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of
|
|
* the context menu.
|
|
* @default null
|
|
* @type <a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-58190037">HTMLElement</a>
|
|
*/
|
|
</span><span class="hl-identifier">contextEventTarget</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The ContextMenu class's initialization method. This method is
|
|
* automatically called by the constructor, and sets up all DOM references for
|
|
* pre-existing markup, and creates required markup if it is not already present.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the context menu.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source for
|
|
* the context menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying the
|
|
* <code>&#60;div&#62;</code> element of the context menu.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-</span><span class="hl-comment">
|
|
* html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object specifying
|
|
* the <code>&#60;select&#62;</code> element to be used as the data source for
|
|
* the context menu.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the context menu. See configuration class documentation
|
|
* for more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenuItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Call the init of the superclass (YAHOO.widget.Menu)
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">p_oElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeInitEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private methods
|
|
|
|
/**
|
|
* @method _removeEventHandlers
|
|
* @description Removes all of the DOM event handlers from the HTML element(s)
|
|
* whose "context menu" event ("click" for Opera) trigger the display of
|
|
* the context menu.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">_removeEventHandlers</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTrigger</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oTrigger</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bOpera</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browser</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">opera</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Remove the event handlers from the trigger(s)
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTrigger</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">bOpera</span><span class="hl-code"> ? </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code"> : </span><span class="hl-quotes">"</span><span class="hl-string">contextmenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onTriggerContextMenu
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bOpera</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(</span><span class="hl-identifier">oTrigger</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">click</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onTriggerClick</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Private event handlers
|
|
|
|
/**
|
|
* @method _onTriggerClick
|
|
* @description "click" event handler for the HTML element(s) identified as the
|
|
* "trigger" for the context menu. Used to cancel default behaviors in Opera.
|
|
* @private
|
|
* @param {Event} p_oEvent Object representing the DOM event object passed back
|
|
* by the event utility (YAHOO.util.Event).
|
|
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context
|
|
* menu that is handling the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onTriggerClick</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">stopEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onTriggerContextMenu
|
|
* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML
|
|
* element(s) that trigger the display of the context menu.
|
|
* @private
|
|
* @param {Event} p_oEvent Object representing the DOM event object passed back
|
|
* by the event utility (YAHOO.util.Event).
|
|
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context
|
|
* menu that is handling the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onTriggerContextMenu</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">// Hide any other ContextMenu instances that might be visible
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuManager</span><span class="hl-code">.</span><span class="hl-identifier">hideVisible</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code"> && !</span><span class="hl-identifier">p_oEvent</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">return</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">contextEventTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Position and display the context menu
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nX</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getPageX</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nY</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getPageY</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">( { </span><span class="hl-identifier">xy</span><span class="hl-code">:</span><span class="hl-brackets">[</span><span class="hl-identifier">nX</span><span class="hl-code">, </span><span class="hl-identifier">nY</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">visible</span><span class="hl-code">:</span><span class="hl-reserved">true </span><span class="hl-brackets">} )</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Prevent the browser's default context menu from appearing and
|
|
stop the propagation of the "contextmenu" event so that
|
|
other ContextMenu instances are not displayed.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">stopEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* @method toString
|
|
* @description Returns a string representing the context menu.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">ContextMenu </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method initDefaultConfig
|
|
* @description Initializes the class's configurable properties which can be
|
|
* changed using the context menu's Config object ("cfg").
|
|
*/
|
|
</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @config trigger
|
|
* @description The HTML element(s) whose "contextmenu" event ("mousedown"
|
|
* for Opera) trigger the display of the context menu. Can be a string
|
|
* representing the id attribute of the HTML element, an object reference
|
|
* for the HTML element, or an array of strings or HTML element references.
|
|
* @default null
|
|
* @type String|<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/</span><span class="hl-comment">
|
|
* level-one-html.html#ID-58190037">HTMLElement</a>|Array
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">trigger</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configTrigger </span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method destroy
|
|
* @description Removes the context menu's <code>&#60;div&#62;</code> element
|
|
* (and accompanying child nodes) from the document.
|
|
*/
|
|
</span><span class="hl-identifier">destroy</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-comment">// Remove the DOM event handlers from the current trigger(s)
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_removeEventHandlers</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">// Continue with the superclass implementation of this method
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">destroy</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public event handlers for configuration properties
|
|
|
|
/**
|
|
* @method configTrigger
|
|
* @description Event handler for when the value of the "trigger" configuration
|
|
* property changes.
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context
|
|
* menu that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">configTrigger</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTrigger</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oTrigger</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-comment">/*
|
|
If there is a current "trigger" - remove the event handlers
|
|
from that element(s) before assigning new ones
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oTrigger</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_removeEventHandlers</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_oTrigger</span><span class="hl-code"> = </span><span class="hl-identifier">oTrigger</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Listen for the "mousedown" event in Opera b/c it does not
|
|
support the "contextmenu" event
|
|
*/
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">bOpera</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browser</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">opera</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTrigger</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">bOpera</span><span class="hl-code"> ? </span><span class="hl-quotes">"</span><span class="hl-string">mousedown</span><span class="hl-quotes">"</span><span class="hl-code"> : </span><span class="hl-quotes">"</span><span class="hl-string">contextmenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onTriggerContextMenu</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Assign a "click" event handler to the trigger element(s) for
|
|
Opera to prevent default browser behaviors.
|
|
*/
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">bOpera</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oTrigger</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">click</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_onTriggerClick</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_removeEventHandlers</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
})</span><span class="hl-default">; </span><span class="hl-comment">// END YAHOO.extend
|
|
|
|
/**
|
|
* Creates an item for a context menu.
|
|
*
|
|
* @param {String} p_oObject String specifying the text of the context menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;li&#62;</code> element of the context menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the context
|
|
* menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;option&#62;</code> element of the context menu item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the context menu item. See configuration class
|
|
* documentation for more details.
|
|
* @class ContextMenuItem
|
|
* @constructor
|
|
* @extends YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">ContextMenuItem</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenuItem</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oObject</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oConfig
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenuItem</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The ContextMenuItem class's initialization method. This method
|
|
* is automatically called by the constructor, and sets up all DOM references
|
|
* for pre-existing markup, and creates required markup if it is not
|
|
* already present.
|
|
* @param {String} p_oObject String specifying the text of the context menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;li&#62;</code> element of the context menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the context
|
|
* menu item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;option&#62;</code> element of the context menu item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the context menu item. See configuration class
|
|
* documentation for more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
Call the init of the superclass (YAHOO.widget.MenuItem)
|
|
</span><span class="hl-inlinedoc">Note:</span><span class="hl-comment"> We don't pass the user config in here yet
|
|
because we only want it executed once, at the lowest
|
|
subclass level.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">ContextMenuItem</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* @method toString
|
|
* @description Returns a string representing the context menu item.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">MenuBarItem: </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
})</span><span class="hl-default">; </span><span class="hl-comment">// END YAHOO.extend
|
|
|
|
/**
|
|
* Horizontal collection of items, each of which can contain a submenu.
|
|
*
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the menu bar.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source for the
|
|
* menu bar.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying
|
|
* the <code>&#60;div&#62;</code> element of the menu bar.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;select&#62;</code> element to be used as the data
|
|
* source for the menu bar.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu bar. See configuration class documentation for
|
|
* more details.
|
|
* @class Menubar
|
|
* @constructor
|
|
* @extends YAHOO.widget.Menu
|
|
* @namespace YAHOO.widget
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">MenuBar</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oElement</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oConfig
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The MenuBar class's initialization method. This method is
|
|
* automatically called by the constructor, and sets up all DOM references for
|
|
* pre-existing markup, and creates required markup if it is not already present.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;div&#62;</code> element of the menu bar.
|
|
* @param {String} p_oElement String specifying the id attribute of the
|
|
* <code>&#60;select&#62;</code> element to be used as the data source for the
|
|
* menu bar.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-22445964">HTMLDivElement</a>} p_oElement Object specifying
|
|
* the <code>&#60;div&#62;</code> element of the menu bar.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-94282980">HTMLSelectElement</a>} p_oElement Object
|
|
* specifying the <code>&#60;select&#62;</code> element to be used as the data
|
|
* source for the menu bar.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu bar. See configuration class documentation for
|
|
* more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oElement</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ITEM_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBarItem</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// Call the init of the superclass (YAHOO.widget.Menu)
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">p_oElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">beforeInitEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Constants
|
|
|
|
/**
|
|
* @property CSS_CLASS_NAME
|
|
* @description String representing the CSS class(es) to be applied to the menu
|
|
* bar's <code>&#60;div&#62;</code> element.
|
|
* @default "yuimenubar"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">yuimenubar</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Protected event handlers
|
|
|
|
/**
|
|
* @method _onKeyDown
|
|
* @description "keydown" Custom Event handler for the menu bar.
|
|
* @private
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onKeyDown</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenuBar</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItemCfg</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">27</span><span class="hl-code">: </span><span class="hl-comment">// Esc key
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-quotes">"</span><span class="hl-string">dynamic</span><span class="hl-quotes">"</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> && </span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">37</span><span class="hl-code">: </span><span class="hl-comment">// Left arrow
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">39</span><span class="hl-code">: </span><span class="hl-comment">// Right arrow
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code"> == </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-brackets">)
|
|
) {
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oNextItem</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> == </span><span class="hl-number">37</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">getPreviousEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code"> :
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">getNextEnabledSibling</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oNextItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">.</span><span class="hl-identifier">blur</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">oNextItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">case </span><span class="hl-number">40</span><span class="hl-code">: </span><span class="hl-comment">// Down arrow
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code"> != </span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItemCfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">setInitialSelection</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">setInitialFocus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method _onClick
|
|
* @description "click" event handler for the menu bar.
|
|
* @protected
|
|
* @param {String} p_sType String representing the name of the event that
|
|
* was fired.
|
|
* @param {Array} p_aArgs Array of arguments sent when the event was fired.
|
|
* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar
|
|
* that fired the event.
|
|
*/
|
|
</span><span class="hl-identifier">_onClick</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_sType</span><span class="hl-code">, </span><span class="hl-identifier">p_aArgs</span><span class="hl-code">, </span><span class="hl-identifier">p_oMenuBar</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">_onClick</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_sType</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_aArgs</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oMenuBar
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oItem</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oEvent</span><span class="hl-code"> = </span><span class="hl-identifier">p_aArgs</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oTarget</span><span class="hl-code"> = </span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">oEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oActiveItem</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">activeItem</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Hide any other submenus that might be visible
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oActiveItem</span><span class="hl-code"> && </span><span class="hl-identifier">oActiveItem</span><span class="hl-code"> != </span><span class="hl-identifier">oItem</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">clearActiveItem</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
|
|
</span><span class="hl-comment">// Select and focus the current item
|
|
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">setProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">selected</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">focus</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">// Show the submenu for the item
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> = </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenu</span><span class="hl-quotes">"</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code"> && </span><span class="hl-identifier">oTarget</span><span class="hl-code"> != </span><span class="hl-identifier">oItem</span><span class="hl-code">.</span><span class="hl-identifier">submenuIndicator</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">)) {
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">hide</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-identifier">oSubmenu</span><span class="hl-code">.</span><span class="hl-identifier">show</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* @method toString
|
|
* @description Returns a string representing the menu bar.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">MenuBar </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @description Initializes the class's configurable properties which can be
|
|
* changed using the menu bar's Config object ("cfg").
|
|
* @method initDefaultConfig
|
|
*/
|
|
</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBar</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initDefaultConfig</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">// Add configuration properties
|
|
|
|
/*
|
|
Set the default value for the "position" configuration property
|
|
to "static" by re-adding the property.
|
|
*/
|
|
// holder
|
|
/**
|
|
* @config position
|
|
* @description String indicating how a menu bar should be positioned on the
|
|
* screen. Possible values are "static" and "dynamic." Static menu bars
|
|
* are visible by default and reside in the normal flow of the document
|
|
* (CSS position: static). Dynamic menu bars are hidden by default, reside
|
|
* out of the normal flow of the document (CSS position: absolute), and can
|
|
* overlay other elements on the screen.
|
|
* @default static
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">position</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">static</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">handler</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configPosition</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_checkPosition</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">supercedes</span><span class="hl-code">: </span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">visible</span><span class="hl-quotes">"</span><span class="hl-brackets">]
|
|
}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Set the default value for the "submenualignment" configuration property
|
|
to ["tl","bl"] by re-adding the property.
|
|
*/
|
|
// holder
|
|
/**
|
|
* @config submenualignment
|
|
* @description Array defining how submenus should be aligned to their
|
|
* parent menu bar item. The format is: [itemCorner, submenuCorner].
|
|
* @default ["tl","bl"]
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">submenualignment</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-brackets">[</span><span class="hl-quotes">"</span><span class="hl-string">tl</span><span class="hl-quotes">"</span><span class="hl-code">,</span><span class="hl-quotes">"</span><span class="hl-string">bl</span><span class="hl-quotes">"</span><span class="hl-brackets">] } )</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Change the default value for the "autosubmenudisplay" configuration
|
|
property to "false" by re-adding the property.
|
|
*/
|
|
// holder
|
|
/**
|
|
* @config autosubmenudisplay
|
|
* @description Boolean indicating if submenus are automatically made
|
|
* visible when the user mouses over the menu bar's items.
|
|
* @default false
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">addProperty</span><span class="hl-brackets">(
|
|
</span><span class="hl-quotes">"</span><span class="hl-string">autosubmenudisplay</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">checkBoolean </span><span class="hl-brackets">}
|
|
)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
})</span><span class="hl-default">; </span><span class="hl-comment">// END YAHOO.extend
|
|
|
|
/**
|
|
* Creates an item for a menu bar.
|
|
*
|
|
* @param {String} p_oObject String specifying the text of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;li&#62;</code> element of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;option&#62;</code> element of the menu bar item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu bar item. See configuration class documentation
|
|
* for more details.
|
|
* @class MenuBarItem
|
|
* @constructor
|
|
* @extends YAHOO.widget.MenuItem
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">widget</span><span class="hl-default">.</span><span class="hl-identifier">MenuBarItem</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBarItem</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oObject</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">p_oConfig
|
|
</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBarItem</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuItem</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @method init
|
|
* @description The MenuBarItem class's initialization method. This method is
|
|
* automatically called by the constructor, and sets up all DOM references for
|
|
* pre-existing markup, and creates required markup if it is not already present.
|
|
* @param {String} p_oObject String specifying the text of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-74680021">HTMLLIElement</a>} p_oObject Object specifying the
|
|
* <code>&#60;li&#62;</code> element of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-38450247">HTMLOptGroupElement</a>} p_oObject Object
|
|
* specifying the <code>&#60;optgroup&#62;</code> element of the menu bar item.
|
|
* @param {<a href="</span><span class="hl-url">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-</span><span class="hl-comment">
|
|
* one-html.html#ID-70901257">HTMLOptionElement</a>} p_oObject Object specifying
|
|
* the <code>&#60;option&#62;</code> element of the menu bar item.
|
|
* @param {Object} p_oConfig Optional. Object literal specifying the
|
|
* configuration for the menu bar item. See configuration class documentation
|
|
* for more details.
|
|
*/
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oObject</span><span class="hl-code">, </span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SUBMENU_TYPE</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Menu</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/*
|
|
Call the init of the superclass (YAHOO.widget.MenuItem)
|
|
</span><span class="hl-inlinedoc">Note:</span><span class="hl-comment"> We don't pass the user config in here yet
|
|
because we only want it executed once, at the lowest
|
|
subclass level.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">MenuBarItem</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">p_oObject</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">oConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-brackets">) {
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">applyConfig</span><span class="hl-brackets">(</span><span class="hl-identifier">p_oConfig</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">oConfig</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Constants
|
|
|
|
/**
|
|
* @property CSS_CLASS_NAME
|
|
* @description String representing the CSS class(es) to be applied to the
|
|
* <code>&#60;li&#62;</code> element of the menu bar item.
|
|
* @default "yuimenubaritem"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">CSS_CLASS_NAME</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">yuimenubaritem</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* menu bar item's submenu arrow indicator.
|
|
* @default "nt/ic/ut/alt1/menuarodwn8_nrm_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarodwn8_nrm_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property SELECTED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* submenu arrow indicator when the menu bar item is selected.
|
|
* @default "nt/ic/ut/alt1/menuarodwn8_hov_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">SELECTED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarodwn8_hov_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @property DISABLED_SUBMENU_INDICATOR_IMAGE_PATH
|
|
* @description String representing the path to the image to be used for the
|
|
* submenu arrow indicator when the menu bar item is disabled.
|
|
* @default "nt/ic/ut/alt1/menuarodwn8_dim_1.gif"
|
|
* @final
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">DISABLED_SUBMENU_INDICATOR_IMAGE_PATH</span><span class="hl-code">: </span><span class="hl-quotes">"</span><span class="hl-string">nt/ic/ut/alt1/menuarodwn8_dim_1.gif</span><span class="hl-quotes">"</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">// Public methods
|
|
|
|
/**
|
|
* @method toString
|
|
* @description Returns a string representing the menu bar item.
|
|
* @return {String}
|
|
*/
|
|
</span><span class="hl-identifier">toString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">MenuBarItem: </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">cfg</span><span class="hl-code">.</span><span class="hl-identifier">getProperty</span><span class="hl-brackets">(</span><span class="hl-quotes">"</span><span class="hl-string">text</span><span class="hl-quotes">"</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
})</span><span class="hl-default">; </span><span class="hl-comment">// END YAHOO.extend</span></pre></div><hr>Copyright © 2006 Jack Slocum. All rights reserved.</body></html> |