source: sasview/_modules/sas/perspectives/invariant/invariant_details.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: 100.1 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.invariant.invariant_details &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.invariant" href="../invariant.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="../invariant.html" accesskey="U">sas.perspectives.invariant</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.invariant.invariant_details</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    Invariant panel</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="kn">import</span> <span class="nn">wx</span>
56<span class="kn">import</span> <span class="nn">sys</span>
57
58<span class="kn">from</span> <span class="nn">sas.guiframe.utils</span> <span class="kn">import</span> <span class="n">format_number</span>
59<span class="kn">from</span> <span class="nn">invariant_widgets</span> <span class="kn">import</span> <span class="n">OutputTextCtrl</span>
60<span class="c"># Dimensions related to chart</span>
61<span class="n">RECTANGLE_WIDTH</span>  <span class="o">=</span> <span class="mf">400.0</span> 
62<span class="n">RECTANGLE_HEIGHT</span> <span class="o">=</span> <span class="mi">20</span>
63<span class="c">#Invariant panel size </span>
64<span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">76</span>
65
66<span class="c">#scale to use for a bar of value zero</span>
67<span class="n">RECTANGLE_SCALE</span>  <span class="o">=</span> <span class="mf">0.0001</span>
68<span class="n">DEFAULT_QSTAR</span> <span class="o">=</span> <span class="mf">1.0</span> 
69 
70<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;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
71    <span class="n">_STATICBOX_WIDTH</span> <span class="o">=</span> <span class="mi">450</span>
72    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">500</span>
73    <span class="n">PANEL_HEIGHT</span> <span class="o">=</span> <span class="mi">430</span>
74    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
75<span class="k">else</span><span class="p">:</span>
76    <span class="n">_STATICBOX_WIDTH</span> <span class="o">=</span> <span class="mi">480</span>
77    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">530</span>
78    <span class="n">PANEL_HEIGHT</span> <span class="o">=</span> <span class="mi">430</span>
79    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
80   
81<span class="n">ERROR_COLOR</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span>  <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
82<span class="n">EXTRAPOLATION_COLOR</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">169</span><span class="p">,</span>  <span class="mi">169</span><span class="p">,</span> <span class="mi">168</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
83<span class="n">INVARIANT_COLOR</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">67</span><span class="p">,</span>  <span class="mi">208</span><span class="p">,</span>  <span class="mi">128</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>   
84 
85 
86<div class="viewcode-block" id="InvariantContainer"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantContainer">[docs]</a><span class="k">class</span> <span class="nc">InvariantContainer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Object</span><span class="p">):</span>
87    <span class="sd">&quot;&quot;&quot;</span>
88<span class="sd">    This class stores some values resulting resulting from invariant</span>
89<span class="sd">    calculations. Given the value of total invariant, this class can also </span>
90<span class="sd">    determine the percentage of invariants resulting from extrapolation.</span>
91<span class="sd">    &quot;&quot;&quot;</span>
92    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
93        <span class="c">#invariant at low range</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low</span> <span class="o">=</span> <span class="bp">None</span>
95        <span class="c">#invariant at low range error</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_err</span> <span class="o">=</span> <span class="bp">None</span>
97        <span class="c">#invariant </span>
98        <span class="bp">self</span><span class="o">.</span><span class="n">qstar</span> <span class="o">=</span> <span class="bp">None</span>
99        <span class="c">#invariant error</span>
100        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_err</span> <span class="o">=</span> <span class="bp">None</span>
101        <span class="c">#invariant at high range</span>
102        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high</span> <span class="o">=</span> <span class="bp">None</span>
103        <span class="c">#invariant at high range error</span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_err</span> <span class="o">=</span> <span class="bp">None</span>
105        <span class="c">#invariant total</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span> <span class="o">=</span> <span class="bp">None</span>
107        <span class="c">#invariant error</span>
108        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_total_err</span> <span class="o">=</span> <span class="bp">None</span>
109        <span class="c">#scale</span>
110        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">=</span> <span class="bp">None</span>
111        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">=</span> <span class="bp">None</span>
112        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">=</span> <span class="bp">None</span>
113        <span class="c"># warning message</span>
114        <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">False</span>
115        <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="s">&quot;No Details on calculations available...</span><span class="se">\n</span><span class="s">&quot;</span>
116       
117<div class="viewcode-block" id="InvariantContainer.compute_percentage"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantContainer.compute_percentage">[docs]</a>    <span class="k">def</span> <span class="nf">compute_percentage</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
118        <span class="sd">&quot;&quot;&quot;</span>
119<span class="sd">        Compute percentage of each invariant</span>
120<span class="sd">        &quot;&quot;&quot;</span>
121        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
122            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">=</span> <span class="bp">None</span>
123            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low</span> <span class="o">=</span> <span class="bp">None</span>
124            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high</span> <span class="o">=</span> <span class="bp">None</span>
125            <span class="bp">self</span><span class="o">.</span><span class="n">check_values</span><span class="p">()</span>
126            <span class="k">return</span> 
127       
128        <span class="c">#compute invariant percentage</span>
129        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
130            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">=</span> <span class="bp">None</span>
131        <span class="k">else</span><span class="p">:</span>
132            <span class="k">try</span><span class="p">:</span>
133                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar</span><span class="p">)</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span><span class="p">)</span>
134            <span class="k">except</span><span class="p">:</span>
135                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">=</span> <span class="s">&#39;error&#39;</span>
136        <span class="c">#compute low q invariant percentage</span>
137        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
138            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">=</span> <span class="bp">None</span>
139        <span class="k">else</span><span class="p">:</span>
140            <span class="k">try</span><span class="p">:</span>
141                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_low</span><span class="p">)</span>\
142                                            <span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span><span class="p">)</span>
143            <span class="k">except</span><span class="p">:</span>
144                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">=</span> <span class="s">&#39;error&#39;</span>
145        <span class="c">#compute high q invariant percentage</span>
146        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
147            <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">=</span> <span class="bp">None</span>
148        <span class="k">else</span><span class="p">:</span>
149            <span class="k">try</span><span class="p">:</span>
150                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_high</span><span class="p">)</span>\
151                                                <span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span><span class="p">)</span>
152            <span class="k">except</span><span class="p">:</span>
153                <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">=</span> <span class="s">&#39;error&#39;</span>
154        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">check_values</span><span class="p">)</span>
155   </div>
156<div class="viewcode-block" id="InvariantContainer.check_values"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantContainer.check_values">[docs]</a>    <span class="k">def</span> <span class="nf">check_values</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
157        <span class="sd">&quot;&quot;&quot;</span>
158<span class="sd">        check the validity if invariant</span>
159<span class="sd">        &quot;&quot;&quot;</span>
160        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
161            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="s">&quot;Invariant not calculated.</span><span class="se">\n</span><span class="s">&quot;</span>
162            <span class="k">return</span> 
163        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_total</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
164            <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
165            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="s">&quot;Invariant is zero. </span><span class="se">\n</span><span class="s">&quot;</span>
166            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot;The calculations are likely &quot;</span>
167            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot;to be unreliable!</span><span class="se">\n</span><span class="s">&quot;</span>
168            <span class="k">return</span> 
169        <span class="c">#warning to the user when the extrapolated invariant is greater than %5</span>
170        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
171        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
172            <span class="k">try</span><span class="p">:</span>
173                <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar</span><span class="p">)</span>
174            <span class="k">except</span><span class="p">:</span>
175                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
176                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&#39;Error occurred when computing invariant from data.</span><span class="se">\n</span><span class="s"> &#39;</span>
177        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_percent</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
178            <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
179            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Invariant Q  contribution is greater &quot;</span>
180            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 100% .</span><span class="se">\n</span><span class="s">&quot;</span>
181        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
182            <span class="k">try</span><span class="p">:</span>
183                <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_low</span><span class="p">)</span>
184            <span class="k">except</span><span class="p">:</span>
185                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
186                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Error occurred when computing extrapolated invariant&quot;</span>
187                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; at low-Q region.</span><span class="se">\n</span><span class="s">&quot;</span>
188        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="p">:</span>
189            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">&gt;=</span> <span class="mf">0.05</span><span class="p">:</span>
190                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
191                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at Low Q is higher &quot;</span>
192                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 5</span><span class="si">% o</span><span class="s">f the invariant.</span><span class="se">\n</span><span class="s">&quot;</span>
193            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
194                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
195                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at Low Q &lt; 0.</span><span class="se">\n</span><span class="s">&quot;</span>
196            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
197                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
198                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at Low Q is greater &quot;</span>
199                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 100% .</span><span class="se">\n</span><span class="s">&quot;</span>
200        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
201            <span class="k">try</span><span class="p">:</span>
202                <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_high</span><span class="p">)</span>
203            <span class="k">except</span><span class="p">:</span>
204                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
205                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&#39;Error occurred when computing extrapolated&#39;</span>
206                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&#39; invariant at high-Q region.</span><span class="se">\n</span><span class="s">&#39;</span>
207        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
208            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">&gt;=</span> <span class="mf">0.05</span><span class="p">:</span>
209                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
210                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at High Q is higher &quot;</span>
211                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 5</span><span class="si">% o</span><span class="s">f the invariant.</span><span class="se">\n</span><span class="s">&quot;</span>
212            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
213                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
214                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at High Q &lt; 0.</span><span class="se">\n</span><span class="s">&quot;</span>
215            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
216                <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
217                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Extrapolated contribution at High Q is greater &quot;</span>
218                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 100% .</span><span class="se">\n</span><span class="s">&quot;</span>
219        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">None</span><span class="p">,</span> <span class="s">&quot;error&quot;</span><span class="p">])</span> <span class="ow">and</span> \
220            <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">None</span><span class="p">,</span> <span class="s">&quot;error&quot;</span><span class="p">])</span>\
221            <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_low_percent</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_high_percent</span> <span class="o">&gt;=</span> <span class="mf">0.05</span><span class="p">:</span>
222            <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span> <span class="o">=</span> <span class="bp">True</span>
223            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;The sum of all extrapolated contributions is higher &quot;</span>
224            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;than 5</span><span class="si">% o</span><span class="s">f the invariant.</span><span class="se">\n</span><span class="s">&quot;</span>
225           
226        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">existing_warning</span><span class="p">:</span>
227            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
228            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="n">msg</span> 
229            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot;The calculations are likely to be&quot;</span>
230            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot; unreliable!</span><span class="se">\n</span><span class="s">&quot;</span>
231        <span class="k">else</span><span class="p">:</span>
232            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="s">&quot;No Details on calculations available...</span><span class="se">\n</span><span class="s">&quot;</span>
233            </div></div>
234<div class="viewcode-block" id="InvariantDetailsPanel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel">[docs]</a><span class="k">class</span> <span class="nc">InvariantDetailsPanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
235    <span class="sd">&quot;&quot;&quot;</span>
236<span class="sd">    This panel describes proportion of invariants </span>
237<span class="sd">    &quot;&quot;&quot;</span>
238    <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="o">=</span><span class="bp">None</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">qstar_container</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
239                                    <span class="n">title</span><span class="o">=</span><span class="s">&quot;Invariant Details&quot;</span><span class="p">,</span>
240                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">PANEL_WIDTH</span><span class="p">,</span> <span class="n">PANEL_HEIGHT</span><span class="p">)):</span>
241        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</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="o">=</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> <span class="n">title</span><span class="o">=</span><span class="n">title</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">)</span>
242       
243        <span class="c">#Font size </span>
244        <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>
245        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
246        <span class="c">#self.qstar_container</span>
247        <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span> <span class="o">=</span> <span class="n">qstar_container</span>
248        <span class="c">#warning message</span>
249        <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">warning_msg</span>
250   
251        <span class="c">#Define scale of each bar</span>
252        <span class="bp">self</span><span class="o">.</span><span class="n">low_inv_percent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_low_percent</span>
253        <span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_scale</span><span class="p">(</span><span class="n">percentage</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">low_inv_percent</span><span class="p">,</span>
254                                         <span class="n">scale_name</span><span class="o">=</span><span class="s">&quot;Extrapolated at Low Q&quot;</span><span class="p">)</span>
255        <span class="bp">self</span><span class="o">.</span><span class="n">inv_percent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_percent</span>
256        <span class="bp">self</span><span class="o">.</span><span class="n">inv_scale</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_scale</span><span class="p">(</span><span class="n">percentage</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">inv_percent</span><span class="p">,</span> 
257                                            <span class="n">scale_name</span><span class="o">=</span><span class="s">&quot;Inv in Q range&quot;</span><span class="p">)</span>
258        <span class="bp">self</span><span class="o">.</span><span class="n">high_inv_percent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_high_percent</span>
259        <span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_scale</span><span class="p">(</span><span class="n">percentage</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">high_inv_percent</span><span class="p">,</span>
260                                         <span class="n">scale_name</span><span class="o">=</span><span class="s">&quot;Extrapolated at High Q&quot;</span><span class="p">)</span>
261       
262        <span class="c">#Default color the extrapolation bar is grey</span>
263        <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_low</span> <span class="o">=</span> <span class="n">EXTRAPOLATION_COLOR</span>
264        <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_high</span> <span class="o">=</span> <span class="n">EXTRAPOLATION_COLOR</span>
265        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_color</span> <span class="o">=</span> <span class="n">INVARIANT_COLOR</span>
266        <span class="c">#change color of high and low bar when necessary</span>
267        <span class="bp">self</span><span class="o">.</span><span class="n">set_color_bar</span><span class="p">()</span>
268        <span class="c">#draw the panel itself</span>
269        <span class="bp">self</span><span class="o">.</span><span class="n">_do_layout</span><span class="p">()</span>
270        <span class="bp">self</span><span class="o">.</span><span class="n">set_values</span><span class="p">()</span>
271 
272    <span class="k">def</span> <span class="nf">_define_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
273        <span class="sd">&quot;&quot;&quot;</span>
274<span class="sd">        Define main sizers needed for this panel</span>
275<span class="sd">        &quot;&quot;&quot;</span>
276        <span class="c">#Box sizers must be defined first before defining buttons/textctrls</span>
277        <span class="c"># (MAC).</span>
278        <span class="bp">self</span><span class="o">.</span><span class="n">main_sizer</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>
279        <span class="c">#Sizer related to chart</span>
280        <span class="n">chart_box</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;Invariant Chart&quot;</span><span class="p">)</span>
281        <span class="bp">self</span><span class="o">.</span><span class="n">chart_sizer</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">chart_box</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
282        <span class="bp">self</span><span class="o">.</span><span class="n">chart_sizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WIDTH</span> <span class="o">-</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">110</span><span class="p">))</span>
283        <span class="c">#Sizer related to invariant values</span>
284        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
285        <span class="n">invariant_box</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;Numerical Values&quot;</span><span class="p">)</span>
286        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_box_sizer</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">invariant_box</span><span class="p">,</span>
287                                                      <span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
288
289        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_box_sizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WIDTH</span> <span class="o">-</span> <span class="mi">50</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
290        <span class="c">#Sizer related to warning message</span>
291        <span class="n">warning_box</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;Warning&quot;</span><span class="p">)</span>
292        <span class="bp">self</span><span class="o">.</span><span class="n">warning_sizer</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">warning_box</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
293        <span class="bp">self</span><span class="o">.</span><span class="n">warning_sizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">PANEL_WIDTH</span><span class="o">-</span><span class="mi">50</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
294        <span class="c">#Sizer related to button</span>
295        <span class="bp">self</span><span class="o">.</span><span class="n">button_sizer</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>
296     
297    <span class="k">def</span> <span class="nf">_layout_shart</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
298        <span class="sd">&quot;&quot;&quot;</span>
299<span class="sd">        Draw widgets related to chart</span>
300<span class="sd">        &quot;&quot;&quot;</span>
301        <span class="bp">self</span><span class="o">.</span><span class="n">panel_chart</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
302        <span class="bp">self</span><span class="o">.</span><span class="n">panel_chart</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_PAINT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_paint</span><span class="p">)</span>
303        <span class="bp">self</span><span class="o">.</span><span class="n">chart_sizer</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">panel_chart</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">0</span><span class="p">)</span>
304       
305    <span class="k">def</span> <span class="nf">_layout_invariant</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
306        <span class="sd">&quot;&quot;&quot;</span>
307<span class="sd">        Draw widgets related to invariant</span>
308<span class="sd">        &quot;&quot;&quot;</span>
309        <span class="n">uncertainty</span> <span class="o">=</span> <span class="s">&quot;+/-&quot;</span> 
310        <span class="n">unit_invariant</span> <span class="o">=</span> <span class="s">&#39;[1/(cm * A^3)]&#39;</span>
311     
312        <span class="n">invariant_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">&#39;Q* from Data &#39;</span><span class="p">)</span>
313        <span class="n">invariant_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Invariant in the data set&#39;s Q range.&quot;</span><span class="p">)</span>
314        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
315        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Invariant in the data set&#39;s Q range.&quot;</span>
316        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
317        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_err_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
318        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Uncertainty on the invariant from data&#39;s range.&quot;</span>
319        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_err_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
320        <span class="n">invariant_units_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="n">unit_invariant</span><span class="p">)</span>
321        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Unit of the invariant from data&#39;s Q range&quot;</span>
322        <span class="n">invariant_units_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
323       
324        <span class="n">invariant_low_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">&#39;Q* from Low-Q&#39;</span><span class="p">)</span>
325        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Extrapolated invariant from low-Q range.&quot;</span>
326        <span class="n">invariant_low_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
327        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
328        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Extrapolated invariant from low-Q range.&quot;</span>
329        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
330        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_err_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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>
331                                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
332        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Uncertainty on the invariant from low-Q range.&quot;</span>
333        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_err_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
334        <span class="n">invariant_low_units_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="n">unit_invariant</span><span class="p">)</span>
335        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Unit of the extrapolated invariant from  low-Q range&quot;</span>
336        <span class="n">invariant_low_units_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
337       
338        <span class="n">invariant_high_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">&#39;Q* from High-Q&#39;</span><span class="p">)</span>
339        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Extrapolated invariant from  high-Q range&quot;</span>
340        <span class="n">invariant_high_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
341        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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>
342                                                 <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
343        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Extrapolated invariant from  high-Q range&quot;</span>
344        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
345        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_err_tcl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</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>
346                                                     <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
347        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Uncertainty on the invariant from high-Q range.&quot;</span>
348        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_err_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
349        <span class="n">invariant_high_units_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="n">unit_invariant</span><span class="p">)</span>
350        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Unit of the extrapolated invariant from  high-Q range&quot;</span>
351        <span class="n">invariant_high_units_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
352   
353        <span class="c">#Invariant low</span>
354        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
355        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span> 
356        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_low_txt</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>
357                             <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>
358        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
359        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_low_tcl</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>
360                            <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> 
361        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
362        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">uncertainty</span><span class="p">),</span>
363                         <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><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> 
364        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
365        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_low_err_tcl</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>
366                            <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>
367        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
368        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_low_units_txt</span>
369                         <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> <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> 
370        <span class="c">#Invariant </span>
371        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
372        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span> 
373        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_txt</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>
374                             <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>
375        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
376        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_tcl</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>
377                            <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> 
378        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
379        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">uncertainty</span><span class="p">),</span>
380                         <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><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> 
381        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
382        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_err_tcl</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>
383                            <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> 
384        <span class="n">ix</span> <span class="o">+=</span><span class="mi">1</span>
385        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_units_txt</span>
386                         <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><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> 
387        <span class="c">#Invariant high</span>
388        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
389        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span> 
390        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_high_txt</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>
391                             <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>
392        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_high_tcl</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>
394                            <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> 
395        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
396        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">uncertainty</span><span class="p">),</span>
397                         <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><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> 
398        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
399        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</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">invariant_high_err_tcl</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>
400                            <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> 
401        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
402        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">invariant_high_units_txt</span>
403                         <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><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>
404        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_box_sizer</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">invariant_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
405                                     <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="mi">10</span><span class="p">)</span> 
406       
407    <span class="k">def</span> <span class="nf">_layout_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
408        <span class="sd">&quot;&quot;&quot;</span>
409<span class="sd">        Draw widgets related to warning</span>
410<span class="sd">        &quot;&quot;&quot;</span>
411        <span class="c">#Warning [string]</span>
412        <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg_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="bp">self</span><span class="o">.</span><span class="n">warning_msg</span><span class="p">)</span> 
413        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">existing_warning</span><span class="p">:</span>
414            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg_txt</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="s">&#39;red&#39;</span><span class="p">)</span> 
415        <span class="bp">self</span><span class="o">.</span><span class="n">warning_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="bp">self</span><span class="o">.</span><span class="n">warning_msg_txt</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
416                                     <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>
417       
418    <span class="k">def</span> <span class="nf">_layout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
419        <span class="sd">&quot;&quot;&quot;</span>
420<span class="sd">        Draw widgets related to button</span>
421<span class="sd">        &quot;&quot;&quot;</span>
422        <span class="c">#Close button</span>
423        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
424        <span class="n">button_ok</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="nb">id</span><span class="p">,</span> <span class="s">&quot;Ok&quot;</span><span class="p">)</span>
425        <span class="n">button_ok</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Give Details on Computation&quot;</span><span class="p">)</span>
426        <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_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_close</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">)</span>
427        <span class="bp">self</span><span class="o">.</span><span class="n">button_sizer</span><span class="o">.</span><span class="n">AddMany</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">0</span> <span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">350</span><span class="p">),</span>
428                                   <span class="p">(</span><span class="n">button_ok</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">RIGHT</span><span class="p">,</span> <span class="mi">10</span><span class="p">)])</span>
429    <span class="k">def</span> <span class="nf">_do_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
430        <span class="sd">&quot;&quot;&quot;</span>
431<span class="sd">        Draw window content</span>
432<span class="sd">        &quot;&quot;&quot;</span>
433        <span class="bp">self</span><span class="o">.</span><span class="n">_define_structure</span><span class="p">()</span>
434        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_shart</span><span class="p">()</span>
435        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_invariant</span><span class="p">()</span>
436        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_warning</span><span class="p">()</span>
437        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_button</span><span class="p">()</span>
438        <span class="bp">self</span><span class="o">.</span><span class="n">main_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="bp">self</span><span class="o">.</span><span class="n">chart_sizer</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">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
439                                 <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">invariant_box_sizer</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">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
440                                  <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">warning_sizer</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">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
441                                  <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">button_sizer</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">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)])</span>
442        <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">main_sizer</span><span class="p">)</span>
443       
444       
445<div class="viewcode-block" id="InvariantDetailsPanel.set_values"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel.set_values">[docs]</a>    <span class="k">def</span> <span class="nf">set_values</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
446        <span class="sd">&quot;&quot;&quot;</span>
447<span class="sd">        Set value of txtcrtl</span>
448<span class="sd">        &quot;&quot;&quot;</span>
449        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar</span><span class="p">)</span>
450        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
451        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_err</span><span class="p">)</span>
452        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_err_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> 
453        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_low</span><span class="p">)</span>
454        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
455        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_low_err</span><span class="p">)</span>
456        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_low_err_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> 
457        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_high</span><span class="p">)</span>
458        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
459        <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qstar_container</span><span class="o">.</span><span class="n">qstar_high_err</span><span class="p">)</span>
460        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_high_err_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> 
461</div>
462<div class="viewcode-block" id="InvariantDetailsPanel.get_scale"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel.get_scale">[docs]</a>    <span class="k">def</span> <span class="nf">get_scale</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">percentage</span><span class="p">,</span> <span class="n">scale_name</span><span class="o">=</span><span class="s">&#39;scale&#39;</span><span class="p">):</span>
463        <span class="sd">&quot;&quot;&quot;</span>
464<span class="sd">        Check scale receive in this panel. </span>
465<span class="sd">        &quot;&quot;&quot;</span>
466        <span class="n">scale</span> <span class="o">=</span> <span class="n">RECTANGLE_SCALE</span>
467        <span class="k">try</span><span class="p">:</span> 
468            <span class="k">if</span> <span class="n">percentage</span> <span class="ow">in</span> <span class="p">[</span><span class="bp">None</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s">&quot;error&quot;</span><span class="p">]:</span>
469                 <span class="n">scale</span> <span class="o">=</span> <span class="n">RECTANGLE_SCALE</span>
470                 <span class="k">return</span> <span class="n">scale</span>
471            <span class="k">elif</span> <span class="n">percentage</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
472                <span class="n">scale</span> <span class="o">=</span> <span class="n">RECTANGLE_SCALE</span>
473                <span class="k">return</span> <span class="n">scale</span>
474            <span class="n">scale</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">percentage</span><span class="p">)</span>
475        <span class="k">except</span><span class="p">:</span>
476            <span class="n">scale</span> <span class="o">=</span> <span class="n">RECTANGLE_SCALE</span>
477            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot;Recieve an invalid scale for </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span>
478            <span class="bp">self</span><span class="o">.</span><span class="n">warning_msg</span> <span class="o">+=</span> <span class="s">&quot;check this value : </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">percentage</span><span class="p">)</span>
479        <span class="k">return</span>  <span class="n">scale</span>
480    </div>
481<div class="viewcode-block" id="InvariantDetailsPanel.set_color_bar"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel.set_color_bar">[docs]</a>    <span class="k">def</span> <span class="nf">set_color_bar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
482        <span class="sd">&quot;&quot;&quot;</span>
483<span class="sd">        Change the color for low and high bar when necessary</span>
484<span class="sd">        &quot;&quot;&quot;</span>
485        <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_low</span> <span class="o">=</span> <span class="n">EXTRAPOLATION_COLOR</span>
486        <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_high</span> <span class="o">=</span> <span class="n">EXTRAPOLATION_COLOR</span>
487        <span class="bp">self</span><span class="o">.</span><span class="n">invariant_color</span> <span class="o">=</span> <span class="n">INVARIANT_COLOR</span>
488        <span class="c">#warning to the user when the extrapolated invariant is greater than %5</span>
489        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span> <span class="o">&gt;=</span> <span class="mf">0.05</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
490            <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_low</span> <span class="o">=</span> <span class="n">ERROR_COLOR</span> 
491        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span> <span class="o">&gt;=</span> <span class="mf">0.05</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
492            <span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_high</span> <span class="o">=</span> <span class="n">ERROR_COLOR</span> 
493        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">inv_scale</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">inv_scale</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
494            <span class="bp">self</span><span class="o">.</span><span class="n">invariant_color</span> <span class="o">=</span> <span class="n">ERROR_COLOR</span> 
495    </div>
496<div class="viewcode-block" id="InvariantDetailsPanel.on_close"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel.on_close">[docs]</a>    <span class="k">def</span> <span class="nf">on_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
497        <span class="sd">&quot;&quot;&quot;</span>
498<span class="sd">        Close the current window</span>
499<span class="sd">        &quot;&quot;&quot;</span>
500        <span class="bp">self</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
501     </div>
502<div class="viewcode-block" id="InvariantDetailsPanel.on_paint"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.invariant.html#sas.perspectives.invariant.invariant_details.InvariantDetailsPanel.on_paint">[docs]</a>    <span class="k">def</span> <span class="nf">on_paint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
503        <span class="sd">&quot;&quot;&quot;</span>
504<span class="sd">        Draw the chart</span>
505<span class="sd">        &quot;&quot;&quot;</span>
506        <span class="n">dc</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">PaintDC</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel_chart</span><span class="p">)</span>
507        <span class="k">try</span><span class="p">:</span>
508            <span class="n">gc</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GraphicsContext</span><span class="o">.</span><span class="n">Create</span><span class="p">(</span><span class="n">dc</span><span class="p">)</span>
509        <span class="k">except</span> <span class="ne">NotImplementedError</span><span class="p">:</span>
510            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;This build of wxPython does not support &quot;</span>
511            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;the wx.GraphicsContext family of classes.&quot;</span>
512            <span class="n">dc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">25</span><span class="p">)</span>
513            <span class="k">return</span>
514        <span class="c">#Start the drawing</span>
515        <span class="n">font</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">SystemSettings</span><span class="o">.</span><span class="n">GetFont</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">SYS_DEFAULT_GUI_FONT</span><span class="p">)</span>
516        <span class="n">font</span><span class="o">.</span><span class="n">SetWeight</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">BOLD</span><span class="p">)</span>
517        <span class="n">gc</span><span class="o">.</span><span class="n">SetFont</span><span class="p">(</span><span class="n">font</span><span class="p">)</span>
518        <span class="c"># Draw a rectangle</span>
519        <span class="n">path</span> <span class="o">=</span> <span class="n">gc</span><span class="o">.</span><span class="n">CreatePath</span><span class="p">()</span>
520        <span class="n">path</span><span class="o">.</span><span class="n">AddRectangle</span><span class="p">(</span><span class="o">-</span><span class="n">RECTANGLE_WIDTH</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="n">RECTANGLE_HEIGHT</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span>
521                          <span class="n">RECTANGLE_WIDTH</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">RECTANGLE_HEIGHT</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
522        <span class="n">x_origine</span> <span class="o">=</span> <span class="mi">20</span>
523        <span class="n">y_origine</span> <span class="o">=</span> <span class="mi">15</span>
524        <span class="c">#Draw low rectangle</span>
525        <span class="n">gc</span><span class="o">.</span><span class="n">PushState</span><span class="p">()</span>       
526        <span class="n">label</span> <span class="o">=</span> <span class="s">&quot;Q* from Low-Q &quot;</span>
527        <span class="n">PathFunc</span> <span class="o">=</span> <span class="n">gc</span><span class="o">.</span><span class="n">DrawPath</span>
528        <span class="n">w</span><span class="p">,</span> <span class="n">h</span> <span class="o">=</span> <span class="n">gc</span><span class="o">.</span><span class="n">GetTextExtent</span><span class="p">(</span><span class="n">label</span><span class="p">)</span>
529        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">x_origine</span><span class="p">,</span> <span class="n">y_origine</span><span class="p">)</span>
530        <span class="c">#Translate the rectangle</span>
531        <span class="n">x_center</span> <span class="o">=</span> <span class="n">x_origine</span> <span class="o">+</span> <span class="n">RECTANGLE_WIDTH</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span><span class="o">/</span><span class="mi">2</span> <span class="o">+</span> <span class="n">w</span> <span class="o">+</span><span class="mi">10</span>
532        <span class="n">y_center</span> <span class="o">=</span> <span class="n">y_origine</span> <span class="o">+</span> <span class="n">h</span>
533        <span class="n">gc</span><span class="o">.</span><span class="n">Translate</span><span class="p">(</span><span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>   
534        <span class="n">gc</span><span class="o">.</span><span class="n">SetPen</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Pen</span><span class="p">(</span><span class="s">&quot;black&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
535        <span class="n">gc</span><span class="o">.</span><span class="n">SetBrush</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Brush</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_low</span><span class="p">))</span>
536        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_inv_percent</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
537            <span class="n">low_percent</span> <span class="o">=</span> <span class="s">&#39;Not Computed&#39;</span>
538        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">low_inv_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
539            <span class="n">low_percent</span> <span class="o">=</span> <span class="s">&#39;Error&#39;</span>
540        <span class="k">else</span><span class="p">:</span>
541            <span class="n">low_percent</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">low_inv_percent</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span><span class="o">+</span> <span class="s">&#39;%&#39;</span>
542        <span class="n">x_center</span> <span class="o">=</span> <span class="mi">20</span>
543        <span class="n">y_center</span> <span class="o">=</span> <span class="o">-</span><span class="n">h</span>
544        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="n">low_percent</span><span class="p">,</span> <span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>
545        <span class="c"># Increase width by self.low_scale</span>
546        <span class="n">gc</span><span class="o">.</span><span class="n">Scale</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">low_scale</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">)</span> 
547        <span class="n">PathFunc</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
548        <span class="n">gc</span><span class="o">.</span><span class="n">PopState</span><span class="p">()</span> 
549        <span class="c">#Draw rectangle for invariant   </span>
550        <span class="n">gc</span><span class="o">.</span><span class="n">PushState</span><span class="p">()</span>    <span class="c"># save it again</span>
551        <span class="n">y_origine</span> <span class="o">+=</span> <span class="mi">20</span>         
552        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="s">&quot;Q* from Data &quot;</span><span class="p">,</span> <span class="n">x_origine</span><span class="p">,</span> <span class="n">y_origine</span><span class="p">)</span>
553        <span class="c"># offset to the lower part of the window</span>
554        <span class="n">x_center</span> <span class="o">=</span> <span class="n">x_origine</span> <span class="o">+</span> <span class="n">RECTANGLE_WIDTH</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">inv_scale</span><span class="o">/</span><span class="mi">2</span> <span class="o">+</span> <span class="n">w</span> <span class="o">+</span> <span class="mi">10</span>
555        <span class="n">y_center</span> <span class="o">=</span> <span class="n">y_origine</span> <span class="o">+</span> <span class="n">h</span>
556        <span class="n">gc</span><span class="o">.</span><span class="n">Translate</span><span class="p">(</span><span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>
557        <span class="c"># 128 == half transparent</span>
558        <span class="n">gc</span><span class="o">.</span><span class="n">SetBrush</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Brush</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">invariant_color</span><span class="p">))</span> 
559        <span class="c"># Increase width by self.inv_scale</span>
560        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">inv_percent</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
561            <span class="n">inv_percent</span> <span class="o">=</span> <span class="s">&#39;Not Computed&#39;</span>
562        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">inv_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
563            <span class="n">inv_percent</span> <span class="o">=</span> <span class="s">&#39;Error&#39;</span>
564        <span class="k">else</span><span class="p">:</span>
565            <span class="n">inv_percent</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">inv_percent</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span><span class="o">+</span> <span class="s">&#39;%&#39;</span>
566        <span class="n">x_center</span> <span class="o">=</span> <span class="mi">20</span> 
567        <span class="n">y_center</span> <span class="o">=</span> <span class="o">-</span><span class="n">h</span>
568        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="n">inv_percent</span><span class="p">,</span> <span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>
569        <span class="n">gc</span><span class="o">.</span><span class="n">Scale</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">inv_scale</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">)</span>   
570        <span class="n">gc</span><span class="o">.</span><span class="n">DrawPath</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
571        <span class="n">gc</span><span class="o">.</span><span class="n">PopState</span><span class="p">()</span>
572        <span class="c"># restore saved state</span>
573        <span class="c">#Draw rectangle for high invariant</span>
574        <span class="n">gc</span><span class="o">.</span><span class="n">PushState</span><span class="p">()</span> 
575        <span class="n">y_origine</span> <span class="o">+=</span> <span class="mi">20</span> 
576        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="s">&quot;Q* from High-Q &quot;</span><span class="p">,</span> <span class="n">x_origine</span><span class="p">,</span> <span class="n">y_origine</span><span class="p">)</span> 
577        <span class="c">#define the position of the new rectangle</span>
578        <span class="n">x_center</span> <span class="o">=</span> <span class="n">x_origine</span> <span class="o">+</span> <span class="n">RECTANGLE_WIDTH</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span><span class="o">/</span><span class="mi">2</span> <span class="o">+</span> <span class="n">w</span> <span class="o">+</span> <span class="mi">10</span>
579        <span class="n">y_center</span> <span class="o">=</span> <span class="n">y_origine</span> <span class="o">+</span> <span class="n">h</span>
580        <span class="n">gc</span><span class="o">.</span><span class="n">Translate</span><span class="p">(</span><span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>
581        <span class="n">gc</span><span class="o">.</span><span class="n">SetBrush</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Brush</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">extrapolation_color_high</span><span class="p">))</span> 
582        <span class="c"># increase scale by self.high_scale</span>
583        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_inv_percent</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
584            <span class="n">high_percent</span> <span class="o">=</span> <span class="s">&#39;Not Computed&#39;</span>
585        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">high_inv_percent</span> <span class="o">==</span> <span class="s">&#39;error&#39;</span><span class="p">:</span>
586            <span class="n">high_percent</span> <span class="o">=</span> <span class="s">&#39;Error&#39;</span>
587        <span class="k">else</span><span class="p">:</span>
588            <span class="n">high_percent</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">high_inv_percent</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span><span class="o">+</span> <span class="s">&#39;%&#39;</span>
589        <span class="n">x_center</span> <span class="o">=</span> <span class="mi">20</span>
590        <span class="n">y_center</span> <span class="o">=</span> <span class="o">-</span><span class="n">h</span>
591        <span class="n">gc</span><span class="o">.</span><span class="n">DrawText</span><span class="p">(</span><span class="n">high_percent</span><span class="p">,</span> <span class="n">x_center</span><span class="p">,</span> <span class="n">y_center</span><span class="p">)</span>
592       
593        <span class="n">gc</span><span class="o">.</span><span class="n">Scale</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">high_scale</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">)</span> 
594        <span class="n">gc</span><span class="o">.</span><span class="n">DrawPath</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
595        <span class="n">gc</span><span class="o">.</span><span class="n">PopState</span><span class="p">()</span></div></div>
596</pre></div>
597
598          </div>
599        </div>
600      </div>
601      <div class="sphinxsidebar">
602        <div class="sphinxsidebarwrapper">
603<div id="searchbox" style="display: none">
604  <h3>Quick search</h3>
605    <form class="search" action="../../../../search.html" method="get">
606      <input type="text" name="q" />
607      <input type="submit" value="Go" />
608      <input type="hidden" name="check_keywords" value="yes" />
609      <input type="hidden" name="area" value="default" />
610    </form>
611    <p class="searchtip" style="font-size: 90%">
612    Enter search terms or a module, class or function name.
613    </p>
614</div>
615<script type="text/javascript">$('#searchbox').show(0);</script>
616        </div>
617      </div>
618      <div class="clearer"></div>
619    </div>
620    <div class="related">
621      <h3>Navigation</h3>
622      <ul>
623        <li class="right" style="margin-right: 10px">
624          <a href="../../../../genindex.html" title="General Index"
625             >index</a></li>
626        <li class="right" >
627          <a href="../../../../py-modindex.html" title="Python Module Index"
628             >modules</a> |</li>
629        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
630          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
631          <li><a href="../invariant.html" >sas.perspectives.invariant</a> &raquo;</li> 
632      </ul>
633    </div>
634    <div class="footer">
635        &copy; Copyright 2013, The SasView Project.
636      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
637    </div>
638  </body>
639</html>
Note: See TracBrowser for help on using the repository browser.