source: sasview/_modules/sas/perspectives/fitting/simfitpage.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 173.0 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.perspectives.fitting.simfitpage &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../../index.html" />
28    <link rel="up" title="sas.perspectives.fitting" href="../fitting.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../fitting.html" accesskey="U">sas.perspectives.fitting</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.perspectives.fitting.simfitpage</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    Simultaneous fit page</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span><span class="nn">re</span><span class="o">,</span><span class="nn">string</span><span class="o">,</span> <span class="nn">wx</span>
56<span class="kn">import</span> <span class="nn">wx.lib.newevent</span>
57<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span> 
58<span class="kn">from</span> <span class="nn">sas.guiframe.panel_base</span> <span class="kn">import</span> <span class="n">PanelBase</span>
59<span class="kn">from</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">import</span> <span class="n">ScrolledPanel</span>
60<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">PanelOnFocusEvent</span>
61<span class="c">#Control panel width </span>
62<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;darwin&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
63    <span class="n">PANEL_WID</span> <span class="o">=</span> <span class="mi">420</span>
64    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
65<span class="k">else</span><span class="p">:</span>
66    <span class="n">PANEL_WID</span> <span class="o">=</span> <span class="mi">490</span>
67    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
68       
69           
70<div class="viewcode-block" id="get_fittableParam"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.get_fittableParam">[docs]</a><span class="k">def</span> <span class="nf">get_fittableParam</span><span class="p">(</span><span class="n">model</span><span class="p">):</span>
71    <span class="sd">&quot;&quot;&quot;</span>
72<span class="sd">    return list of fittable parameters name of a model</span>
73<span class="sd">    </span>
74<span class="sd">    :param model: the model used</span>
75<span class="sd">    </span>
76<span class="sd">    &quot;&quot;&quot;</span>
77    <span class="n">fittable_param</span> <span class="o">=</span> <span class="p">[]</span>
78    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">getParamList</span><span class="p">():</span>
79        <span class="k">if</span> <span class="ow">not</span> <span class="n">item</span>  <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">getDispParamList</span><span class="p">():</span>
80            <span class="k">if</span> <span class="ow">not</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">non_fittable</span><span class="p">:</span>
81                <span class="n">fittable_param</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
82           
83    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">fixed</span><span class="p">:</span>
84        <span class="n">fittable_param</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
85       
86    <span class="k">return</span> <span class="n">fittable_param</span>
87
88</div>
89<div class="viewcode-block" id="SimultaneousFitPage"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage">[docs]</a><span class="k">class</span> <span class="nc">SimultaneousFitPage</span><span class="p">(</span><span class="n">ScrolledPanel</span><span class="p">,</span> <span class="n">PanelBase</span><span class="p">):</span>
90    <span class="sd">&quot;&quot;&quot;</span>
91<span class="sd">    Simultaneous fitting panel</span>
92<span class="sd">    All that needs to be defined are the</span>
93<span class="sd">    two data members window_name and window_caption</span>
94<span class="sd">    &quot;&quot;&quot;</span>
95    <span class="c">## Internal name for the AUI manager</span>
96    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;simultaneous Fit page&quot;</span>
97    <span class="c">## Title to appear on top of the window</span>
98    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Simultaneous Fit Page&quot;</span>
99   
100    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">page_finder</span><span class="o">=</span><span class="p">{},</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">batch_on</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
101                     <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
102        <span class="n">ScrolledPanel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span>
103                               <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">FULL_REPAINT_ON_RESIZE</span><span class="p">,</span>
104                               <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
105        <span class="n">PanelBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
106        <span class="sd">&quot;&quot;&quot;</span>
107<span class="sd">        Simultaneous page display</span>
108<span class="sd">        &quot;&quot;&quot;</span>
109        <span class="bp">self</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>
110        <span class="c">##Font size</span>
111        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
112        <span class="bp">self</span><span class="o">.</span><span class="n">uid</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
113        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
114        <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span> <span class="o">=</span> <span class="n">batch_on</span>
115        <span class="c">## store page_finder</span>
116        <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span> <span class="o">=</span> <span class="n">page_finder</span>
117        <span class="c">## list contaning info to set constraint</span>
118        <span class="c">## look like self.constraint_dict[page_id]= page</span>
119        <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span> <span class="o">=</span> <span class="p">{}</span>
120        <span class="c">## item list</span>
121        <span class="c"># self.constraints_list=[combobox1, combobox2,=,textcrtl, button ]</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span> <span class="o">=</span> <span class="p">[]</span>
123        <span class="c">## list of current model</span>
124        <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span> <span class="o">=</span> <span class="p">[]</span>
125        <span class="c">## selected mdoel to fit</span>
126        <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span> <span class="o">=</span> <span class="p">[]</span>
127        <span class="c">## number of constraint</span>
128        <span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span> <span class="o">=</span> <span class="mi">0</span>
129        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">=</span> <span class="bp">None</span>
130        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">=</span> <span class="bp">None</span>
131        <span class="bp">self</span><span class="o">.</span><span class="n">uid</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
132        <span class="c">## draw page</span>
133        <span class="bp">self</span><span class="o">.</span><span class="n">define_page_structure</span><span class="p">()</span>
134        <span class="bp">self</span><span class="o">.</span><span class="n">draw_page</span><span class="p">()</span>
135        <span class="bp">self</span><span class="o">.</span><span class="n">set_layout</span><span class="p">()</span>
136        <span class="bp">self</span><span class="o">.</span><span class="n">_set_save_flag</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
137       
138<div class="viewcode-block" id="SimultaneousFitPage.define_page_structure"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.define_page_structure">[docs]</a>    <span class="k">def</span> <span class="nf">define_page_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
139        <span class="sd">&quot;&quot;&quot;</span>
140<span class="sd">        Create empty sizer for a panel</span>
141<span class="sd">        &quot;&quot;&quot;</span>
142        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
143        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
144        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
145        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
146
147        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WID</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
148        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WID</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
149        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WID</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
150        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="p">)</span>
151        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="p">)</span>
152        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="p">)</span>
153        </div>
154<div class="viewcode-block" id="SimultaneousFitPage.set_scroll"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.set_scroll">[docs]</a>    <span class="k">def</span> <span class="nf">set_scroll</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
155        <span class="sd">&quot;&quot;&quot;</span>
156<span class="sd">        &quot;&quot;&quot;</span>
157        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
158         </div>
159<div class="viewcode-block" id="SimultaneousFitPage.set_layout"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.set_layout">[docs]</a>    <span class="k">def</span> <span class="nf">set_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
160        <span class="sd">&quot;&quot;&quot;</span>
161<span class="sd">        layout</span>
162<span class="sd">        &quot;&quot;&quot;</span>
163        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
164        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Fit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
165        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="p">)</span>
166        <span class="bp">self</span><span class="o">.</span><span class="n">set_scroll</span><span class="p">()</span>
167        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
168        </div>
169<div class="viewcode-block" id="SimultaneousFitPage.onRemove"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.onRemove">[docs]</a>    <span class="k">def</span> <span class="nf">onRemove</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
170        <span class="sd">&quot;&quot;&quot;</span>
171<span class="sd">        Remove constraint fields</span>
172<span class="sd">        &quot;&quot;&quot;</span>
173        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
174            <span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
175            <span class="bp">self</span><span class="o">.</span><span class="n">_hide_constraint</span><span class="p">()</span>
176            <span class="k">return</span>
177        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
178            <span class="k">return</span>
179        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">:</span>
180            <span class="n">length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
181            <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">GetId</span><span class="p">()</span> <span class="o">==</span> <span class="n">item</span><span class="p">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">GetId</span><span class="p">():</span>
182                <span class="n">sizer</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
183                <span class="n">sizer</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
184                <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Remove</span><span class="p">(</span><span class="n">sizer</span><span class="p">)</span>
185                <span class="c">#self.SetScrollbars(20,20,25,65)</span>
186                <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
187                <span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span> <span class="o">-=</span> <span class="mi">1</span>
188                <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
189                <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
190                <span class="k">break</span>
191
192        <span class="c">#self._onAdd_constraint(None)</span>
193             </div>
194<div class="viewcode-block" id="SimultaneousFitPage.onFit"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.onFit">[docs]</a>    <span class="k">def</span> <span class="nf">onFit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
195        <span class="sd">&quot;&quot;&quot;</span>
196<span class="sd">        signal for fitting</span>
197<span class="sd">        </span>
198<span class="sd">        &quot;&quot;&quot;</span>
199        <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
200        <span class="c"># check if the current page a simultaneous fit page or a batch page</span>
201        <span class="k">if</span> <span class="bp">self</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">sim_page</span><span class="p">:</span>
202            <span class="n">flag</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">sim_page</span><span class="o">.</span><span class="n">uid</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">uid</span><span class="p">)</span>
203
204        <span class="c">## making sure all parameters content a constraint</span>
205        <span class="c">## validity of the constraint expression is own by fit engine</span>
206        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">_fit_engine</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&quot;park&quot;</span><span class="p">,</span><span class="s">&quot;bumps&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">flag</span><span class="p">:</span>
207            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;The FitEnging will be set to &#39;Park&#39; fit engine</span><span class="se">\n</span><span class="s">&quot;</span>
208            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; for the simultaneous fit...&quot;</span>
209            <span class="c">#wx.MessageBox(msg, &#39;Info&#39;)</span>
210            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span>\
211                            <span class="s">&quot;Fitting: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">msg</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="s">&quot;info&quot;</span><span class="p">))</span>
212        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
213            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_constraint</span><span class="p">():</span>
214                <span class="k">return</span>
215        <span class="c">## model was actually selected from this page to be fit</span>
216        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">:</span>
217            <span class="bp">self</span><span class="o">.</span><span class="n">manager</span><span class="o">.</span><span class="n">_reset_schedule_problem</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
218            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">:</span>
219                <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
220                    <span class="bp">self</span><span class="o">.</span><span class="n">manager</span><span class="o">.</span><span class="n">schedule_for_fit</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">uid</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> 
221            <span class="k">try</span><span class="p">:</span>
222                <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">manager</span><span class="o">.</span><span class="n">onFit</span><span class="p">(</span><span class="n">uid</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">uid</span><span class="p">):</span>
223                    <span class="k">return</span>
224            <span class="k">except</span><span class="p">:</span>
225                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Select at least one parameter to fit in the FitPages.&quot;</span>
226                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
227        <span class="k">else</span><span class="p">:</span>
228            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Select at least one model check box to fit &quot;</span>
229            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
230           </div>
231<div class="viewcode-block" id="SimultaneousFitPage.set_manager"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.set_manager">[docs]</a>    <span class="k">def</span> <span class="nf">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">manager</span><span class="p">):</span>
232        <span class="sd">&quot;&quot;&quot;</span>
233<span class="sd">        set panel manager</span>
234<span class="sd">        </span>
235<span class="sd">        :param manager: instance of plugin fitting</span>
236<span class="sd">        </span>
237<span class="sd">        &quot;&quot;&quot;</span>
238        <span class="bp">self</span><span class="o">.</span><span class="n">manager</span> <span class="o">=</span> <span class="n">manager</span>
239       </div>
240<div class="viewcode-block" id="SimultaneousFitPage.check_all_model_name"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.check_all_model_name">[docs]</a>    <span class="k">def</span> <span class="nf">check_all_model_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
241        <span class="sd">&quot;&quot;&quot;</span>
242<span class="sd">        check all models names</span>
243<span class="sd">        &quot;&quot;&quot;</span>
244        <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span> <span class="o">=</span> <span class="p">[]</span>
245        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
246            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">:</span>
247                <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">():</span>
248                    <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
249                    <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
250               
251            <span class="c">## constraint info</span>
252            <span class="bp">self</span><span class="o">.</span><span class="n">_store_model</span><span class="p">()</span>
253            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
254                <span class="c">## display constraint fields</span>
255                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="ow">and</span>\
256                                 <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
257                    <span class="bp">self</span><span class="o">.</span><span class="n">_show_all_constraint</span><span class="p">()</span> 
258                    <span class="bp">self</span><span class="o">.</span><span class="n">_show_constraint</span><span class="p">()</span>
259        <span class="k">else</span><span class="p">:</span>
260            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">:</span>
261                <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span> 
262               
263            <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span> <span class="o">=</span> <span class="p">[]</span>
264            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
265                <span class="c">##constraint info</span>
266                <span class="bp">self</span><span class="o">.</span><span class="n">_hide_constraint</span><span class="p">()</span>
267           
268        <span class="bp">self</span><span class="o">.</span><span class="n">_update_easy_setup_cb</span><span class="p">()</span>
269        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
270        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
271        </div>
272<div class="viewcode-block" id="SimultaneousFitPage.check_model_name"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.check_model_name">[docs]</a>    <span class="k">def</span> <span class="nf">check_model_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
273        <span class="sd">&quot;&quot;&quot;</span>
274<span class="sd">        Save information related to checkbox and their states</span>
275<span class="sd">        &quot;&quot;&quot;</span>
276        <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span> <span class="o">=</span> <span class="p">[]</span>
277        <span class="n">cbox</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
278        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">:</span>
279            <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
280                <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
281            <span class="k">else</span><span class="p">:</span>
282                <span class="k">if</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">:</span>
283                    <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
284                    <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
285       
286        <span class="c">## display constraint fields</span>
287        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">:</span>
288            <span class="bp">self</span><span class="o">.</span><span class="n">_store_model</span><span class="p">()</span>
289            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="ow">and</span>\
290                             <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
291                <span class="bp">self</span><span class="o">.</span><span class="n">_show_all_constraint</span><span class="p">()</span>
292                <span class="bp">self</span><span class="o">.</span><span class="n">_show_constraint</span><span class="p">()</span>
293
294        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
295            <span class="c">##constraint info</span>
296            <span class="bp">self</span><span class="o">.</span><span class="n">_hide_constraint</span><span class="p">()</span>
297                       
298        <span class="bp">self</span><span class="o">.</span><span class="n">_update_easy_setup_cb</span><span class="p">()</span>
299        <span class="c">## set the value of the main check button</span>
300        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">):</span>
301            <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
302            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
303            <span class="k">return</span>
304        <span class="k">else</span><span class="p">:</span>
305            <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
306            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
307            </div>
308    <span class="k">def</span> <span class="nf">_update_easy_setup_cb</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
309        <span class="sd">&quot;&quot;&quot;</span>
310<span class="sd">        Update easy setup combobox on selecting a model</span>
311<span class="sd">        &quot;&quot;&quot;</span>
312        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">!=</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
313            <span class="k">try</span><span class="p">:</span>
314                <span class="c"># when there is something</span>
315                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
316                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
317                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
318            <span class="k">except</span><span class="p">:</span>
319                <span class="c"># when there is nothing</span>
320                <span class="k">pass</span>
321            <span class="c">#for id, model in self.constraint_dict.iteritems():</span>
322            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">:</span>
323                <span class="n">model</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
324                <span class="c">## check if all parameters have been selected for constraint</span>
325                <span class="c">## then do not allow add constraint on parameters</span>
326                <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetItems</span><span class="p">():</span>
327                    <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
328                <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetItems</span><span class="p">():</span>
329                    <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
330                <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">GetItems</span><span class="p">():</span>
331                    <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
332            <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
333            <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
334            <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
335       
336<div class="viewcode-block" id="SimultaneousFitPage.draw_page"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.draw_page">[docs]</a>    <span class="k">def</span> <span class="nf">draw_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
337        <span class="sd">&quot;&quot;&quot;</span>
338<span class="sd">        Draw a sizer containing couples of data and model </span>
339<span class="sd">        &quot;&quot;&quot;</span>
340        <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span> <span class="o">=</span> <span class="p">[]</span>
341        <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span> <span class="o">=</span> <span class="p">[]</span>
342        <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span> <span class="o">=</span> <span class="p">[]</span>
343        <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span> <span class="o">=</span> <span class="p">{}</span>
344        <span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span> <span class="o">=</span> <span class="mi">0</span>
345        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">=</span> <span class="bp">None</span>
346        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">=</span> <span class="bp">None</span>
347       
348        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
349            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="p">:</span>
350                <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
351                <span class="bp">self</span><span class="o">.</span><span class="n">manager</span><span class="o">.</span><span class="n">schedule_for_fit</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">uid</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
352               
353        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
354        <span class="n">box_description</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Fit Combinations&quot;</span><span class="p">)</span>
355        <span class="n">boxsizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">box_description</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
356        <span class="n">sizer_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
357        <span class="n">sizer_couples</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
358        <span class="c">#------------------------------------------------------</span>
359        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
360            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; No fit combinations are found! </span><span class="se">\n\n</span><span class="s">&quot;</span>
361            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; Please load data and set up &quot;</span>
362            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;at least two fit panels first...&quot;</span>
363            <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">msg</span><span class="p">))</span>
364        <span class="k">else</span><span class="p">:</span>
365            <span class="c">## store model</span>
366            <span class="bp">self</span><span class="o">.</span><span class="n">_store_model</span><span class="p">()</span>
367       
368            <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Select all&#39;</span><span class="p">)</span>
369            <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
370           
371            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_all_model_name</span><span class="p">)</span>
372           
373            <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span>
374                <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
375            <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cb1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
376                <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
377           
378            <span class="c">## draw list of model and data name</span>
379            <span class="bp">self</span><span class="o">.</span><span class="n">_fill_sizer_model_list</span><span class="p">(</span><span class="n">sizer_couples</span><span class="p">)</span>
380            <span class="c">## draw the sizer containing constraint info</span>
381            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
382                <span class="bp">self</span><span class="o">.</span><span class="n">_fill_sizer_constraint</span><span class="p">()</span>
383            <span class="c">## draw fit button</span>
384            <span class="bp">self</span><span class="o">.</span><span class="n">_fill_sizer_fit</span><span class="p">()</span>
385        <span class="c">#--------------------------------------------------------</span>
386        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_title</span><span class="p">,</span> <span class="n">flag</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span> 
387        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_couples</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">flag</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
388       
389        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
390        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
391        <span class="c">#self.SetScrollbars(20,20,25,65)</span>
392        <span class="bp">self</span><span class="o">.</span><span class="n">AdjustScrollbars</span><span class="p">()</span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
394        </div>
395    <span class="k">def</span> <span class="nf">_store_model</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
396        <span class="sd">&quot;&quot;&quot;</span>
397<span class="sd">         Store selected model</span>
398<span class="sd">        &quot;&quot;&quot;</span>
399        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
400            <span class="k">return</span>
401        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">:</span>
402            <span class="n">model</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
403            <span class="n">page_id</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
404            <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="p">[</span><span class="n">page_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">model</span>
405                   
406    <span class="k">def</span> <span class="nf">_display_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
407        <span class="sd">&quot;&quot;&quot;</span>
408<span class="sd">        Show fields to add constraint</span>
409<span class="sd">        &quot;&quot;&quot;</span>
410        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
411            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Select at least 1 model to add constraint &quot;</span>
412            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
413            <span class="c">## hide button</span>
414            <span class="bp">self</span><span class="o">.</span><span class="n">_hide_constraint</span><span class="p">()</span>
415            <span class="k">return</span>
416        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
417            <span class="bp">self</span><span class="o">.</span><span class="n">_show_all_constraint</span><span class="p">()</span>
418            <span class="bp">self</span><span class="o">.</span><span class="n">_show_constraint</span><span class="p">()</span>
419            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
420            <span class="k">return</span>
421        <span class="k">else</span><span class="p">:</span>
422            <span class="bp">self</span><span class="o">.</span><span class="n">_hide_constraint</span><span class="p">()</span>
423            <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
424            <span class="k">return</span>
425       
426    <span class="k">def</span> <span class="nf">_show_all_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
427        <span class="sd">&quot;&quot;&quot;</span>
428<span class="sd">        Show constraint fields</span>
429<span class="sd">        &quot;&quot;&quot;</span>
430        <span class="n">box_description</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s">&quot;Easy Setup &quot;</span><span class="p">)</span>
431        <span class="n">boxsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">box_description</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>     
432        <span class="n">sizer_constraint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
433        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
434        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
435        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
436        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
437        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_select_modelcb</span><span class="p">)</span>
438        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_select_modelcb</span><span class="p">)</span>
439        <span class="n">egal_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot; = &quot;</span><span class="p">)</span>
440        <span class="bp">self</span><span class="o">.</span><span class="n">set_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&#39;Set All&#39;</span><span class="p">)</span>
441        <span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_set_all_equal</span><span class="p">,</span>
442                             <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
443        <span class="n">set_tip</span> <span class="o">=</span> <span class="s">&quot;Add constraints for all the adjustable parameters &quot;</span>
444        <span class="n">set_tip</span> <span class="o">+=</span> <span class="s">&quot;(checked in FitPages) if exist.&quot;</span>
445        <span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">set_tip</span><span class="p">)</span>
446        <span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
447       
448        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
449            <span class="c">## check if all parameters have been selected for constraint</span>
450            <span class="c">## then do not allow add constraint on parameters</span>
451            <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
452        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Select</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
453        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
454            <span class="c">## check if all parameters have been selected for constraint</span>
455            <span class="c">## then do not allow add constraint on parameters</span>
456            <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
457        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="p">,</span>
458                             <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
459        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;.parameters&quot;</span><span class="p">),</span>
460                             <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
461        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">egal_txt</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
462        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="p">,</span>
463                             <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
464        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;.parameters&quot;</span><span class="p">),</span>
465                             <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span><span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
466        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
467        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
468        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
469        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
470                             <span class="n">item</span><span class="o">=</span><span class="n">sizer_constraint</span><span class="p">,</span>
471                             <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
472
473        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
474        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
475        <span class="c">#self.SetScrollbars(20,20,25,65)</span>
476   
477    <span class="k">def</span> <span class="nf">_on_select_modelcb</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
478        <span class="sd">&quot;&quot;&quot;</span>
479<span class="sd">        On select model left or right combobox</span>
480<span class="sd">        &quot;&quot;&quot;</span>
481        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
482        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
483        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;&#39;</span><span class="p">:</span>
484            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
485        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;&#39;</span><span class="p">:</span>
486            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
487        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">==</span>\
488                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
489            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
490        <span class="bp">self</span><span class="o">.</span><span class="n">set_button</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span>
491       
492    <span class="k">def</span> <span class="nf">_on_set_all_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
493        <span class="sd">&quot;&quot;&quot;</span>
494<span class="sd">        On set button</span>
495<span class="sd">        &quot;&quot;&quot;</span>
496        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
497        <span class="n">length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span>
498        <span class="k">if</span> <span class="n">length</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
499            <span class="k">return</span>
500        <span class="n">param_list</span> <span class="o">=</span> <span class="p">[]</span>
501        <span class="n">param_listB</span> <span class="o">=</span> <span class="p">[]</span>
502        <span class="n">selection</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
503        <span class="n">model_left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
504        <span class="n">model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span>
505        <span class="n">selectionB</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
506        <span class="n">model_right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
507        <span class="n">modelB</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">selectionB</span><span class="p">)</span>
508        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">dic_model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
509            <span class="k">if</span> <span class="n">model</span> <span class="o">==</span> <span class="n">dic_model</span><span class="p">:</span>
510                <span class="n">param_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_param2fit</span><span class="p">()</span>
511            <span class="k">if</span> <span class="n">modelB</span> <span class="o">==</span> <span class="n">dic_model</span><span class="p">:</span>
512                <span class="n">param_listB</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_param2fit</span><span class="p">()</span>
513            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_list</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_listB</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
514                <span class="k">break</span>
515        <span class="n">num_cbox</span> <span class="o">=</span> <span class="mi">0</span>
516        <span class="n">has_param</span> <span class="o">=</span> <span class="bp">False</span>
517        <span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">param_list</span><span class="p">:</span>
518            <span class="n">num_cbox</span> <span class="o">+=</span> <span class="mi">1</span>
519            <span class="k">if</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">param_listB</span><span class="p">:</span>
520                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="n">model_left</span><span class="p">)</span>
521                <span class="bp">self</span><span class="o">.</span><span class="n">_on_select_model</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
522                <span class="bp">self</span><span class="o">.</span><span class="n">param_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
523                <span class="bp">self</span><span class="o">.</span><span class="n">param_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
524                <span class="bp">self</span><span class="o">.</span><span class="n">param_cbox</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">))</span>
525                <span class="bp">self</span><span class="o">.</span><span class="n">ctl2</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model_right</span> <span class="o">+</span> <span class="s">&quot;.&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">)))</span>
526                <span class="n">has_param</span> <span class="o">=</span> <span class="bp">True</span>
527                <span class="k">if</span> <span class="n">num_cbox</span> <span class="o">==</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">param_list</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
528                    <span class="k">break</span>
529                <span class="bp">self</span><span class="o">.</span><span class="n">_show_constraint</span><span class="p">()</span>
530       
531        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
532        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
533        <span class="bp">self</span><span class="o">.</span><span class="n">SetScrollbars</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">65</span><span class="p">)</span>
534        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
535        <span class="k">if</span> <span class="ow">not</span> <span class="n">has_param</span><span class="p">:</span>
536            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; There is no adjustable parameter (checked to fit)&quot;</span>
537            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; either one of the models.&quot;</span>
538            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">info</span><span class="o">=</span><span class="s">&quot;warning&quot;</span><span class="p">,</span>
539                                                         <span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
540        <span class="k">else</span><span class="p">:</span>
541            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; The constraints are added.&quot;</span>
542            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">info</span><span class="o">=</span><span class="s">&quot;info&quot;</span><span class="p">,</span>
543                                                         <span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
544
545    <span class="k">def</span> <span class="nf">_show_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
546        <span class="sd">&quot;&quot;&quot;</span>
547<span class="sd">        Show constraint fields</span>
548<span class="sd">        &quot;&quot;&quot;</span>
549        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
550        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
551            <span class="n">nb_fit_param</span> <span class="o">=</span> <span class="mi">0</span>
552            <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
553                <span class="n">nb_fit_param</span> <span class="o">+=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_param2fit</span><span class="p">())</span>
554            <span class="c">##Don&#39;t add anymore</span>
555            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span> <span class="o">==</span> <span class="n">nb_fit_param</span><span class="p">:</span>
556                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Cannot add another constraint .Maximum of number &quot;</span>
557                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Parameters name reached </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">nb_fit_param</span><span class="p">)</span>
558                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
559                <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
560                <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
561                <span class="k">return</span>
562        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model_toFit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
563            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Select at least 1 model to add constraint &quot;</span>
564            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
565            <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
566            <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
567            <span class="k">return</span>
568           
569        <span class="n">sizer_constraint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
570        <span class="n">model_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
571        <span class="n">model_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
572        <span class="n">param_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="p">)</span>
573        <span class="n">param_cbox</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
574       
575        <span class="c">#This is for GetCLientData() _on_select_param: Was None return on MAC.</span>
576        <span class="bp">self</span><span class="o">.</span><span class="n">param_cbox</span> <span class="o">=</span> <span class="n">param_cbox</span>
577       
578        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="n">param_cbox</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_select_param</span><span class="p">)</span>
579        <span class="bp">self</span><span class="o">.</span><span class="n">ctl2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
580        <span class="n">egal_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot; = &quot;</span><span class="p">)</span>
581        <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span><span class="s">&#39;Remove&#39;</span><span class="p">)</span>
582        <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onRemove</span><span class="p">,</span> 
583                           <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
584        <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Remove constraint.&quot;</span><span class="p">)</span>
585        <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
586        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&quot;btAdd&quot;</span><span class="p">):</span>
587            <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
588        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
589            <span class="c">## check if all parameters have been selected for constraint</span>
590            <span class="c">## then do not allow add constraint on parameters</span>
591            <span class="n">model_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
592           
593        <span class="c">#This is for GetCLientData() passing to self._on_select_param: Was None return on MAC.</span>
594        <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span> <span class="o">=</span> <span class="n">model_cbox</span>
595           
596        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="n">model_cbox</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_select_model</span><span class="p">)</span>
597        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
598        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">model_cbox</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
599        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">param_cbox</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
600        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">egal_txt</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
601        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ctl2</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
602        <span class="n">sizer_constraint</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
603     
604        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span><span class="p">,</span>
605                        <span class="n">item</span><span class="o">=</span><span class="n">sizer_constraint</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span>
606                        <span class="n">border</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
607        <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">model_cbox</span><span class="p">,</span> <span class="n">param_cbox</span><span class="p">,</span> <span class="n">egal_txt</span><span class="p">,</span>
608                                    <span class="bp">self</span><span class="o">.</span><span class="n">ctl2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="p">,</span> <span class="n">sizer_constraint</span><span class="p">])</span>
609   
610        <span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span> <span class="o">+=</span> <span class="mi">1</span>
611        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
612        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
613       
614    <span class="k">def</span> <span class="nf">_hide_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
615        <span class="sd">&quot;&quot;&quot;</span>
616<span class="sd">        hide buttons related constraint</span>
617<span class="sd">        &quot;&quot;&quot;</span>
618        <span class="k">for</span> <span class="nb">id</span> <span class="ow">in</span>  <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="o">.</span><span class="n">iterkeys</span><span class="p">():</span>
619            <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">clear_model_param</span><span class="p">()</span>
620               
621        <span class="bp">self</span><span class="o">.</span><span class="n">nb_constraint</span> <span class="o">=</span> <span class="mi">0</span>
622        <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span> <span class="o">=</span> <span class="p">{}</span>
623        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&quot;btAdd&quot;</span><span class="p">):</span>
624            <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
625        <span class="bp">self</span><span class="o">.</span><span class="n">_store_model</span><span class="p">()</span>
626        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
627            <span class="k">try</span><span class="p">:</span>
628                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
629            <span class="k">except</span><span class="p">:</span>
630                <span class="k">pass</span>
631            <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_left</span> <span class="o">=</span> <span class="bp">None</span>
632        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
633            <span class="k">try</span><span class="p">:</span>
634                <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
635            <span class="k">except</span><span class="p">:</span>
636                <span class="k">pass</span>
637            <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox_right</span> <span class="o">=</span> <span class="bp">None</span>
638        <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span> <span class="o">=</span> <span class="p">[]</span>
639        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
640        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
641        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
642        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
643        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
644           
645    <span class="k">def</span> <span class="nf">_on_select_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
646        <span class="sd">&quot;&quot;&quot;</span>
647<span class="sd">        fill combox box with list of parameters</span>
648<span class="sd">        &quot;&quot;&quot;</span>
649        <span class="n">param_list</span> <span class="o">=</span> <span class="p">[]</span>
650        <span class="c">##This way PC/MAC both work, instead of using event.GetClientData().</span>
651        <span class="n">n</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
652        <span class="n">model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
653        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">dic_model</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
654            <span class="k">if</span> <span class="n">model</span> <span class="o">==</span> <span class="n">dic_model</span><span class="p">:</span>
655                <span class="n">param_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_param2fit</span><span class="p">()</span>
656                <span class="c">#break</span>
657        <span class="n">length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span>
658        <span class="k">if</span> <span class="n">length</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
659            <span class="k">return</span>
660        <span class="n">param_cbox</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
661        <span class="n">param_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
662        <span class="c">## insert only fittable paramaters</span>
663        <span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">param_list</span><span class="p">:</span>
664            <span class="n">param_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">),</span> <span class="n">model</span><span class="p">)</span>
665
666        <span class="n">param_cbox</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
667        <span class="bp">self</span><span class="o">.</span><span class="n">btRemove</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
668        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
669        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
670       
671    <span class="k">def</span> <span class="nf">_on_select_param</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
672        <span class="sd">&quot;&quot;&quot;</span>
673<span class="sd">        Store the appropriate constraint in the page_finder</span>
674<span class="sd">        &quot;&quot;&quot;</span>
675        <span class="c">##This way PC/MAC both work, instead of using event.GetClientData().</span>
676        <span class="c">#n = self.param_cbox.GetCurrentSelection()</span>
677        <span class="c">#model = self.param_cbox.GetClientData(n)</span>
678        <span class="c">#param = event.GetString()</span>
679     
680        <span class="n">length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">)</span>
681        <span class="k">if</span> <span class="n">length</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
682            <span class="k">return</span>
683        <span class="n">egal_txt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
684        <span class="n">egal_txt</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
685       
686        <span class="n">ctl2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">[</span><span class="n">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span>
687        <span class="n">ctl2</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
688       
689    <span class="k">def</span> <span class="nf">_onAdd_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
690        <span class="sd">&quot;&quot;&quot;</span>
691<span class="sd">        Add another line for constraint</span>
692<span class="sd">        &quot;&quot;&quot;</span>
693        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
694            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Select Yes to add Constraint &quot;</span>
695            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
696            <span class="k">return</span>
697        <span class="c">## check that a constraint is added</span>
698        <span class="c"># before allow to add another constraint</span>
699        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">:</span>
700            <span class="n">model_cbox</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
701            <span class="k">if</span> <span class="n">model_cbox</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
702                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Select a model Name! &quot;</span>
703                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
704                <span class="k">return</span> 
705            <span class="n">param_cbox</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
706            <span class="k">if</span> <span class="n">param_cbox</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
707                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Select a parameter Name! &quot;</span>
708                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
709                <span class="k">return</span> 
710            <span class="n">ctl2</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
711            <span class="k">if</span> <span class="n">ctl2</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
712                <span class="n">model</span> <span class="o">=</span> <span class="n">param_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span>\
713                                            <span class="n">param_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">())</span>
714                <span class="k">if</span> <span class="n">model</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
715                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Enter a constraint for </span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="s">! &quot;</span><span class="o">%</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> 
716                                                        <span class="n">param_cbox</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span>
717                <span class="k">else</span><span class="p">:</span>
718                     <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Enter a constraint&quot;</span>
719                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
720                <span class="k">return</span>
721        <span class="c">## some model or parameters can be constrained</span>
722        <span class="bp">self</span><span class="o">.</span><span class="n">_show_constraint</span><span class="p">()</span>
723        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
724        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
725        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
726       
727    <span class="k">def</span> <span class="nf">_fill_sizer_fit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
728        <span class="sd">&quot;&quot;&quot;</span>
729<span class="sd">        Draw fit button</span>
730<span class="sd">        &quot;&quot;&quot;</span>
731        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
732        <span class="n">box_description</span><span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Fit &quot;</span><span class="p">)</span>
733        <span class="n">boxsizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">box_description</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
734        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
735         
736        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&#39;Fit&#39;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DefaultSize</span><span class="p">)</span>
737        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onFit</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
738        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Perform fit.&quot;</span><span class="p">)</span>
739        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
740            <span class="n">text</span> <span class="o">=</span> <span class="s">&quot; Fit in Parallel all Data set and model selected.</span><span class="se">\n</span><span class="s">&quot;</span>
741        <span class="k">else</span><span class="p">:</span>
742            <span class="n">text</span> <span class="o">=</span> <span class="s">&quot;     Note: Park fitting engine will be used automatically. </span><span class="se">\n</span><span class="s">&quot;</span>
743            <span class="n">text</span> <span class="o">+=</span> <span class="s">&quot;     This page requires at least one FitPage with a data </span><span class="se">\n</span><span class="s">&quot;</span>
744            <span class="n">text</span> <span class="o">+=</span> <span class="s">&quot;       and a model set for fitting.&quot;</span>
745            <span class="c">#text+= &quot;automatically for more than 2 combinations checked&quot;</span>
746        <span class="n">text_hint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
747       
748        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">text_hint</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
749        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
750       
751        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span><span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
752        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
753        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
754       
755    <span class="k">def</span> <span class="nf">_fill_sizer_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
756        <span class="sd">&quot;&quot;&quot;</span>
757<span class="sd">        Fill sizer containing constraint info</span>
758<span class="sd">        &quot;&quot;&quot;</span>
759        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Select at least 2 model to add constraint &quot;</span>
760        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
761       
762        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
763        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
764            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
765                <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
766            <span class="k">return</span>
767        <span class="n">box_description</span><span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Fit Constraints&quot;</span><span class="p">)</span>
768        <span class="n">boxsizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">box_description</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
769        <span class="n">sizer_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
770        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
771        <span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
772        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
773       
774        <span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;No&#39;</span><span class="p">,</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
775                                              <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RB_GROUP</span><span class="p">)</span>
776        <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Yes&#39;</span><span class="p">,</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span>
777        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_constraint</span><span class="p">,</span>
778                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
779        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_constraint</span><span class="p">,</span>
780                  <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
781        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
782            <span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
783            <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
784        <span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
785        <span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
786       
787        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot; Model&quot;</span><span class="p">))</span>
788        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">))</span>
789        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot; Parameter&quot;</span><span class="p">))</span>
790        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">))</span>
791        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s">&quot; Add Constraint?&quot;</span><span class="p">)</span> <span class="p">)</span>
792        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">))</span>
793        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">show_constraint</span><span class="p">)</span>
794        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">hide_constraint</span><span class="p">)</span>
795        <span class="n">sizer_title</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">))</span>
796       
797        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&#39;Add&#39;</span><span class="p">)</span>
798        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onAdd_constraint</span><span class="p">,</span>
799                        <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
800        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Add another constraint?&quot;</span><span class="p">)</span>
801        <span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
802     
803        <span class="n">text_hint</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
804                                  <span class="s">&quot;Example: [M0][paramter] = M1.parameter&quot;</span><span class="p">)</span>
805        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">text_hint</span><span class="p">,</span> <span class="mi">0</span> <span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
806        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btAdd</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
807       
808        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_title</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span><span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
809        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer_all_constraints</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span>
810                      <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
811        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer_constraints</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span>
812                      <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
813        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="n">flag</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="n">border</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
814       
815        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
816        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
817       
818        <span class="c">#self.SetScrollbars(20,20,25,65)</span>
819   
820    <span class="k">def</span> <span class="nf">_set_constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
821        <span class="sd">&quot;&quot;&quot;</span>
822<span class="sd">        get values from the constrainst textcrtl ,parses them into model name</span>
823<span class="sd">        parameter name and parameters values.</span>
824<span class="sd">        store them in a list self.params .when when params is not empty</span>
825<span class="sd">        set_model uses it to reset the appropriate model</span>
826<span class="sd">        and its appropriates parameters</span>
827<span class="sd">        &quot;&quot;&quot;</span>
828        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraints_list</span><span class="p">:</span>
829            <span class="n">select0</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
830            <span class="k">if</span> <span class="n">select0</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">:</span>
831                <span class="k">continue</span>
832            <span class="n">model</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">select0</span><span class="p">)</span>
833            <span class="n">select1</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
834            <span class="k">if</span> <span class="n">select1</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">:</span>
835                <span class="k">continue</span>
836            <span class="n">param</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="n">select1</span><span class="p">)</span>
837            <span class="n">constraint</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
838            <span class="k">if</span> <span class="n">param</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
839                <span class="n">param</span> <span class="o">=</span> <span class="bp">None</span>
840                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Constraint will be ignored!. missing parameters&quot;</span>
841                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; in combobox to set constraint! &quot;</span>
842                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
843            <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">constraint_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
844                <span class="k">if</span> <span class="n">model</span> <span class="o">==</span> <span class="n">value</span><span class="p">:</span>
845                    <span class="k">if</span> <span class="n">constraint</span> <span class="o">==</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
846                        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Constraint will be ignored!. missing value&quot;</span>
847                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; in textcrtl to set constraint! &quot;</span>
848                        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span>
849                                     <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
850                        <span class="n">constraint</span> <span class="o">=</span> <span class="bp">None</span>
851                    <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_param2fit</span><span class="p">():</span>
852                        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot; Checking constraint for parameter: </span><span class="si">%s</span><span class="s"> &quot;</span><span class="p">,</span> <span class="n">param</span>
853                        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span>
854                                     <span class="n">StatusEvent</span><span class="p">(</span><span class="n">info</span><span class="o">=</span><span class="s">&quot;info&quot;</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
855                    <span class="k">else</span><span class="p">:</span>
856                        <span class="n">model_name</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">()</span>
857                        <span class="n">fitpage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_fit_tab_caption</span><span class="p">()</span>
858                        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;All constrainted parameters must be set &quot;</span>
859                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; adjustable: &#39;</span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">model_name</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span>
860                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;is NOT checked in &#39;</span><span class="si">%s</span><span class="s">&#39;. &quot;</span> <span class="o">%</span> <span class="n">fitpage</span>
861                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; Please check it to fit or&quot;</span>
862                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; remove the line of the constraint.&quot;</span>
863                        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span>
864                                <span class="n">StatusEvent</span><span class="p">(</span><span class="n">info</span><span class="o">=</span><span class="s">&quot;error&quot;</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
865                        <span class="k">return</span> <span class="bp">False</span>
866                       
867                    <span class="k">for</span> <span class="n">fid</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">iterkeys</span><span class="p">():</span>
868                        <span class="c"># wrap in param/constraint in str() to remove unicode</span>
869                        <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">set_model_param</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">param</span><span class="p">),</span>
870                                                        <span class="nb">str</span><span class="p">(</span><span class="n">constraint</span><span class="p">),</span> <span class="n">fid</span><span class="o">=</span><span class="n">fid</span><span class="p">)</span>
871                    <span class="k">break</span>
872        <span class="k">return</span> <span class="bp">True</span>
873   
874    <span class="k">def</span> <span class="nf">_fill_sizer_model_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sizer</span><span class="p">):</span>
875        <span class="sd">&quot;&quot;&quot;</span>
876<span class="sd">        Receive a dictionary containing information to display model name</span>
877<span class="sd">        &quot;&quot;&quot;</span>
878        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
879        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
880        <span class="nb">list</span> <span class="o">=</span> <span class="p">[]</span>
881        <span class="n">sizer</span><span class="o">.</span><span class="n">Clear</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
882       
883        <span class="n">new_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;  Model Title &#39;</span><span class="p">,</span>
884                                 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="p">)</span>
885        <span class="n">new_name</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&#39;orange&#39;</span><span class="p">)</span>
886        <span class="n">new_name</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
887        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">new_name</span><span class="p">,(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
888                            <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
889        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">2</span>
890        <span class="n">model_type</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;  Model &#39;</span><span class="p">)</span>
891        <span class="n">model_type</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&#39;grey&#39;</span><span class="p">)</span>
892        <span class="n">model_type</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
893        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">model_type</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
894                            <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
895        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
896        <span class="n">data_used</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;  Data &#39;</span><span class="p">)</span>
897        <span class="n">data_used</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&#39;grey&#39;</span><span class="p">)</span>
898        <span class="n">data_used</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
899        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">data_used</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
900                            <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
901        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
902        <span class="n">tab_used</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;  FitPage &#39;</span><span class="p">)</span>
903        <span class="n">tab_used</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&#39;grey&#39;</span><span class="p">)</span>
904        <span class="n">tab_used</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
905        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tab_used</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
906                            <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
907        <span class="k">for</span> <span class="nb">id</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
908            <span class="k">if</span> <span class="nb">id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">opened_pages</span><span class="p">:</span>
909                <span class="k">continue</span>
910
911            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_page_by_id</span><span class="p">(</span><span class="nb">id</span><span class="p">)</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
912                <span class="k">continue</span>
913           
914            <span class="n">data_list</span> <span class="o">=</span> <span class="p">[]</span>
915            <span class="n">model_list</span> <span class="o">=</span> <span class="p">[]</span>
916            <span class="c"># get data name and model objetta</span>
917            <span class="k">for</span> <span class="n">fitproblem</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">get_fit_problem</span><span class="p">():</span>
918               
919                <span class="n">data</span> <span class="o">=</span> <span class="n">fitproblem</span><span class="o">.</span><span class="n">get_fit_data</span><span class="p">()</span>
920                <span class="k">if</span> <span class="ow">not</span> <span class="n">data</span><span class="o">.</span><span class="n">is_data</span><span class="p">:</span>
921                    <span class="k">continue</span>
922                <span class="n">name</span> <span class="o">=</span> <span class="s">&#39;-&#39;</span>
923                <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">data</span><span class="o">.</span><span class="n">is_data</span><span class="p">:</span>
924                    <span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
925                <span class="n">data_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
926                   
927                <span class="n">model</span> <span class="o">=</span> <span class="n">fitproblem</span><span class="o">.</span><span class="n">get_model</span><span class="p">()</span>
928                <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
929                    <span class="k">continue</span>
930                <span class="n">model_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
931           
932            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">model_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
933                <span class="k">continue</span>
934            <span class="c"># Draw sizer</span>
935            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
936            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
937            <span class="n">model</span> <span class="o">=</span> <span class="n">model_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
938            <span class="n">name</span> <span class="o">=</span> <span class="s">&#39;_&#39;</span>
939            <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
940                <span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
941            <span class="n">cb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
942            <span class="n">cb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
943            <span class="n">cb</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">data</span><span class="o">.</span><span class="n">is_data</span><span class="p">)</span>
944            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">cb</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> 
945                       <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
946            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cb</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_model_name</span><span class="p">)</span>
947            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">2</span> 
948            <span class="nb">type</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
949            <span class="n">model_type</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="nb">type</span><span class="p">))</span>
950            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">model_type</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
951                      <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
952            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">batch_on</span><span class="p">:</span>
953                <span class="n">data_used</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
954                <span class="n">data_used</span><span class="o">.</span><span class="n">AppendItems</span><span class="p">(</span><span class="n">data_list</span><span class="p">)</span>
955                <span class="n">data_used</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
956            <span class="k">else</span><span class="p">:</span>
957                <span class="n">data_used</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">data_list</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
958           
959            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
960            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">data_used</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
961                      <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
962            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
963            <span class="n">caption</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">get_fit_tab_caption</span><span class="p">()</span>
964            <span class="n">tab_caption_used</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">caption</span><span class="p">))</span>
965            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tab_caption_used</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
966                      <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
967           
968            <span class="bp">self</span><span class="o">.</span><span class="n">model_list</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">cb</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">model</span><span class="p">])</span>
969           
970        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
971        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
972                  <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
973        <span class="n">sizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
974   
975<div class="viewcode-block" id="SimultaneousFitPage.on_set_focus"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.fitting.html#sas.perspectives.fitting.simfitpage.SimultaneousFitPage.on_set_focus">[docs]</a>    <span class="k">def</span> <span class="nf">on_set_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
976        <span class="sd">&quot;&quot;&quot;</span>
977<span class="sd">        The  derivative class is on focus if implemented</span>
978<span class="sd">        &quot;&quot;&quot;</span>
979        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
980            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
981                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">PanelOnFocusEvent</span><span class="p">(</span><span class="n">panel</span><span class="o">=</span><span class="bp">self</span><span class="p">))</span>
982            <span class="bp">self</span><span class="o">.</span><span class="n">page_finder</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">get_page_finder</span><span class="p">()</span></div></div>
983</pre></div>
984
985          </div>
986        </div>
987      </div>
988      <div class="sphinxsidebar">
989        <div class="sphinxsidebarwrapper">
990<div id="searchbox" style="display: none">
991  <h3>Quick search</h3>
992    <form class="search" action="../../../../search.html" method="get">
993      <input type="text" name="q" />
994      <input type="submit" value="Go" />
995      <input type="hidden" name="check_keywords" value="yes" />
996      <input type="hidden" name="area" value="default" />
997    </form>
998    <p class="searchtip" style="font-size: 90%">
999    Enter search terms or a module, class or function name.
1000    </p>
1001</div>
1002<script type="text/javascript">$('#searchbox').show(0);</script>
1003        </div>
1004      </div>
1005      <div class="clearer"></div>
1006    </div>
1007    <div class="related">
1008      <h3>Navigation</h3>
1009      <ul>
1010        <li class="right" style="margin-right: 10px">
1011          <a href="../../../../genindex.html" title="General Index"
1012             >index</a></li>
1013        <li class="right" >
1014          <a href="../../../../py-modindex.html" title="Python Module Index"
1015             >modules</a> |</li>
1016        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1017          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
1018          <li><a href="../fitting.html" >sas.perspectives.fitting</a> &raquo;</li> 
1019      </ul>
1020    </div>
1021    <div class="footer">
1022        &copy; Copyright 2013, The SasView Project.
1023      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1024    </div>
1025  </body>
1026</html>
Note: See TracBrowser for help on using the repository browser.