<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API: editor-plugin GroupFormContainer.js (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
<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">
<h1><a href="http://neyric.github.com/wireit" title="WireItLibrary">WireItLibrary</a></h1>
<h3>editor-plugin <span class="subtitle">0.6.0</span></h3>
<a href="./index.html" title="WireItLibrary">WireItLibrary</a>
> <a href="./module_editor-plugin.html" title="editor-plugin">editor-plugin</a>
> GroupFormContainer.js (source view)
<form onsubmit="return false">
<div id="propertysearch">
Search: <input autocomplete="off" id="searchinput" />
<div id="searchresults">
</div>
</div>
</form>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
<fieldset>
<legend>Filters</legend>
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
</fieldset>
</form>
<div id="srcout">
<style>
#doc3 .classopts { display:none; }
</style>
<div class="highlight"><pre><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">util</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="o">,</span><span class="nx">lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">util</span><span class="p">.</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="p">.</span><span class="nx">Event</span><span class="o">,</span> <span class="nx">CSS_PREFIX</span> <span class="o">=</span> <span class="s2">"WireIt-"</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * Class used to build a container with inputEx forms</span>
<span class="c"> * @class FormContainer</span>
<span class="c"> * @namespace WireIt</span>
<span class="c"> * @extends WireIt.Container</span>
<span class="c"> * @constructor</span>
<span class="c"> * @param {Object} options Configuration object (see properties)</span>
<span class="c"> * @param {WireIt.Layer} layer The WireIt.Layer (or subclass) instance that contains this container</span>
<span class="c"> */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="o">,</span> <span class="nx">layer</span><span class="p">)</span> <span class="p">{</span>
<span class="c">/*var fieldConfigs = WireIt.GroupUtils.fieldConfigsFromModules(options.groupConfig.modules, options.getBaseConfigFunction);</span>
<span class="c"> </span>
<span class="c"> var intermediate = WireIt.GroupUtils.generateFields(fieldConfigs, {fields: {}, terminals: {}}, {fields: {"0email" : true}, terminals: {}}); //TODO: wrong arguments</span>
<span class="c"> options.fields = intermediate.fields;</span>
<span class="c"> var terminalConfigs = WireIt.GroupUtils.terminalConfigsFromModules(options.groupConfig.modules, options.getBaseConfigFunction);</span>
<span class="c"> </span>
<span class="c"> options.terminals = WireIt.GroupUtils.generateTerminals(terminalConfigs , {fields: {}, terminals: {}}, {fields: {}, terminals: {}}, intermediate.usedTerminalNames);</span>
<span class="c"> */</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">options</span><span class="o">,</span> <span class="nx">layer</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">getBaseConfig</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">getBaseConfigFunction</span><span class="o">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">positionTerminals</span><span class="p">();</span>
<span class="p">};</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span><span class="o">,</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">FormContainer</span><span class="o">,</span> <span class="p">{</span>
<span class="c">/**</span>
<span class="c"> * @method setOptions</span>
<span class="c"> */</span>
<span class="nx">setOptions</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">setOptions</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">options</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">getBaseConfigFunction</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">getBaseConfigFunction</span>
<span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="o">;</span>
<span class="p">}</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The render method is overrided to call renderForm</span>
<span class="c"> * @method render</span>
<span class="c"> */</span>
<span class="nx">render</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">render</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderExpand</span><span class="p">();</span>
<span class="p">}</span><span class="o">,</span>
<span class="nx">positionTerminals</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">terminals</span> <span class="o">=</span> <span class="p">{};</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">terminals</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">elem</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">terminals</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">side</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">side</span><span class="o">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isValue</span><span class="p">(</span><span class="nx">side</span><span class="p">))</span>
<span class="nx">side</span> <span class="o">=</span> <span class="s2">"top"</span><span class="o">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">terminals</span><span class="p">[</span><span class="nx">side</span><span class="p">]))</span>
<span class="nx">terminals</span><span class="p">[</span><span class="nx">side</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span>
<span class="nx">terminals</span><span class="p">[</span><span class="nx">side</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">elem</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">terminal_width</span> <span class="o">=</span> <span class="mi">30</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">getRange</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">N</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">terminal_width</span> <span class="o">*</span> <span class="p">(</span><span class="nx">N</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="p">};</span>
<span class="kd">var</span> <span class="nx">positionByNumber</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">n</span><span class="o">,</span><span class="nx">N</span><span class="o">,</span> <span class="nx">size</span><span class="p">)</span> <span class="p">{</span>
<span class="c">// n is expected to run from 0 to N-1, where N is the number of terminals on an edge</span>
<span class="kd">var</span> <span class="nx">range</span> <span class="o">=</span> <span class="nx">getRange</span><span class="p">(</span><span class="nx">N</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">half_range</span> <span class="o">=</span> <span class="nx">range</span> <span class="o">/</span> <span class="mi">2</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">size</span> <span class="o">/</span> <span class="mi">2</span><span class="o">;</span>
<span class="nx">pos</span> <span class="o">-=</span> <span class="nx">half_range</span> <span class="o">-</span> <span class="nx">n</span><span class="o">*</span><span class="nx">terminal_width</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">terminal_width</span> <span class="o">/</span> <span class="mi">2</span><span class="o">;</span>
<span class="k">return</span> <span class="nx">pos</span><span class="o">-</span><span class="nx">offset</span><span class="o">;</span> <span class="c">// position in centre of terminal</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">horizontalMax</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupUtils</span><span class="p">.</span><span class="nx">valueOr</span><span class="p">(</span><span class="nx">terminals</span><span class="p">[</span><span class="s2">"top"</span><span class="p">]</span><span class="o">,</span> <span class="p">[]).</span><span class="nx">length</span><span class="o">,</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupUtils</span><span class="p">.</span><span class="nx">valueOr</span><span class="p">(</span><span class="nx">terminals</span><span class="p">[</span><span class="s2">"bottom"</span><span class="p">]</span><span class="o">,</span> <span class="p">[]).</span><span class="nx">length</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">verticalMax</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupUtils</span><span class="p">.</span><span class="nx">valueOr</span><span class="p">(</span><span class="nx">terminals</span><span class="p">[</span><span class="s2">"left"</span><span class="p">]</span><span class="o">,</span> <span class="p">[]).</span><span class="nx">length</span><span class="o">,</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupUtils</span><span class="p">.</span><span class="nx">valueOr</span><span class="p">(</span><span class="nx">terminals</span><span class="p">[</span><span class="s2">"right"</span><span class="p">]</span><span class="o">,</span> <span class="p">[]).</span><span class="nx">length</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o"><</span> <span class="nx">getRange</span><span class="p">(</span><span class="nx">verticalMax</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">bodyEl</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">minHeight</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">String</span><span class="p">(</span><span class="nx">getRange</span><span class="p">(</span><span class="nx">verticalMax</span><span class="p">))</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
<span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="o">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">width</span> <span class="o"><</span> <span class="nx">getRange</span><span class="p">(</span><span class="nx">horizontalMax</span><span class="p">))</span>
<span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">bodyEl</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">String</span><span class="p">(</span><span class="nx">getRange</span><span class="p">(</span><span class="nx">horizontalMax</span><span class="p">))</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">;</span>
<span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="o">;</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">side</span> <span class="k">in</span> <span class="nx">terminals</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">sTerminals</span> <span class="o">=</span> <span class="nx">terminals</span><span class="p">[</span><span class="nx">side</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">count</span> <span class="o">=</span> <span class="nx">sTerminals</span><span class="p">.</span><span class="nx">length</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">variable</span><span class="o">,</span> <span class="nx">fixed</span><span class="o">,</span> <span class="nx">size</span><span class="o">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">side</span> <span class="o">==</span> <span class="s2">"left"</span> <span class="o">||</span> <span class="nx">side</span> <span class="o">==</span> <span class="s2">"right"</span><span class="p">)</span>
<span class="p">{</span>
<span class="nx">variable</span> <span class="o">=</span> <span class="s2">"top"</span><span class="o">;</span>
<span class="nx">size</span> <span class="o">=</span> <span class="nx">height</span><span class="o">;</span>
<span class="p">}</span> <span class="k">else</span>
<span class="p">{</span>
<span class="nx">variable</span> <span class="o">=</span> <span class="s2">"left"</span><span class="o">;</span>
<span class="nx">size</span> <span class="o">=</span> <span class="nx">width</span><span class="o">;</span>
<span class="p">}</span>
<span class="nx">fixed</span> <span class="o">=</span> <span class="nx">side</span><span class="o">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">count</span><span class="o">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">terminal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getTerminal</span><span class="p">(</span><span class="nx">sTerminals</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">name</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Object</span><span class="p">();</span>
<span class="nx">pos</span><span class="p">[</span><span class="nx">fixed</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">15</span><span class="o">;</span>
<span class="nx">pos</span><span class="p">[</span><span class="nx">variable</span><span class="p">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">String</span><span class="p">(</span><span class="nx">positionByNumber</span><span class="p">(</span><span class="nx">i</span><span class="o">,</span> <span class="nx">count</span><span class="o">,</span> <span class="nx">size</span><span class="p">));</span>
<span class="nx">terminal</span><span class="p">.</span><span class="nx">setPosition</span><span class="p">(</span><span class="nx">pos</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span><span class="o">,</span>
<span class="nx">renderExpand</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">unGroupButton</span> <span class="o">=</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">cn</span><span class="p">(</span><span class="s1">'div'</span><span class="o">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'WireIt-Container-ungroupbutton'</span><span class="p">}</span> <span class="p">);</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">unGroupButton</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">expand</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">ddHandle</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">unGroupButton</span><span class="p">)</span>
<span class="p">}</span><span class="o">,</span>
<span class="nx">expand</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span>
<span class="p">{</span>
<span class="c">//For each module add it to the layer</span>
<span class="c">//For each wire wire up the new containers</span>
<span class="c">//For each internal group add to layer groups, remap from serialised </span>
<span class="c">//For each wire on group container make wire to new containers</span>
<span class="c">//Remove group container</span>
<span class="c">//var expandedContainers = WireIt.GroupUtils.expand(this.options.groupConfig, this, this.layer);</span>
<span class="kd">var</span> <span class="nx">mapModuleId</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">moduleId</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">offset</span><span class="p">)</span><span class="o">+</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">moduleId</span><span class="p">);</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">containers</span><span class="p">.</span><span class="nx">length</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">thisConfig</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getConfig</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">position</span> <span class="o">=</span> <span class="p">[</span><span class="nx">thisConfig</span><span class="p">.</span><span class="nx">position</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">,</span> <span class="nx">thisConfig</span><span class="p">.</span><span class="nx">position</span><span class="p">[</span><span class="mi">1</span><span class="p">]];</span>
<span class="kd">var</span> <span class="nx">expandedContainers</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">mI</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">modules</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">modules</span><span class="p">[</span><span class="nx">mI</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">baseContainerConfig</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getBaseConfig</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">newConfig</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span> <span class="nx">m</span><span class="p">.</span><span class="nx">config</span> <span class="p">)</span> <span class="p">)</span> <span class="c">//TODO: nasty deep clone, probably breaks if you have DOM elements in your config or something</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">augmentObject</span><span class="p">(</span><span class="nx">newConfig</span> <span class="o">,</span> <span class="nx">baseContainerConfig</span><span class="p">);</span>
<span class="nx">newConfig</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">m</span><span class="p">.</span><span class="nx">name</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">newPos</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">translatePosition</span><span class="p">(</span><span class="nx">newConfig</span><span class="p">.</span><span class="nx">position</span><span class="o">,</span> <span class="nx">position</span><span class="p">);</span>
<span class="nx">newConfig</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="nx">newPos</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">container</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">addContainer</span><span class="p">(</span><span class="nx">newConfig</span><span class="p">);</span>
<span class="c">//Dom.addClass(container.el, "WiringEditor-module-"+m.name);</span>
<span class="nx">container</span><span class="p">.</span><span class="nx">setValue</span><span class="p">(</span><span class="nx">m</span><span class="p">.</span><span class="nx">value</span><span class="p">);</span>
<span class="nx">expandedContainers</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">container</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">deserialise</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sGroup</span><span class="o">,</span> <span class="nx">groupToSet</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">group</span> <span class="o">=</span> <span class="nx">groupToSet</span><span class="o">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isValue</span><span class="p">(</span><span class="nx">group</span><span class="p">))</span>
<span class="nx">group</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">Group</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">.</span><span class="nx">grouper</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">layer</span><span class="p">)</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">properties</span> <span class="o">=</span> <span class="nx">sGroup</span><span class="p">.</span><span class="nx">properties</span><span class="o">;</span> <span class="c">//TODO: copy rather than reference?</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isValue</span><span class="p">(</span><span class="nx">sGroup</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">))</span>
<span class="p">{</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">groupContainer</span> <span class="o">=</span> <span class="nx">expandedContainers</span><span class="p">[</span><span class="nx">sGroup</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">];</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">.</span><span class="nx">group</span> <span class="o">=</span> <span class="nx">group</span><span class="o">;</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">containers</span> <span class="o">=</span> <span class="p">[];</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">groups</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">cI</span> <span class="k">in</span> <span class="nx">sGroup</span><span class="p">.</span><span class="nx">containers</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">co</span> <span class="o">=</span> <span class="nx">sGroup</span><span class="p">.</span><span class="nx">containers</span><span class="p">[</span><span class="nx">cI</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nx">expandedContainers</span><span class="p">[</span><span class="nx">co</span><span class="p">.</span><span class="nx">container</span><span class="p">];</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">containers</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="s2">"container"</span> <span class="o">:</span> <span class="nx">c</span><span class="o">,</span> <span class="s2">"overrides"</span> <span class="o">:</span> <span class="nx">co</span><span class="p">.</span><span class="nx">overrides</span><span class="p">});</span>
<span class="nx">c</span><span class="p">.</span><span class="nx">group</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="o">;</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">gI</span> <span class="k">in</span> <span class="nx">sGroup</span><span class="p">.</span><span class="nx">groups</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">go</span> <span class="o">=</span> <span class="nx">sGroup</span><span class="p">.</span><span class="nx">groups</span><span class="p">[</span><span class="nx">gI</span><span class="p">]</span>
<span class="kd">var</span> <span class="nx">g</span> <span class="o">=</span> <span class="nx">deserialise</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">go</span><span class="p">.</span><span class="nx">group</span><span class="p">);</span>
<span class="nx">group</span><span class="p">.</span><span class="nx">groups</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="s2">"group"</span> <span class="o">:</span> <span class="nx">g</span><span class="o">,</span> <span class="s2">"overrides"</span> <span class="o">:</span> <span class="nx">go</span><span class="p">.</span><span class="nx">overrides</span><span class="p">});</span>
<span class="nx">g</span><span class="p">.</span><span class="nx">group</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="o">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">group</span><span class="o">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">group</span> <span class="o">=</span> <span class="nx">deserialise</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">group</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">);</span>
<span class="c">/*</span>
<span class="c"> for (var cI in expandedContainers)</span>
<span class="c"> {</span>
<span class="c"> var c = expandedContainers[cI]</span>
<span class="c"> c.group = this.innerGroup;</span>
<span class="c"> }*/</span>
<span class="kd">var</span> <span class="nx">getTerminalByName</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">terminals</span><span class="o">,</span> <span class="nx">name</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">tI</span> <span class="k">in</span> <span class="nx">terminals</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">terminals</span><span class="p">[</span><span class="nx">tI</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span> <span class="o">==</span> <span class="nx">name</span><span class="p">)</span>
<span class="k">return</span> <span class="nx">t</span><span class="o">;</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">reconnectTerminal</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">terminal</span><span class="o">,</span> <span class="nx">internalId</span><span class="o">,</span> <span class="nx">internalName</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">wI</span> <span class="k">in</span> <span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="nx">terminal</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">wI</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">wire</span> <span class="o">=</span> <span class="p">{}</span>
<span class="kd">var</span> <span class="nx">thisC</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"moduleId"</span> <span class="o">:</span> <span class="nx">mapModuleId</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">internalId</span><span class="p">)</span><span class="o">,</span> <span class="s2">"terminal"</span> <span class="o">:</span> <span class="nx">internalName</span><span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">w</span><span class="p">.</span><span class="nx">terminal1</span> <span class="o">==</span> <span class="nx">terminal</span><span class="p">)</span>
<span class="p">{</span>
<span class="nx">wire</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">thisC</span>
<span class="nx">wire</span><span class="p">.</span><span class="nx">tgt</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"moduleId"</span> <span class="o">:</span> <span class="nx">self</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">containers</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">w</span><span class="p">.</span><span class="nx">terminal2</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span><span class="o">,</span> <span class="s2">"terminal"</span> <span class="o">:</span> <span class="nx">w</span><span class="p">.</span><span class="nx">terminal2</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span><span class="p">}</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="nx">wire</span><span class="p">.</span><span class="nx">tgt</span> <span class="o">=</span> <span class="nx">thisC</span>
<span class="nx">wire</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"moduleId"</span> <span class="o">:</span> <span class="nx">self</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">containers</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">w</span><span class="p">.</span><span class="nx">terminal1</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span><span class="o">,</span> <span class="s2">"terminal"</span> <span class="o">:</span> <span class="nx">w</span><span class="p">.</span><span class="nx">terminal1</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">name</span><span class="p">}</span>
<span class="p">}</span>
<span class="nx">self</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">addWire</span><span class="p">(</span><span class="nx">wire</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">reconnect</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">tfMap</span><span class="o">,</span> <span class="nx">getInternalConfig</span><span class="o">,</span> <span class="nx">offset</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">fName</span> <span class="k">in</span> <span class="nx">tfMap</span><span class="p">.</span><span class="nx">fields</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">fMap</span> <span class="o">=</span> <span class="nx">tfMap</span><span class="p">.</span><span class="nx">fields</span><span class="p">[</span><span class="nx">fName</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="nx">self</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">inputsNames</span><span class="p">[</span><span class="nx">fName</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">internal</span> <span class="o">=</span> <span class="nx">getInternalConfig</span><span class="p">(</span><span class="nx">fMap</span><span class="p">.</span><span class="nx">containerId</span><span class="o">,</span> <span class="nx">fMap</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="nx">internal</span><span class="p">.</span><span class="nx">setValue</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">getValue</span><span class="p">());</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">terminal</span><span class="p">))</span>
<span class="nx">reconnectTerminal</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">terminal</span><span class="o">,</span> <span class="nx">mapModuleId</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">fMap</span><span class="p">.</span><span class="nx">containerId</span><span class="p">)</span><span class="o">,</span> <span class="nx">fMap</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">tName</span> <span class="k">in</span> <span class="nx">tfMap</span><span class="p">.</span><span class="nx">terminals</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">tMap</span> <span class="o">=</span> <span class="nx">tfMap</span><span class="p">.</span><span class="nx">terminals</span><span class="p">[</span><span class="nx">tName</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">getTerminalByName</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">terminals</span><span class="o">,</span> <span class="nx">tName</span><span class="p">);</span>
<span class="nx">reconnectTerminal</span><span class="p">(</span><span class="nx">t</span><span class="o">,</span> <span class="nx">mapModuleId</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">tMap</span><span class="p">.</span><span class="nx">containerId</span><span class="p">)</span><span class="o">,</span> <span class="nx">tMap</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nx">reconnect</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">map</span><span class="p">.</span><span class="nx">containerMap</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">group</span><span class="p">.</span><span class="nx">containers</span><span class="p">[</span><span class="nx">id</span><span class="p">].</span><span class="nx">container</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">inputsNames</span><span class="p">[</span><span class="nx">name</span><span class="p">];</span> <span class="p">}</span><span class="o">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="nx">reconnect</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">map</span><span class="p">.</span><span class="nx">groupMap</span><span class="o">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">group</span><span class="p">.</span><span class="nx">groups</span><span class="p">[</span><span class="nx">id</span><span class="p">].</span><span class="nx">group</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">.</span><span class="nx">form</span><span class="p">.</span><span class="nx">inputsNames</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="p">}</span><span class="o">,</span> <span class="nx">group</span><span class="p">.</span><span class="nx">containers</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span>
<span class="c">//Deserialise groups</span>
<span class="c">//Set Field values</span>
<span class="c">/*</span>
<span class="c"> for (var fName in this.form.inputsNames)</span>
<span class="c"> {</span>
<span class="c"> var f = this.form.inputsNames[fName];</span>
<span class="c"> var internal = WireIt.GroupUtils.getInternalField(this.options.groupConfig, fName);</span>
<span class="c"> </span>
<span class="c"> var container = expandedContainers[internal.moduleId];</span>
<span class="c"> </span>
<span class="c"> container.form.inputsNames[internal.name].setValue(f.getValue());</span>
<span class="c"> }</span>
<span class="c"> */</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">wI</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">wires</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">.</span><span class="nx">wires</span><span class="p">[</span><span class="nx">wI</span><span class="p">]</span>
<span class="k">this</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">addWire</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">"src"</span><span class="o">:</span><span class="p">{</span>
<span class="s2">"moduleId"</span><span class="o">:</span> <span class="nx">mapModuleId</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">w</span><span class="p">.</span><span class="nx">src</span><span class="p">.</span><span class="nx">moduleId</span><span class="p">)</span><span class="o">,</span>
<span class="s2">"terminal"</span><span class="o">:</span> <span class="nx">w</span><span class="p">.</span><span class="nx">src</span><span class="p">.</span><span class="nx">terminal</span>
<span class="p">}</span><span class="o">,</span>
<span class="s2">"tgt"</span><span class="o">:</span><span class="p">{</span>
<span class="s2">"moduleId"</span><span class="o">:</span> <span class="nx">mapModuleId</span><span class="p">(</span><span class="nx">offset</span><span class="o">,</span> <span class="nx">w</span><span class="p">.</span><span class="nx">tgt</span><span class="p">.</span><span class="nx">moduleId</span><span class="p">)</span><span class="o">,</span>
<span class="s2">"terminal"</span><span class="o">:</span> <span class="nx">w</span><span class="p">.</span><span class="nx">tgt</span><span class="p">.</span><span class="nx">terminal</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">);</span>
<span class="p">}</span>
<span class="c">//Remap current external wires to their corresponding internal containers</span>
<span class="c">/*</span>
<span class="c"> for (var tI in this.terminals)</span>
<span class="c"> {</span>
<span class="c"> var t = this.terminals[tI]</span>
<span class="c"> </span>
<span class="c"> for (var wI in t.wires)</span>
<span class="c"> {</span>
<span class="c"> var w = t.wires[wI]</span>
<span class="c"> </span>
<span class="c"> var internal = WireIt.GroupUtils.getInternalTerminal(this.options.groupConfig, t.options.name);</span>
<span class="c"> </span>
<span class="c"> var wire = {}</span>
<span class="c"> </span>
<span class="c"> var thisC = {"moduleId" : mapModuleId(offset, internal.moduleId), "terminal" : internal.name}</span>
<span class="c"> </span>
<span class="c"> if (w.terminal1 == t)</span>
<span class="c"> {</span>
<span class="c"> wire.src = thisC</span>
<span class="c"> wire.tgt = {"moduleId" : this.layer.containers.indexOf(w.terminal2.container), "terminal" : w.terminal2.options.name}</span>
<span class="c"> }</span>
<span class="c"> else</span>
<span class="c"> {</span>
<span class="c"> wire.tgt = thisC</span>
<span class="c"> wire.src = {"moduleId" : this.layer.containers.indexOf(w.terminal1.container), "terminal" : w.terminal1.options.name} </span>
<span class="c"> }</span>
<span class="c"> </span>
<span class="c"> this.layer.addWire(wire);</span>
<span class="c"> }</span>
<span class="c"> }</span>
<span class="c"> */</span>
<span class="k">this</span><span class="p">.</span><span class="nx">layer</span><span class="p">.</span><span class="nx">removeContainer</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">.</span><span class="nx">groupContainer</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="kd">var</span> <span class="nx">POPIgI</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="k">for</span> <span class="p">(</span><span class="nx">POPIgI</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="nx">POPIgI</span> <span class="o"><</span> <span class="nx">group</span><span class="p">.</span><span class="nx">groups</span><span class="p">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">POPIgI</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">g</span> <span class="o">=</span> <span class="nx">group</span><span class="p">.</span><span class="nx">groups</span><span class="p">[</span><span class="nx">POPIgI</span><span class="p">].</span><span class="nx">group</span><span class="o">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nx">properties</span><span class="p">.</span><span class="nx">expanded</span> <span class="o">&&</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isValue</span><span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">))</span>
<span class="nx">g</span><span class="p">.</span><span class="nx">groupContainer</span><span class="p">.</span><span class="nx">expand</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">.</span><span class="nx">grouper</span><span class="p">.</span><span class="nx">showGroup</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">.</span><span class="nx">grouper</span><span class="o">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">group</span><span class="p">);</span>
<span class="p">}</span><span class="o">,</span>
<span class="nx">translatePosition</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">modulePosition</span><span class="o">,</span> <span class="nx">position</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">return</span> <span class="p">[</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="mi">0</span><span class="o">,</span> <span class="nx">modulePosition</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="nx">position</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="mi">0</span><span class="o">,</span> <span class="nx">modulePosition</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="nx">position</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">];</span>
<span class="p">}</span><span class="o">,</span>
<span class="nx">getConfig</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span>
<span class="p">{</span>
<span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="nx">WireIt</span><span class="p">.</span><span class="nx">GroupFormContainer</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">getConfig</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="nx">lang</span><span class="p">.</span><span class="nx">augmentObject</span><span class="p">(</span><span class="nx">config</span><span class="o">,</span> <span class="p">{</span><span class="s2">"fields"</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">fields</span><span class="o">,</span> <span class="s2">"terminals"</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">terminals</span><span class="o">,</span> <span class="s2">"groupConfig"</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">groupConfig</span><span class="p">});</span>
<span class="k">return</span> <span class="nx">config</span><span class="o">;</span>
<span class="p">}</span>
<span class="c">/**</span>
<span class="c"> * @method getValue</span>
<span class="c"> */</span>
<span class="c">/* getValue: function() {</span>
<span class="c"> return this.group;</span>
<span class="c"> },</span>
<span class="c"> */</span>
<span class="c">/**</span>
<span class="c"> * @method setValue</span>
<span class="c"> */</span>
<span class="c">/*setValue: function(val) {</span>
<span class="c"> this.group = val;</span>
<span class="c"> </span>
<span class="c"> //Terminals</span>
<span class="c"> this.removeAllTerminals();</span>
<span class="c"> this.initTerminals(val.terminals);</span>
<span class="c"> this.dd.setTerminals(this.terminals);</span>
<span class="c"> </span>
<span class="c"> //Fields - have to go after terminal stuff since fields create their own terminals and above stuff would destroy them</span>
<span class="c"> this.options.fields = val.fields;</span>
<span class="c"> this.form.destroy();</span>
<span class="c"> this.renderForm(); </span>
<span class="c"> }*/</span>
<span class="p">});</span>
<span class="p">})();</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div id="moduleList" class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_animations-plugin.html" title="animations-plugin">animations-plugin</a></li>
<li class=""><a href="module_composable-plugin.html" title="composable-plugin">composable-plugin</a></li>
<li class="selected"><a href="module_editor-plugin.html" title="editor-plugin">editor-plugin</a></li>
<li class=""><a href="module_inputex-plugin.html" title="inputex-plugin">inputex-plugin</a></li>
<li class=""><a href="module_layout-plugin.html" title="layout-plugin">layout-plugin</a></li>
<li class=""><a href="module_wireit.html" title="WireIt">WireIt</a></li>
</ul>
</div>
<div id="classList" class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="WireIt.BaseEditor.html" title="WireIt.BaseEditor">WireIt.BaseEditor</a></li>
<li class=""><a href="WireIt.FormContainer.html" title="WireIt.FormContainer">WireIt.FormContainer</a></li>
<li class=""><a href="WireIt.Group.html" title="WireIt.Group">WireIt.Group</a></li>
<li class=""><a href="WireIt.Grouper.html" title="WireIt.Grouper">WireIt.Grouper</a></li>
<li class=""><a href="WireIt.GroupUtils.html" title="WireIt.GroupUtils">WireIt.GroupUtils</a></li>
<li class=""><a href="WireIt.ModuleProxy.html" title="WireIt.ModuleProxy">WireIt.ModuleProxy</a></li>
<li class=""><a href="WireIt.RubberBand.html" title="WireIt.RubberBand">WireIt.RubberBand</a></li>
<li class=""><a href="WireIt.WiringEditor.html" title="WireIt.WiringEditor">WireIt.WiringEditor</a></li>
<li class=""><a href="WireIt.WiringEditor.adapters.Ajax.html" title="WireIt.WiringEditor.adapters.Ajax">WireIt.WiringEditor.adapters.Ajax</a></li>
<li class=""><a href="WireIt.WiringEditor.adapters.Gears.html" title="WireIt.WiringEditor.adapters.Gears">WireIt.WiringEditor.adapters.Gears</a></li>
<li class=""><a href="WireIt.WiringEditor.adapters.JsonRpc.html" title="WireIt.WiringEditor.adapters.JsonRpc">WireIt.WiringEditor.adapters.JsonRpc</a></li>
</ul>
</div>
<div id="fileList" class="module">
<h4>Files</h4>
<ul class="content">
<li class=""><a href="ajax.js.html" title="ajax.js">ajax.js</a></li>
<li class=""><a href="FormContainer.js.html" title="FormContainer.js">FormContainer.js</a></li>
<li class=""><a href="gears.js.html" title="gears.js">gears.js</a></li>
<li class=""><a href="Group.js.html" title="Group.js">Group.js</a></li>
<li class=""><a href="Grouper.js.html" title="Grouper.js">Grouper.js</a></li>
<li class="selected"><a href="GroupFormContainer.js.html" title="GroupFormContainer.js">GroupFormContainer.js</a></li>
<li class=""><a href="GroupUtils.js.html" title="GroupUtils.js">GroupUtils.js</a></li>
<li class=""><a href="json-rpc.js.html" title="json-rpc.js">json-rpc.js</a></li>
<li class=""><a href="ModuleProxy.js.html" title="ModuleProxy.js">ModuleProxy.js</a></li>
<li class=""><a href="rest-json.js.html" title="rest-json.js">rest-json.js</a></li>
<li class=""><a href="RubberBand.js.html" title="RubberBand.js">RubberBand.js</a></li>
<li class=""><a href="WiringEditor.js.html" title="WiringEditor.js">WiringEditor.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright © 2010 Eric Abouaf All rights reserved.
</div>
</div>
<script type="text/javascript">
var ALL_YUI_PROPS = [{"url": "WireIt.WiringEditor.html#property_adapters", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "adapters"}, {"url": "WireIt.GroupUtils.html#method_addAllContainers", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "addAllContainers"}, {"url": "WireIt.Grouper.html#method_addContainer", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "addContainer"}, {"url": "WireIt.Grouper.html#method_addGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "addGroup"}, {"url": "WireIt.WiringEditor.html#method_addModule", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "addModule"}, {"url": "WireIt.WiringEditor.html#method_addModuleToList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "addModuleToList"}, {"url": "WireIt.BaseEditor.html#method_alert", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "alert"}, {"url": "WireIt.BaseEditor.html#property_alertPanel", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "alertPanel"}, {"url": "WireIt.GroupUtils.html#method_applyToContainers", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "applyToContainers"}, {"url": "WireIt.WiringEditor.html#method_buildModulesList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "buildModulesList"}, {"url": "WireIt.WiringEditor.html#method_checkAutoLoad", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "checkAutoLoad"}, {"url": "WireIt.FormContainer.html#property_collapsible", "access": "", "host": "WireIt.FormContainer", "type": "property", "name": "collapsible"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#property_config", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "property", "name": "config"}, {"url": "WireIt.RubberBand.html#property_defaultDelay", "access": "", "host": "WireIt.RubberBand", "type": "property", "name": "defaultDelay"}, {"url": "WireIt.BaseEditor.html#property_defaultOptions", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "defaultOptions"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#method_deleteWiring", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "method", "name": "deleteWiring"}, {"url": "WireIt.Grouper.html#method_deselectGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "deselectGroup"}, {"url": "WireIt.BaseEditor.html#property_el", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "el"}, {"url": "WireIt.ModuleProxy.html#method_endDrag", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "endDrag"}, {"url": "WireIt.FormContainer.html#property_fields", "access": "", "host": "WireIt.FormContainer", "type": "property", "name": "fields"}, {"url": "WireIt.RubberBand.html#method_finish", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "finish"}, {"url": "WireIt.GroupUtils.html#method_getCollapsedConfig", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "getCollapsedConfig"}, {"url": "WireIt.Grouper.html#method_getContainerCorners", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "getContainerCorners"}, {"url": "WireIt.GroupUtils.html#method_getOuterGroup", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "getOuterGroup"}, {"url": "WireIt.GroupUtils.html#method_getOverridesFromUI", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "getOverridesFromUI"}, {"url": "WireIt.WiringEditor.html#method_getPipeByName", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "getPipeByName"}, {"url": "WireIt.WiringEditor.html#method_getValue", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "getValue"}, {"url": "WireIt.FormContainer.html#method_getValue", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "getValue"}, {"url": "WireIt.Grouper.html#method_groupCollapse", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "groupCollapse"}, {"url": "WireIt.BaseEditor.html#property_helpPanel", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "helpPanel"}, {"url": "WireIt.RubberBand.html#method_hide", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "hide"}, {"url": "WireIt.Grouper.html#method_hideGroupConfigure", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "hideGroupConfigure"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#method_init", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "method", "name": "init"}, {"url": "WireIt.WiringEditor.html#method_inputFilterTimer", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "inputFilterTimer"}, {"url": "WireIt.BaseEditor.html#method_isSaved", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "isSaved"}, {"url": "WireIt.WiringEditor.html#property_layer", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "layer"}, {"url": "WireIt.RubberBand.html#method_layerMouseDown", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "layerMouseDown"}, {"url": "WireIt.BaseEditor.html#property_layout", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "layout"}, {"url": "WireIt.FormContainer.html#property_legend", "access": "", "host": "WireIt.FormContainer", "type": "property", "name": "legend"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#method_listWirings", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "method", "name": "listWirings"}, {"url": "WireIt.WiringEditor.html#method_load", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "load"}, {"url": "WireIt.WiringEditor.html#method_loadPipe", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "loadPipe"}, {"url": "WireIt.Grouper.html#method_makeGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "makeGroup"}, {"url": "WireIt.BaseEditor.html#method_markSaved", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "markSaved"}, {"url": "WireIt.BaseEditor.html#method_markUnsaved", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "markUnsaved"}, {"url": "WireIt.WiringEditor.html#property_modulesByName", "access": "", "host": "WireIt.WiringEditor", "type": "property", "name": "modulesByName"}, {"url": "WireIt.RubberBand.html#method_nextPoint", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "nextPoint"}, {"url": "WireIt.WiringEditor.html#method_onDelete", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onDelete"}, {"url": "WireIt.ModuleProxy.html#method_onDragDrop", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "onDragDrop"}, {"url": "WireIt.BaseEditor.html#method_onHelp", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "onHelp"}, {"url": "WireIt.WiringEditor.html#method_onLoadSuccess", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onLoadSuccess"}, {"url": "WireIt.WiringEditor.html#method_onNew", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "onNew"}, {"url": "WireIt.BaseEditor.html#method_onSave", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "onSave"}, {"url": "WireIt.BaseEditor.html#property_options", "access": "", "host": "WireIt.BaseEditor", "type": "property", "name": "options"}, {"url": "WireIt.RubberBand.html#method_pointIsInside", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "pointIsInside"}, {"url": "WireIt.Grouper.html#method_removeContainer", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "removeContainer"}, {"url": "WireIt.Grouper.html#method_removeGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "removeGroup"}, {"url": "WireIt.GroupUtils.html#method_removeGroupFromLayer", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "removeGroupFromLayer"}, {"url": "WireIt.BaseEditor.html#method_render", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "render"}, {"url": "WireIt.WiringEditor.html#method_render", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "render"}, {"url": "WireIt.FormContainer.html#method_render", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "render"}, {"url": "WireIt.BaseEditor.html#method_renderAlertPanel", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderAlertPanel"}, {"url": "WireIt.BaseEditor.html#method_renderButtons", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderButtons"}, {"url": "WireIt.FormContainer.html#method_renderForm", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "renderForm"}, {"url": "WireIt.BaseEditor.html#method_renderHelpPanel", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderHelpPanel"}, {"url": "WireIt.WiringEditor.html#method_renderLoadPanel", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderLoadPanel"}, {"url": "WireIt.WiringEditor.html#method_renderModulesAccordion", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "renderModulesAccordion"}, {"url": "WireIt.BaseEditor.html#method_renderPropertiesAccordion", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderPropertiesAccordion"}, {"url": "WireIt.BaseEditor.html#method_renderPropertiesForm", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderPropertiesForm"}, {"url": "WireIt.BaseEditor.html#method_renderSavedStatus", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "renderSavedStatus"}, {"url": "WireIt.WiringEditor.adapters.JsonRpc.html#property_RestJSON", "access": "", "host": "WireIt.WiringEditor.adapters.JsonRpc", "type": "property", "name": "RestJSON"}, {"url": "WireIt.Grouper.html#method_rubberbandSelect", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "rubberbandSelect"}, {"url": "WireIt.BaseEditor.html#method_save", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "save"}, {"url": "WireIt.WiringEditor.html#method_save", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "save"}, {"url": "WireIt.WiringEditor.html#method_saveModuleFailure", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "saveModuleFailure"}, {"url": "WireIt.WiringEditor.html#method_saveModuleSuccess", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "saveModuleSuccess"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#method_saveWiring", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "method", "name": "saveWiring"}, {"url": "WireIt.RubberBand.html#method_scroll", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "scroll"}, {"url": "WireIt.Grouper.html#method_selectGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "selectGroup"}, {"url": "WireIt.WiringEditor.adapters.Ajax.html#method__sendRequest", "access": "", "host": "WireIt.WiringEditor.adapters.Ajax", "type": "method", "name": "_sendRequest"}, {"url": "WireIt.GroupUtils.html#method_serialiseGroup", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "serialiseGroup"}, {"url": "WireIt.Grouper.html#method_setDisplay", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "setDisplay"}, {"url": "WireIt.Grouper.html#method_setGroupOptions", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "setGroupOptions"}, {"url": "WireIt.BaseEditor.html#method_setOptions", "access": "", "host": "WireIt.BaseEditor", "type": "method", "name": "setOptions"}, {"url": "WireIt.WiringEditor.html#method_setOptions", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "setOptions"}, {"url": "WireIt.FormContainer.html#method_setOptions", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "setOptions"}, {"url": "WireIt.Grouper.html#method_setSelectedGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "setSelectedGroup"}, {"url": "WireIt.Grouper.html#method_setupSelectedGroups", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "setupSelectedGroups"}, {"url": "WireIt.Grouper.html#method_setupWidget", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "setupWidget"}, {"url": "WireIt.FormContainer.html#method_setValue", "access": "", "host": "WireIt.FormContainer", "type": "method", "name": "setValue"}, {"url": "WireIt.RubberBand.html#method_show", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "show"}, {"url": "WireIt.Grouper.html#method_showGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "showGroup"}, {"url": "WireIt.Grouper.html#method_showGroupConfigure", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "showGroupConfigure"}, {"url": "WireIt.RubberBand.html#method_start", "access": "", "host": "WireIt.RubberBand", "type": "method", "name": "start"}, {"url": "WireIt.ModuleProxy.html#method_startDrag", "access": "", "host": "WireIt.ModuleProxy", "type": "method", "name": "startDrag"}, {"url": "WireIt.Grouper.html#method_toggle", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "toggle"}, {"url": "WireIt.Grouper.html#method_unGroup", "access": "", "host": "WireIt.Grouper", "type": "method", "name": "unGroup"}, {"url": "WireIt.WiringEditor.html#method_updateLoadPanelList", "access": "", "host": "WireIt.WiringEditor", "type": "method", "name": "updateLoadPanelList"}, {"url": "WireIt.GroupUtils.html#method_valueOr", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "valueOr"}, {"url": "WireIt.GroupUtils.html#method_workOutCenter", "access": "", "host": "WireIt.GroupUtils", "type": "method", "name": "workOutCenter"}, {"url": "WireIt.FormContainer.html#property_xtype", "access": "", "host": "WireIt.FormContainer", "type": "property", "name": "xtype"}];
</script>
</body>
</html>