data tables are going to need some work yet, but the other stuff seems to be working 100%
1607 lines
176 KiB
HTML
1607 lines
176 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: container Panel.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
|
|
<h3>Container <span class="subtitle">2.6.0</span></h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_container.html">container</a>
|
|
|
|
> Panel.js (source view)
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form name="yui-classopts-form">
|
|
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 #classopts { display:none; }
|
|
</style>
|
|
<div class="highlight" ><pre><span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Panel is an implementation of Overlay that behaves like an OS window, </span>
|
|
<span class="c"> * with a draggable header and an optional close icon at the top right.</span>
|
|
<span class="c"> * @namespace YAHOO.widget</span>
|
|
<span class="c"> * @class Panel</span>
|
|
<span class="c"> * @extends YAHOO.widget.Overlay</span>
|
|
<span class="c"> * @constructor</span>
|
|
<span class="c"> * @param {String} el The element ID representing the Panel <em>OR</em></span>
|
|
<span class="c"> * @param {HTMLElement} el The element representing the Panel</span>
|
|
<span class="c"> * @param {Object} userConfig The configuration object literal containing </span>
|
|
<span class="c"> * the configuration that should be set for this Panel. See configuration </span>
|
|
<span class="c"> * documentation for more details.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Panel</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">_currentModal</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">,</span>
|
|
<span class="nx">Util</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">,</span>
|
|
<span class="nx">Dom</span> <span class="o">=</span> <span class="nx">Util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
|
|
<span class="nx">Event</span> <span class="o">=</span> <span class="nx">Util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">CustomEvent</span> <span class="o">=</span> <span class="nx">Util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">,</span>
|
|
<span class="nx">KeyListener</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">KeyListener</span><span class="o">,</span>
|
|
<span class="nx">Config</span> <span class="o">=</span> <span class="nx">Util</span><span class="o">.</span><span class="nx">Config</span><span class="o">,</span>
|
|
<span class="nx">Overlay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">,</span>
|
|
<span class="nx">Panel</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Panel</span><span class="o">,</span>
|
|
<span class="nx">UA</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">,</span>
|
|
|
|
<span class="nx">bIEQuirks</span> <span class="o">=</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="m">6</span> <span class="o">||</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="m">7</span> <span class="o">&&</span> <span class="nb">document</span><span class="o">.</span><span class="nx">compatMode</span> <span class="o">==</span> <span class="s2">"BackCompat"</span><span class="o">)),</span>
|
|
|
|
<span class="nx">m_oMaskTemplate</span><span class="o">,</span>
|
|
<span class="nx">m_oUnderlayTemplate</span><span class="o">,</span>
|
|
<span class="nx">m_oCloseIconTemplate</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the name of the Panel's events</span>
|
|
<span class="c"> * @property EVENT_TYPES</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">EVENT_TYPES</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="s2">"SHOW_MASK"</span><span class="o">:</span> <span class="s2">"showMask"</span><span class="o">,</span>
|
|
<span class="s2">"HIDE_MASK"</span><span class="o">:</span> <span class="s2">"hideMask"</span><span class="o">,</span>
|
|
<span class="s2">"DRAG"</span><span class="o">:</span> <span class="s2">"drag"</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the Panel's configuration properties</span>
|
|
<span class="c"> * @property DEFAULT_CONFIG</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">DEFAULT_CONFIG</span> <span class="o">=</span> <span class="o">{</span>
|
|
|
|
<span class="s2">"CLOSE"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"close"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"DRAGGABLE"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"draggable"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">Util</span><span class="o">.</span><span class="nx">DD</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"DRAG_ONLY"</span> <span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"dragonly"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"draggable"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"UNDERLAY"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"underlay"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="s2">"shadow"</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"MODAL"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"modal"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">,</span> <span class="s2">"zindex"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"KEY_LISTENERS"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"keylisteners"</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"STRINGS"</span> <span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"strings"</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"close"</span><span class="o">],</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">close</span><span class="o">:</span> <span class="s2">"Close"</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the default CSS class used for a Panel</span>
|
|
<span class="c"> * @property YAHOO.widget.Panel.CSS_PANEL</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">CSS_PANEL</span> <span class="o">=</span> <span class="s2">"yui-panel"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the default CSS class used for a Panel's </span>
|
|
<span class="c"> * wrapping container</span>
|
|
<span class="c"> * @property YAHOO.widget.Panel.CSS_PANEL_CONTAINER</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">CSS_PANEL_CONTAINER</span> <span class="o">=</span> <span class="s2">"yui-panel-container"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the default set of focusable elements </span>
|
|
<span class="c"> * on the pagewhich Modal Panels will prevent access to, when</span>
|
|
<span class="c"> * the modal mask is displayed</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @property YAHOO.widget.Panel.FOCUSABLE</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">FOCUSABLE</span> <span class="o">=</span> <span class="o">[</span>
|
|
<span class="s2">"a"</span><span class="o">,</span>
|
|
<span class="s2">"button"</span><span class="o">,</span>
|
|
<span class="s2">"select"</span><span class="o">,</span>
|
|
<span class="s2">"textarea"</span><span class="o">,</span>
|
|
<span class="s2">"input"</span><span class="o">,</span>
|
|
<span class="s2">"iframe"</span>
|
|
<span class="o">];</span>
|
|
|
|
<span class="c">// Private CustomEvent listeners</span>
|
|
<span class="c"></span>
|
|
<span class="c">/* </span>
|
|
<span class="c"> "beforeRender" event handler that creates an empty header for a Panel </span>
|
|
<span class="c"> instance if its "draggable" configuration property is set to "true" </span>
|
|
<span class="c"> and no header has been created.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">function</span> <span class="nx">createHeader</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"draggable"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setHeader</span><span class="o">(</span><span class="s2">"&#160;"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">/* </span>
|
|
<span class="c"> "hide" event handler that sets a Panel instance's "width"</span>
|
|
<span class="c"> configuration property back to its original value before </span>
|
|
<span class="c"> "setWidthToOffsetWidth" was called.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">function</span> <span class="nx">restoreOriginalWidth</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">,</span> <span class="nx">p_oObject</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sOriginalWidth</span> <span class="o">=</span> <span class="nx">p_oObject</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">sNewWidth</span> <span class="o">=</span> <span class="nx">p_oObject</span><span class="o">[</span><span class="m">1</span><span class="o">],</span>
|
|
<span class="nx">oConfig</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">,</span>
|
|
<span class="nx">sCurrentWidth</span> <span class="o">=</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"width"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">sCurrentWidth</span> <span class="o">==</span> <span class="nx">sNewWidth</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"width"</span><span class="o">,</span> <span class="nx">sOriginalWidth</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"hide"</span><span class="o">,</span> <span class="nx">restoreOriginalWidth</span><span class="o">,</span> <span class="nx">p_oObject</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">/* </span>
|
|
<span class="c"> "beforeShow" event handler that sets a Panel instance's "width"</span>
|
|
<span class="c"> configuration property to the value of its root HTML </span>
|
|
<span class="c"> elements's offsetWidth</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">function</span> <span class="nx">setWidthToOffsetWidth</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nIE</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span><span class="o">,</span>
|
|
<span class="nx">oConfig</span><span class="o">,</span>
|
|
<span class="nx">sOriginalWidth</span><span class="o">,</span>
|
|
<span class="nx">sNewWidth</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nIE</span> <span class="o">==</span> <span class="m">6</span> <span class="o">||</span> <span class="o">(</span><span class="nx">nIE</span> <span class="o">==</span> <span class="m">7</span> <span class="o">&&</span> <span class="nb">document</span><span class="o">.</span><span class="nx">compatMode</span> <span class="o">==</span> <span class="s2">"BackCompat"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oConfig</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">;</span>
|
|
<span class="nx">sOriginalWidth</span> <span class="o">=</span> <span class="nx">oConfig</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"width"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">sOriginalWidth</span> <span class="o">||</span> <span class="nx">sOriginalWidth</span> <span class="o">==</span> <span class="s2">"auto"</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">sNewWidth</span> <span class="o">=</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
|
|
<span class="nx">oConfig</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"width"</span><span class="o">,</span> <span class="nx">sNewWidth</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"hide"</span><span class="o">,</span> <span class="nx">restoreOriginalWidth</span><span class="o">,</span>
|
|
<span class="o">[(</span><span class="nx">sOriginalWidth</span> <span class="o">||</span> <span class="s2">""</span><span class="o">),</span> <span class="nx">sNewWidth</span><span class="o">]);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">Panel</span><span class="o">,</span> <span class="nx">Overlay</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The Overlay initialization method, which is executed for Overlay and </span>
|
|
<span class="c"> * all of its subclasses. This method is automatically called by the </span>
|
|
<span class="c"> * constructor, and sets up all DOM references for pre-existing markup, </span>
|
|
<span class="c"> * and creates required markup if it is not already present.</span>
|
|
<span class="c"> * @method init</span>
|
|
<span class="c"> * @param {String} el The element ID representing the Overlay <em>OR</em></span>
|
|
<span class="c"> * @param {HTMLElement} el The element representing the Overlay</span>
|
|
<span class="c"> * @param {Object} userConfig The configuration object literal </span>
|
|
<span class="c"> * containing the configuration that should be set for this Overlay. </span>
|
|
<span class="c"> * See configuration documentation for more details.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">/*</span>
|
|
<span class="c"> Note that we don't pass the user config in here yet because </span>
|
|
<span class="c"> we only want it executed once, at the lowest subclass level</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">el</span><span class="c">/*, userConfig*/</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeInitEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">Panel</span><span class="o">);</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">Panel</span><span class="o">.</span><span class="nx">CSS_PANEL</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">buildWrapper</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">applyConfig</span><span class="o">(</span><span class="nx">userConfig</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"showMask"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_addFocusHandlers</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"hideMask"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_removeFocusHandlers</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"beforeRender"</span><span class="o">,</span> <span class="nx">createHeader</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"render"</span><span class="o">,</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setFirstLastFocusable</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"changeContent"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">setFirstLastFocusable</span><span class="o">);</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"show"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">focusFirst</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">initEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">Panel</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _onElementFocus</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * "focus" event handler for a focuable element. Used to automatically</span>
|
|
<span class="c"> * blur the element when it receives focus to ensure that a Panel</span>
|
|
<span class="c"> * instance's modality is not compromised.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {Event} e The DOM event object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_onElementFocus</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">){</span>
|
|
|
|
<span class="k">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">target</span> <span class="o">!==</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">target</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">_currentModal</span> <span class="o">==</span> <span class="k">this</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_modalFocus</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_modalFocus</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">err</span><span class="o">){</span>
|
|
<span class="c">// Just in case we fail to focus</span>
|
|
<span class="c"></span> <span class="k">try</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">target</span> <span class="o">!==</span> <span class="nb">document</span> <span class="o">&&</span> <span class="nx">target</span> <span class="o">!==</span> <span class="nb">document</span><span class="o">.</span><span class="nx">body</span> <span class="o">&&</span> <span class="nx">target</span> <span class="o">!==</span> <span class="nb">window</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">target</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">err2</span><span class="o">)</span> <span class="o">{</span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * @method _addFocusHandlers</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * "showMask" event handler that adds a "focus" event handler to all</span>
|
|
<span class="c"> * focusable elements in the document to enforce a Panel instance's </span>
|
|
<span class="c"> * modality from being compromised.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param p_sType {String} Custom event type</span>
|
|
<span class="c"> * @param p_aArgs {Array} Custom event arguments</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_addFocusHandlers</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">webkit</span> <span class="o">||</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">opera</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_modalFocus</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_createHiddenFocusElement</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">.</span><span class="nx">tabIndex</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setTabLoop</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">lastElement</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">onFocus</span><span class="o">(</span><span class="nb">document</span><span class="o">.</span><span class="nx">documentElement</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onElementFocus</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">_currentModal</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Creates a hidden focusable element, used to focus on,</span>
|
|
<span class="c"> * to enforce modality for browsers in which focus cannot</span>
|
|
<span class="c"> * be applied to the container box.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _createHiddenFocusElement</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_createHiddenFocusElement</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"button"</span><span class="o">);</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s2">"1px"</span><span class="o">;</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s2">"1px"</span><span class="o">;</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s2">"absolute"</span><span class="o">;</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s2">"-10000em"</span><span class="o">;</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">opacity</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="nx">e</span><span class="o">.</span><span class="nx">tabIndex</span> <span class="o">=</span> <span class="s2">"-1"</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_modalFocus</span> <span class="o">=</span> <span class="nx">e</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @method _removeFocusHandlers</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * "hideMask" event handler that removes all "focus" event handlers added </span>
|
|
<span class="c"> * by the "addFocusEventHandlers" method.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param p_sType {String} Event type</span>
|
|
<span class="c"> * @param p_aArgs {Array} Event Arguments</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_removeFocusHandlers</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">p_sType</span><span class="o">,</span> <span class="nx">p_aArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">removeFocusListener</span><span class="o">(</span><span class="nb">document</span><span class="o">.</span><span class="nx">documentElement</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_onElementFocus</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">_currentModal</span> <span class="o">==</span> <span class="k">this</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">_currentModal</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets focus to the first element in the Panel.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method focusFirst</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">focusFirst</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">args</span> <span class="o">&&</span> <span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">stopEvent</span><span class="o">(</span><span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">]);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="nx">el</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">err</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets focus to the last element in the Panel.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method focusLast</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">focusLast</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">lastElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">args</span> <span class="o">&&</span> <span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">stopEvent</span><span class="o">(</span><span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">]);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="nx">el</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">err</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets up a tab, shift-tab loop between the first and last elements</span>
|
|
<span class="c"> * provided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener</span>
|
|
<span class="c"> * instance properties, which are reset everytime this method is invoked.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method setTabLoop</span>
|
|
<span class="c"> * @param {HTMLElement} firstElement</span>
|
|
<span class="c"> * @param {HTMLElement} lastElement</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setTabLoop</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">firstElement</span><span class="o">,</span> <span class="nx">lastElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">backTab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventBackTab</span><span class="o">,</span> <span class="nx">tab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventTabOut</span><span class="o">,</span>
|
|
<span class="nx">showEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">,</span> <span class="nx">hideEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">backTab</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">backTab</span><span class="o">.</span><span class="nx">disable</span><span class="o">();</span>
|
|
<span class="nx">showEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">backTab</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">backTab</span><span class="o">);</span>
|
|
<span class="nx">hideEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">backTab</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span> <span class="nx">backTab</span><span class="o">);</span>
|
|
<span class="nx">backTab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventBackTab</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">tab</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">tab</span><span class="o">.</span><span class="nx">disable</span><span class="o">();</span>
|
|
<span class="nx">showEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">tab</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">tab</span><span class="o">);</span>
|
|
<span class="nx">hideEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">tab</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span><span class="nx">tab</span><span class="o">);</span>
|
|
<span class="nx">tab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventTabOut</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">firstElement</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">preventBackTab</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">KeyListener</span><span class="o">(</span><span class="nx">firstElement</span><span class="o">,</span>
|
|
<span class="o">{</span><span class="nx">shift</span><span class="o">:</span><span class="kc">true</span><span class="o">,</span> <span class="nx">keys</span><span class="o">:</span><span class="m">9</span><span class="o">},</span>
|
|
<span class="o">{</span><span class="nx">fn</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">focusLast</span><span class="o">,</span> <span class="nx">scope</span><span class="o">:</span><span class="k">this</span><span class="o">,</span> <span class="nx">correctScope</span><span class="o">:</span><span class="kc">true</span><span class="o">}</span>
|
|
<span class="o">);</span>
|
|
<span class="nx">backTab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventBackTab</span><span class="o">;</span>
|
|
|
|
<span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">backTab</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">backTab</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">backTab</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span><span class="nx">backTab</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">lastElement</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">preventTabOut</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">KeyListener</span><span class="o">(</span><span class="nx">lastElement</span><span class="o">,</span>
|
|
<span class="o">{</span><span class="nx">shift</span><span class="o">:</span><span class="kc">false</span><span class="o">,</span> <span class="nx">keys</span><span class="o">:</span><span class="m">9</span><span class="o">},</span>
|
|
<span class="o">{</span><span class="nx">fn</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">focusFirst</span><span class="o">,</span> <span class="nx">scope</span><span class="o">:</span><span class="k">this</span><span class="o">,</span> <span class="nx">correctScope</span><span class="o">:</span><span class="kc">true</span><span class="o">}</span>
|
|
<span class="o">);</span>
|
|
<span class="nx">tab</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">preventTabOut</span><span class="o">;</span>
|
|
|
|
<span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">tab</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">tab</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">tab</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span><span class="nx">tab</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns an array of the currently focusable items which reside within</span>
|
|
<span class="c"> * Panel. The set of focusable elements the method looks for are defined</span>
|
|
<span class="c"> * in the Panel.FOCUSABLE static property</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method getFocusableElements</span>
|
|
<span class="c"> * @param {HTMLElement} root element to start from.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getFocusableElements</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">root</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">root</span> <span class="o">=</span> <span class="nx">root</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">focusable</span> <span class="o">=</span> <span class="o">{};</span>
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">Panel</span><span class="o">.</span><span class="nx">FOCUSABLE</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">focusable</span><span class="o">[</span><span class="nx">Panel</span><span class="o">.</span><span class="nx">FOCUSABLE</span><span class="o">[</span><span class="nx">i</span><span class="o">]]</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">isFocusable</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">focus</span> <span class="o">&&</span> <span class="nx">el</span><span class="o">.</span><span class="nx">type</span> <span class="o">!==</span> <span class="s2">"hidden"</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">el</span><span class="o">.</span><span class="nx">disabled</span> <span class="o">&&</span> <span class="nx">focusable</span><span class="o">[</span><span class="nx">el</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">()])</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">// Not looking by Tag, since we want elements in DOM order</span>
|
|
<span class="c"></span> <span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsBy</span><span class="o">(</span><span class="nx">isFocusable</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="nx">root</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the firstElement and lastElement instance properties</span>
|
|
<span class="c"> * to the first and last focusable elements in the Panel.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method setFirstLastFocusable</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setFirstLastFocusable</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastElement</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">elements</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getFocusableElements</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">focusableElements</span> <span class="o">=</span> <span class="nx">elements</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">elements</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span> <span class="o">=</span> <span class="nx">elements</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastElement</span> <span class="o">=</span> <span class="nx">elements</span><span class="o">[</span><span class="nx">elements</span><span class="o">.</span><span class="nx">length</span> <span class="o">-</span> <span class="m">1</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"modal"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setTabLoop</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstElement</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">lastElement</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Initializes the custom events for Module which are fired </span>
|
|
<span class="c"> * automatically at appropriate times by the Module class.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initEvents</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initEvents</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">SIGNATURE</span> <span class="o">=</span> <span class="nx">CustomEvent</span><span class="o">.</span><span class="nx">LIST</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CustomEvent fired after the modality mask is shown</span>
|
|
<span class="c"> * @event showMaskEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMaskEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">EVENT_TYPES</span><span class="o">.</span><span class="nx">SHOW_MASK</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMaskEvent</span><span class="o">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CustomEvent fired after the modality mask is hidden</span>
|
|
<span class="c"> * @event hideMaskEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMaskEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">EVENT_TYPES</span><span class="o">.</span><span class="nx">HIDE_MASK</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMaskEvent</span><span class="o">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CustomEvent when the Panel is dragged</span>
|
|
<span class="c"> * @event dragEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dragEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">EVENT_TYPES</span><span class="o">.</span><span class="nx">DRAG</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dragEvent</span><span class="o">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Initializes the class's configurable properties which can be changed </span>
|
|
<span class="c"> * using the Panel's Config object (cfg).</span>
|
|
<span class="c"> * @method initDefaultConfig</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initDefaultConfig</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initDefaultConfig</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="c">// Add panel config properties //</span>
|
|
<span class="c"></span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * True if the Panel should display a "close" button</span>
|
|
<span class="c"> * @config close</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default true</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configClose</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Boolean specifying if the Panel should be draggable. The default </span>
|
|
<span class="c"> * value is "true" if the Drag and Drop utility is included, </span>
|
|
<span class="c"> * otherwise it is "false." <strong>PLEASE NOTE:</strong> There is a </span>
|
|
<span class="c"> * known issue in IE 6 (Strict Mode and Quirks Mode) and IE 7 </span>
|
|
<span class="c"> * (Quirks Mode) where Panels that either don't have a value set for </span>
|
|
<span class="c"> * their "width" configuration property, or their "width" </span>
|
|
<span class="c"> * configuration property is set to "auto" will only be draggable by</span>
|
|
<span class="c"> * placing the mouse on the text of the Panel's header element.</span>
|
|
<span class="c"> * To fix this bug, draggable Panels missing a value for their </span>
|
|
<span class="c"> * "width" configuration property, or whose "width" configuration </span>
|
|
<span class="c"> * property is set to "auto" will have it set to the value of </span>
|
|
<span class="c"> * their root HTML element's offsetWidth before they are made </span>
|
|
<span class="c"> * visible. The calculated width is then removed when the Panel is </span>
|
|
<span class="c"> * hidden. <em>This fix is only applied to draggable Panels in IE 6 </span>
|
|
<span class="c"> * (Strict Mode and Quirks Mode) and IE 7 (Quirks Mode)</em>. For </span>
|
|
<span class="c"> * more information on this issue see:</span>
|
|
<span class="c"> * SourceForge bugs #1726972 and #1589210.</span>
|
|
<span class="c"> * @config draggable</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default true</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAGGABLE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configDraggable</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">Util</span><span class="o">.</span><span class="nx">DD</span><span class="o">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAGGABLE</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAGGABLE</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Boolean specifying if the draggable Panel should be drag only, not interacting with drop </span>
|
|
<span class="c"> * targets on the page.</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * When set to true, draggable Panels will not check to see if they are over drop targets,</span>
|
|
<span class="c"> * or fire the DragDrop events required to support drop target interaction (onDragEnter, </span>
|
|
<span class="c"> * onDragOver, onDragOut, onDragDrop etc.).</span>
|
|
<span class="c"> * If the Panel is not designed to be dropped on any target elements on the page, then this </span>
|
|
<span class="c"> * flag can be set to true to improve performance.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * When set to false, all drop target related events will be fired.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The property is set to false by default to maintain backwards compatibility but should be </span>
|
|
<span class="c"> * set to true if drop target interaction is not required for the Panel, to improve performance.</p></span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @config dragOnly</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAG_ONLY</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAG_ONLY</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAG_ONLY</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">DRAG_ONLY</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the type of underlay to display for the Panel. Valid values </span>
|
|
<span class="c"> * are "shadow," "matte," and "none". <strong>PLEASE NOTE:</strong> </span>
|
|
<span class="c"> * The creation of the underlay element is deferred until the Panel </span>
|
|
<span class="c"> * is initially made visible. For Gecko-based browsers on Mac</span>
|
|
<span class="c"> * OS X the underlay elment is always created as it is used as a </span>
|
|
<span class="c"> * shim to prevent Aqua scrollbars below a Panel instance from poking </span>
|
|
<span class="c"> * through it (See SourceForge bug #836476).</span>
|
|
<span class="c"> * @config underlay</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @default shadow</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">UNDERLAY</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configUnderlay</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">UNDERLAY</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">UNDERLAY</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * True if the Panel should be displayed in a modal fashion, </span>
|
|
<span class="c"> * automatically creating a transparent mask over the document that</span>
|
|
<span class="c"> * will not be removed until the Panel is dismissed.</span>
|
|
<span class="c"> * @config modal</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MODAL</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configModal</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MODAL</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MODAL</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MODAL</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * A KeyListener (or array of KeyListeners) that will be enabled </span>
|
|
<span class="c"> * when the Panel is shown, and disabled when the Panel is hidden.</span>
|
|
<span class="c"> * @config keylisteners</span>
|
|
<span class="c"> * @type YAHOO.util.KeyListener[]</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">KEY_LISTENERS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configKeyListeners</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">KEY_LISTENERS</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">KEY_LISTENERS</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * UI Strings used by the Panel</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @config strings</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> * @default An object literal with the properties shown below:</span>
|
|
<span class="c"> * <dl></span>
|
|
<span class="c"> * <dt>close</dt><dd><em>String</em> : The string to use for the close icon. Defaults to "Close".</dd></span>
|
|
<span class="c"> * </dl></span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">value</span><span class="o">:</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configStrings</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //</span>
|
|
<span class="c"></span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "close" property is changed.</span>
|
|
<span class="c"> * The method controls the appending or hiding of the close icon at the </span>
|
|
<span class="c"> * top right of the Panel.</span>
|
|
<span class="c"> * @method configClose</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configClose</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">oClose</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">close</span><span class="o">,</span>
|
|
<span class="nx">strings</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"strings"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oClose</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">m_oCloseIconTemplate</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oCloseIconTemplate</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"a"</span><span class="o">);</span>
|
|
<span class="nx">m_oCloseIconTemplate</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s2">"container-close"</span><span class="o">;</span>
|
|
<span class="nx">m_oCloseIconTemplate</span><span class="o">.</span><span class="nx">href</span> <span class="o">=</span> <span class="s2">"#"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oClose</span> <span class="o">=</span> <span class="nx">m_oCloseIconTemplate</span><span class="o">.</span><span class="nx">cloneNode</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oClose</span><span class="o">);</span>
|
|
|
|
<span class="nx">oClose</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="o">(</span><span class="nx">strings</span> <span class="o">&&</span> <span class="nx">strings</span><span class="o">.</span><span class="nx">close</span><span class="o">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="o">.</span><span class="nx">close</span> <span class="o">:</span> <span class="s2">"&#160;"</span><span class="o">;</span>
|
|
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">oClose</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_doClose</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">close</span> <span class="o">=</span> <span class="nx">oClose</span><span class="o">;</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">oClose</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"block"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oClose</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oClose</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Event handler for the close icon</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _doClose</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @param {DOMEvent} e</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_doClose</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "draggable" property </span>
|
|
<span class="c"> * is changed.</span>
|
|
<span class="c"> * @method configDraggable</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configDraggable</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Util</span><span class="o">.</span><span class="nx">DD</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"DD dependency not met."</span><span class="o">,</span> <span class="s2">"error"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"draggable"</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
<span class="k">return</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">,</span> <span class="s2">"cursor"</span><span class="o">,</span> <span class="s2">"move"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">registerDragDrop</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="nx">setWidthToOffsetWidth</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">unreg</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">,</span><span class="s2">"cursor"</span><span class="o">,</span><span class="s2">"auto"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="nx">setWidthToOffsetWidth</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "underlay" property </span>
|
|
<span class="c"> * is changed.</span>
|
|
<span class="c"> * @method configUnderlay</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configUnderlay</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bMacGecko</span> <span class="o">=</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">"mac"</span> <span class="o">&&</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">gecko</span><span class="o">),</span>
|
|
<span class="nx">sUnderlay</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">].</span><span class="nx">toLowerCase</span><span class="o">(),</span>
|
|
<span class="nx">oUnderlay</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">underlay</span><span class="o">,</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="k">function</span> <span class="nx">fixWebkitUnderlay</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="c">// Webkit 419.3 (Safari 2.x) does not update</span>
|
|
<span class="c"></span> <span class="c">// it's Render Tree for the Container when content changes. </span>
|
|
<span class="c"></span> <span class="c">// We need to force it to update using this contentChange </span>
|
|
<span class="c"></span> <span class="c">// listener</span>
|
|
<span class="c"></span>
|
|
<span class="c">// Webkit 523.6 doesn't have this problem and doesn't </span>
|
|
<span class="c"></span> <span class="c">// need the fix</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">u</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">underlay</span><span class="o">;</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">u</span><span class="o">,</span> <span class="s2">"yui-force-redraw"</span><span class="o">);</span>
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">u</span><span class="o">,</span> <span class="s2">"yui-force-redraw"</span><span class="o">);},</span> <span class="m">0</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">createUnderlay</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">bNew</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oUnderlay</span><span class="o">)</span> <span class="o">{</span> <span class="c">// create if not already in DOM</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">m_oUnderlayTemplate</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oUnderlayTemplate</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"div"</span><span class="o">);</span>
|
|
<span class="nx">m_oUnderlayTemplate</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s2">"underlay"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oUnderlay</span> <span class="o">=</span> <span class="nx">m_oUnderlayTemplate</span><span class="o">.</span><span class="nx">cloneNode</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">oUnderlay</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">underlay</span> <span class="o">=</span> <span class="nx">oUnderlay</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="s2">"width"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="s2">"height"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">webkit</span> <span class="o">&&</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">webkit</span> <span class="o"><</span> <span class="m">420</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">fixWebkitUnderlay</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">bNew</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">onBeforeShow</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">bNew</span> <span class="o">=</span> <span class="nx">createUnderlay</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bNew</span> <span class="o">&&</span> <span class="nx">bIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_underlayDeferred</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">onBeforeShow</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">destroyUnderlay</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_underlayDeferred</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">onBeforeShow</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_underlayDeferred</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oUnderlay</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">unsubscribeFromConfigEvent</span><span class="o">(</span><span class="s2">"width"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">unsubscribeFromConfigEvent</span><span class="o">(</span><span class="s2">"height"</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">fixWebkitUnderlay</span><span class="o">);</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">oUnderlay</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">underlay</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">sUnderlay</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">case</span> <span class="s2">"shadow"</span><span class="o">:</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"matte"</span><span class="o">);</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"shadow"</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">case</span> <span class="s2">"matte"</span><span class="o">:</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bMacGecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">destroyUnderlay</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"shadow"</span><span class="o">);</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"matte"</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">default</span><span class="o">:</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bMacGecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">destroyUnderlay</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"shadow"</span><span class="o">);</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="s2">"matte"</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">sUnderlay</span> <span class="o">==</span> <span class="s2">"shadow"</span><span class="o">)</span> <span class="o">||</span> <span class="o">(</span><span class="nx">bMacGecko</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">oUnderlay</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">bNew</span> <span class="o">=</span> <span class="nx">createUnderlay</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">bNew</span> <span class="o">&&</span> <span class="nx">bIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_underlayDeferred</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">onBeforeShow</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_underlayDeferred</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "modal" property is </span>
|
|
<span class="c"> * changed. This handler subscribes or unsubscribes to the show and hide</span>
|
|
<span class="c"> * events to handle the display or hide of the modality mask.</span>
|
|
<span class="c"> * @method configModal</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configModal</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">modal</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">modal</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasModalityEventListeners</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">buildMask</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">bringToTop</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">showMask</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="s2">"hide"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">hideMask</span><span class="o">);</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeMask</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasModalityEventListeners</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasModalityEventListeners</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMask</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeMask</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">buildMask</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">bringToTop</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"beforeShow"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">showMask</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"hide"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">hideMask</span><span class="o">);</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeMask</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasModalityEventListeners</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes the modality mask.</span>
|
|
<span class="c"> * @method removeMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeMask</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oMask</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">,</span>
|
|
<span class="nx">oParentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oMask</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">/*</span>
|
|
<span class="c"> Hide the mask before destroying it to ensure that DOM</span>
|
|
<span class="c"> event handlers on focusable elements get removed.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMask</span><span class="o">();</span>
|
|
|
|
<span class="nx">oParentNode</span> <span class="o">=</span> <span class="nx">oMask</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oParentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oParentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">oMask</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "keylisteners" property </span>
|
|
<span class="c"> * is changed.</span>
|
|
<span class="c"> * @method configKeyListeners</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration</span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configKeyListeners</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">listeners</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">listener</span><span class="o">,</span>
|
|
<span class="nx">nListeners</span><span class="o">,</span>
|
|
<span class="nx">i</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">listeners</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">listeners</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">nListeners</span> <span class="o">=</span> <span class="nx">listeners</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">nListeners</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">listener</span> <span class="o">=</span> <span class="nx">listeners</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">,</span>
|
|
<span class="nx">listener</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">listener</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listener</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span>
|
|
<span class="nx">listener</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">,</span>
|
|
<span class="nx">listener</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span> <span class="nx">listener</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listener</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span>
|
|
<span class="nx">listener</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">destroyEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listener</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span>
|
|
<span class="nx">listener</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">,</span>
|
|
<span class="nx">listeners</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span> <span class="nx">listeners</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listeners</span><span class="o">.</span><span class="nx">enable</span><span class="o">,</span>
|
|
<span class="nx">listeners</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">,</span>
|
|
<span class="nx">listeners</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span> <span class="nx">listeners</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listeners</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span>
|
|
<span class="nx">listeners</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">destroyEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">listeners</span><span class="o">.</span><span class="nx">disable</span><span class="o">,</span>
|
|
<span class="nx">listeners</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default handler for the "strings" property</span>
|
|
<span class="c"> * @method configStrings</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configStrings</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">merge</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">]);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">STRINGS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">val</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "height" property is changed.</span>
|
|
<span class="c"> * @method configHeight</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configHeight</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"height"</span><span class="o">,</span> <span class="nx">height</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default custom event handler executed when the Panel's height is changed, </span>
|
|
<span class="c"> * if the autofillheight property has been set.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _autoFillOnHeightChange</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} type The event type</span>
|
|
<span class="c"> * @param {Array} args The array of arguments passed to event subscribers</span>
|
|
<span class="c"> * @param {HTMLElement} el The header, body or footer element which is to be resized to fill</span>
|
|
<span class="c"> * out the containers height</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_autoFillOnHeightChange</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">sizeUnderlay</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "width" property is changed.</span>
|
|
<span class="c"> * @method configWidth</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configWidth</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"width"</span><span class="o">,</span> <span class="nx">width</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "zIndex" property is changed.</span>
|
|
<span class="c"> * @method configzIndex</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configzIndex</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">configzIndex</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"modal"</span><span class="o">)</span> <span class="o">===</span> <span class="kc">true</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">panelZ</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">panelZ</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="o">(</span><span class="nx">panelZ</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">panelZ</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">panelZ</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Recursive call to configzindex (which should be stopped</span>
|
|
<span class="c"></span> <span class="c">// from going further because panelZ should no longer === 0)</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"zIndex"</span><span class="o">,</span> <span class="m">1</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">stackMask</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">// END BUILT-IN PROPERTY EVENT HANDLERS //</span>
|
|
<span class="c"></span> <span class="c">/**</span>
|
|
<span class="c"> * Builds the wrapping container around the Panel that is used for </span>
|
|
<span class="c"> * positioning the shadow and matte underlays. The container element is </span>
|
|
<span class="c"> * assigned to a local instance variable called container, and the </span>
|
|
<span class="c"> * element is reinserted inside of it.</span>
|
|
<span class="c"> * @method buildWrapper</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">buildWrapper</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">elementParent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">,</span>
|
|
<span class="nx">originalElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">wrapper</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"div"</span><span class="o">);</span>
|
|
|
|
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">Panel</span><span class="o">.</span><span class="nx">CSS_PANEL_CONTAINER</span><span class="o">;</span>
|
|
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">originalElement</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">"_c"</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">elementParent</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">elementParent</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">wrapper</span><span class="o">,</span> <span class="nx">originalElement</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">originalElement</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">element</span> <span class="o">=</span> <span class="nx">wrapper</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span> <span class="o">=</span> <span class="nx">originalElement</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">,</span> <span class="s2">"inherit"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Adjusts the size of the shadow based on the size of the element.</span>
|
|
<span class="c"> * @method sizeUnderlay</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">sizeUnderlay</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">oUnderlay</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">underlay</span><span class="o">,</span>
|
|
<span class="nx">oElement</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oUnderlay</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
<span class="nx">oUnderlay</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">oElement</span><span class="o">.</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="nx">oUnderlay</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">oElement</span><span class="o">.</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Registers the Panel's header for drag & drop capability.</span>
|
|
<span class="c"> * @method registerDragDrop</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">registerDragDrop</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Util</span><span class="o">.</span><span class="nx">DD</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">"DD dependency not met."</span><span class="o">,</span> <span class="s2">"error"</span><span class="o">);</span>
|
|
<span class="k">return</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bDragOnly</span> <span class="o">=</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"dragonly"</span><span class="o">)</span> <span class="o">===</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Util</span><span class="o">.</span><span class="nx">DD</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">id</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">,</span> <span class="o">{</span><span class="nx">dragOnly</span><span class="o">:</span> <span class="nx">bDragOnly</span><span class="o">});</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">"_h"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">startDrag</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">offsetHeight</span><span class="o">,</span>
|
|
<span class="nx">offsetWidth</span><span class="o">,</span>
|
|
<span class="nx">viewPortWidth</span><span class="o">,</span>
|
|
<span class="nx">viewPortHeight</span><span class="o">,</span>
|
|
<span class="nx">scrollX</span><span class="o">,</span>
|
|
<span class="nx">scrollY</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="m">6</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">me</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span><span class="s2">"drag"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">me</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"constraintoviewport"</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="o">;</span>
|
|
|
|
<span class="nx">offsetHeight</span> <span class="o">=</span> <span class="nx">me</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">;</span>
|
|
<span class="nx">offsetWidth</span> <span class="o">=</span> <span class="nx">me</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">;</span>
|
|
|
|
<span class="nx">viewPortWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportWidth</span><span class="o">();</span>
|
|
<span class="nx">viewPortHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportHeight</span><span class="o">();</span>
|
|
|
|
<span class="nx">scrollX</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollLeft</span><span class="o">();</span>
|
|
<span class="nx">scrollY</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollTop</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o"><</span> <span class="nx">viewPortHeight</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">minY</span> <span class="o">=</span> <span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maxY</span> <span class="o">=</span> <span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">viewPortHeight</span> <span class="o">-</span> <span class="nx">offsetHeight</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">minY</span> <span class="o">=</span> <span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maxY</span> <span class="o">=</span> <span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o"><</span> <span class="nx">viewPortWidth</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">minX</span> <span class="o">=</span> <span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maxX</span> <span class="o">=</span> <span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">viewPortWidth</span> <span class="o">-</span> <span class="nx">offsetWidth</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">minX</span> <span class="o">=</span> <span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maxX</span> <span class="o">=</span> <span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">constrainX</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">constrainY</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">constrainX</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">constrainY</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">dragEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="s2">"startDrag"</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">onDrag</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">syncPosition</span><span class="o">();</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">"mac"</span> <span class="o">&&</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">gecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMacGeckoScrollbars</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">dragEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="s2">"onDrag"</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">endDrag</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="m">6</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">me</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span><span class="s2">"drag"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">dragEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="s2">"endDrag"</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">moveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">me</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">));</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">setHandleElId</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">.</span><span class="nx">id</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">addInvalidHandleType</span><span class="o">(</span><span class="s2">"INPUT"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">addInvalidHandleType</span><span class="o">(</span><span class="s2">"SELECT"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">dd</span><span class="o">.</span><span class="nx">addInvalidHandleType</span><span class="o">(</span><span class="s2">"TEXTAREA"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Builds the mask that is laid over the document when the Panel is </span>
|
|
<span class="c"> * configured to be modal.</span>
|
|
<span class="c"> * @method buildMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">buildMask</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">oMask</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oMask</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">m_oMaskTemplate</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oMaskTemplate</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"div"</span><span class="o">);</span>
|
|
<span class="nx">m_oMaskTemplate</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s2">"mask"</span><span class="o">;</span>
|
|
<span class="nx">m_oMaskTemplate</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">"&#160;"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">oMask</span> <span class="o">=</span> <span class="nx">m_oMaskTemplate</span><span class="o">.</span><span class="nx">cloneNode</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">oMask</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">"_mask"</span><span class="o">;</span>
|
|
|
|
<span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">oMask</span><span class="o">,</span> <span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">.</span><span class="nx">firstChild</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span> <span class="o">=</span> <span class="nx">oMask</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">gecko</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">"mac"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">,</span> <span class="s2">"block-scrollbars"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">// Stack mask based on the element zindex</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">stackMask</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Hides the modality mask.</span>
|
|
<span class="c"> * @method hideMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hideMask</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"modal"</span><span class="o">)</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">,</span> <span class="s2">"masked"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMaskEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Shows the modality mask.</span>
|
|
<span class="c"> * @method showMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">showMask</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"modal"</span><span class="o">)</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">,</span> <span class="s2">"masked"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">sizeMask</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"block"</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMaskEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the size of the modality mask to cover the entire scrollable </span>
|
|
<span class="c"> * area of the document</span>
|
|
<span class="c"> * @method sizeMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">sizeMask</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">// Shrink mask first, so it doesn't affect the document size.</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">mask</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">,</span>
|
|
<span class="nx">viewWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportWidth</span><span class="o">(),</span>
|
|
<span class="nx">viewHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportHeight</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">offsetHeight</span> <span class="o">></span> <span class="nx">viewHeight</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">viewHeight</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">offsetWidth</span> <span class="o">></span> <span class="nx">viewWidth</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">viewWidth</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">// Then size it to the document</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentHeight</span><span class="o">()</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentWidth</span><span class="o">()</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the zindex of the mask, if it exists, based on the zindex of </span>
|
|
<span class="c"> * the Panel element. The zindex of the mask is set to be one less </span>
|
|
<span class="c"> * than the Panel element's zindex.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * <p>NOTE: This method will not bump up the zindex of the Panel</span>
|
|
<span class="c"> * to ensure that the mask has a non-negative zindex. If you require the</span>
|
|
<span class="c"> * mask zindex to be 0 or higher, the zindex of the Panel </span>
|
|
<span class="c"> * should be set to a value higher than 0, before this method is called.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @method stackMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">stackMask</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">panelZ</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">panelZ</span><span class="o">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nb">isNaN</span><span class="o">(</span><span class="nx">panelZ</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">mask</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">,</span> <span class="nx">panelZ</span> <span class="o">-</span> <span class="m">1</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the Panel by inserting the elements that are not already in </span>
|
|
<span class="c"> * the main Panel into their correct places. Optionally appends the </span>
|
|
<span class="c"> * Panel to the specified node prior to the render's execution. NOTE: </span>
|
|
<span class="c"> * For Panels without existing markup, the appendToNode argument is </span>
|
|
<span class="c"> * REQUIRED. If this argument is ommitted and the current element is </span>
|
|
<span class="c"> * not present in the document, the function will return false, </span>
|
|
<span class="c"> * indicating that the render was a failure.</span>
|
|
<span class="c"> * @method render</span>
|
|
<span class="c"> * @param {String} appendToNode The element id to which the Module </span>
|
|
<span class="c"> * should be appended to prior to rendering <em>OR</em></span>
|
|
<span class="c"> * @param {HTMLElement} appendToNode The element to which the Module </span>
|
|
<span class="c"> * should be appended to prior to rendering</span>
|
|
<span class="c"> * @return {boolean} Success or failure of the render</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">render</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">appendToNode</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">render</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">appendToNode</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes the Panel element from the DOM and sets all child elements</span>
|
|
<span class="c"> * to null.</span>
|
|
<span class="c"> * @method destroy</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">destroy</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">sizeMask</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">removeMask</span><span class="o">();</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">close</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">close</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">Panel</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">destroy</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns a String representation of the object.</span>
|
|
<span class="c"> * @method toString</span>
|
|
<span class="c"> * @return {String} The string representation of the Panel.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">toString</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="s2">"Panel "</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">}());</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
|
|
<li class=""><a href="module_animation.html">animation</a></li>
|
|
|
|
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
|
|
|
|
<li class=""><a href="module_button.html">button</a></li>
|
|
|
|
<li class=""><a href="module_calendar.html">calendar</a></li>
|
|
|
|
<li class=""><a href="module_carousel.html">carousel</a></li>
|
|
|
|
<li class=""><a href="module_charts.html">charts</a></li>
|
|
|
|
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
|
|
|
|
<li class=""><a href="module_connection.html">connection</a></li>
|
|
|
|
<li class="selected"><a href="module_container.html">container</a></li>
|
|
|
|
<li class=""><a href="module_cookie.html">cookie</a></li>
|
|
|
|
<li class=""><a href="module_datasource.html">datasource</a></li>
|
|
|
|
<li class=""><a href="module_datatable.html">datatable</a></li>
|
|
|
|
<li class=""><a href="module_dom.html">dom</a></li>
|
|
|
|
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
|
|
|
|
<li class=""><a href="module_editor.html">editor</a></li>
|
|
|
|
<li class=""><a href="module_element.html">element</a></li>
|
|
|
|
<li class=""><a href="module_event.html">event</a></li>
|
|
|
|
<li class=""><a href="module_get.html">get</a></li>
|
|
|
|
<li class=""><a href="module_history.html">history</a></li>
|
|
|
|
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
|
|
|
|
<li class=""><a href="module_imageloader.html">imageloader</a></li>
|
|
|
|
<li class=""><a href="module_json.html">json</a></li>
|
|
|
|
<li class=""><a href="module_layout.html">layout</a></li>
|
|
|
|
<li class=""><a href="module_logger.html">logger</a></li>
|
|
|
|
<li class=""><a href="module_menu.html">menu</a></li>
|
|
|
|
<li class=""><a href="module_paginator.html">paginator</a></li>
|
|
|
|
<li class=""><a href="module_profiler.html">profiler</a></li>
|
|
|
|
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
|
|
|
|
<li class=""><a href="module_resize.html">resize</a></li>
|
|
|
|
<li class=""><a href="module_selector.html">selector</a></li>
|
|
|
|
<li class=""><a href="module_slider.html">slider</a></li>
|
|
|
|
<li class=""><a href="module_tabview.html">tabview</a></li>
|
|
|
|
<li class=""><a href="module_treeview.html">treeview</a></li>
|
|
|
|
<li class=""><a href="module_uploader.html">uploader</a></li>
|
|
|
|
<li class=""><a href="module_yahoo.html">yahoo</a></li>
|
|
|
|
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
|
|
|
|
<li class=""><a href="module_yuitest.html">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.util.Config.html">YAHOO.util.Config</a></li>
|
|
<li class=""><a href="YAHOO.widget.ContainerEffect.html">YAHOO.widget.ContainerEffect</a></li>
|
|
<li class=""><a href="YAHOO.widget.Dialog.html">YAHOO.widget.Dialog</a></li>
|
|
<li class=""><a href="YAHOO.widget.Module.html">YAHOO.widget.Module</a></li>
|
|
<li class=""><a href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a></li>
|
|
<li class=""><a href="YAHOO.widget.OverlayManager.html">YAHOO.widget.OverlayManager</a></li>
|
|
<li class=""><a href="YAHOO.widget.Panel.html">YAHOO.widget.Panel</a></li>
|
|
<li class=""><a href="YAHOO.widget.SimpleDialog.html">YAHOO.widget.SimpleDialog</a></li>
|
|
<li class=""><a href="YAHOO.widget.Tooltip.html">YAHOO.widget.Tooltip</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="Config.js.html">Config.js</a></li>
|
|
<li class=""><a href="ContainerEffect.js.html">ContainerEffect.js</a></li>
|
|
<li class=""><a href="Dialog.js.html">Dialog.js</a></li>
|
|
<li class=""><a href="Module.js.html">Module.js</a></li>
|
|
<li class=""><a href="Overlay.js.html">Overlay.js</a></li>
|
|
<li class=""><a href="OverlayManager.js.html">OverlayManager.js</a></li>
|
|
<li class="selected"><a href="Panel.js.html">Panel.js</a></li>
|
|
<li class=""><a href="SimpleDialog.js.html">SimpleDialog.js</a></li>
|
|
<li class=""><a href="Tooltip.js.html">Tooltip.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2008 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|