source: sasview/_modules/sas/perspectives/calculator/data_operator.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: 172.5 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.calculator.data_operator &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.calculator" href="../calculator.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="../calculator.html" accesskey="U">sas.perspectives.calculator</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.calculator.data_operator</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">GUI for the data operation</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<span class="kn">import</span> <span class="nn">time</span>
58<span class="kn">import</span> <span class="nn">numpy</span>
59<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data1D</span>
60<span class="kn">from</span> <span class="nn">sas.plottools.PlotPanel</span> <span class="kn">import</span> <span class="n">PlotPanel</span>
61<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Graph</span>
62<span class="kn">from</span> <span class="nn">sas.plottools</span> <span class="kn">import</span> <span class="n">transform</span>
63<span class="kn">from</span> <span class="nn">matplotlib.font_manager</span> <span class="kn">import</span> <span class="n">FontProperties</span>
64<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span> 
65<span class="kn">from</span> <span class="nn">sas.perspectives.calculator</span> <span class="kn">import</span> <span class="n">calculator_widgets</span> <span class="k">as</span> <span class="n">widget</span>   
66<span class="c">#Control panel width </span>
67<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>
68    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">790</span>
69    <span class="n">PANEL_HEIGTH</span> <span class="o">=</span> <span class="mi">370</span>
70    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
71    <span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">200</span>
72    <span class="n">ON_MAC</span> <span class="o">=</span> <span class="bp">False</span>
73<span class="k">else</span><span class="p">:</span>
74    <span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">230</span>
75    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">900</span>
76    <span class="n">PANEL_HEIGTH</span> <span class="o">=</span> <span class="mi">430</span>
77    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
78    <span class="n">ON_MAC</span> <span class="o">=</span> <span class="bp">True</span>
79     
80<div class="viewcode-block" id="DataOperPanel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel">[docs]</a><span class="k">class</span> <span class="nc">DataOperPanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ScrolledWindow</span><span class="p">):</span>
81    <span class="sd">&quot;&quot;&quot;</span>
82<span class="sd">    &quot;&quot;&quot;</span>
83    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
84        <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;Data Operation&quot;</span>
85        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">PANEL_WIDTH</span><span class="p">,</span> <span class="n">PANEL_HEIGTH</span><span class="p">)</span>
86        <span class="n">wx</span><span class="o">.</span><span class="n">ScrolledWindow</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
87        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
88        <span class="c">#sizers etc.</span>
89        <span class="bp">self</span><span class="o">.</span><span class="n">main_sizer</span> <span class="o">=</span> <span class="bp">None</span>
90        <span class="bp">self</span><span class="o">.</span><span class="n">name_sizer</span> <span class="o">=</span> <span class="bp">None</span>
91        <span class="bp">self</span><span class="o">.</span><span class="n">button_sizer</span> <span class="o">=</span> <span class="bp">None</span>
92        <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span> <span class="o">=</span> <span class="bp">None</span>
93        <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span> <span class="o">=</span> <span class="bp">None</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span> <span class="o">=</span> <span class="bp">None</span>
95        <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span> <span class="o">=</span> <span class="bp">None</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span> <span class="o">=</span> <span class="bp">None</span>
97        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</span> <span class="o">=</span> <span class="bp">None</span>
98        <span class="bp">self</span><span class="o">.</span><span class="n">out_pic</span> <span class="o">=</span> <span class="bp">None</span>
99        <span class="bp">self</span><span class="o">.</span><span class="n">equal_pic</span> <span class="o">=</span> <span class="bp">None</span>
100        <span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</span> <span class="o">=</span> <span class="bp">None</span>
101        <span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</span> <span class="o">=</span> <span class="bp">None</span>
102        <span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span> <span class="o">=</span> <span class="bp">None</span>
103        <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">=</span> <span class="bp">None</span>
105        <span class="c">#text grayed color</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">color</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">GetColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">SYS_COLOUR_BACKGROUND</span><span class="p">)</span>
107        <span class="c">#data</span>
108        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_datalist</span><span class="p">()</span>
109        <span class="bp">self</span><span class="o">.</span><span class="n">_do_layout</span><span class="p">()</span>
110        <span class="bp">self</span><span class="o">.</span><span class="n">fill_data_combox</span><span class="p">()</span>
111        <span class="bp">self</span><span class="o">.</span><span class="n">fill_oprator_combox</span><span class="p">()</span>
112        <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_PAINT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">set_panel_on_focus</span><span class="p">)</span>
113             
114    <span class="k">def</span> <span class="nf">_define_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
115        <span class="sd">&quot;&quot;&quot;</span>
116<span class="sd">        define initial sizer </span>
117<span class="sd">        &quot;&quot;&quot;</span>
118        <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>
119        <span class="n">title</span> <span class="o">=</span> <span class="s">&quot;Data Operation &quot;</span>
120        <span class="n">title</span> <span class="o">+=</span> <span class="s">&quot;[ + (add); - (subtract); &quot;</span>
121        <span class="n">title</span> <span class="o">+=</span> <span class="s">&quot;* (multiply); / (divide); &quot;</span>
122        <span class="n">title</span> <span class="o">+=</span> <span class="s">&quot;| (append) ]&quot;</span>
123        <span class="n">name_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="n">title</span><span class="p">)</span>
124        <span class="bp">self</span><span class="o">.</span><span class="n">name_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">name_box</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
125        <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>
126     
127    <span class="k">def</span> <span class="nf">_layout_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
128        <span class="sd">&quot;&quot;&quot;</span>
129<span class="sd">        Do the layout for data name related widgets</span>
130<span class="sd">        &quot;&quot;&quot;</span>
131        <span class="n">new_data_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>
132        <span class="n">equal_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>
133        <span class="n">old_data1_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>
134        <span class="n">operator_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>
135        <span class="n">old_data2_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>
136        <span class="n">data2_hori_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>
137        <span class="n">data_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Output Data Name&#39;</span><span class="p">)</span> 
138        <span class="n">equal_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39; =&#39;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span> 
139        <span class="n">data1_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Data1&#39;</span><span class="p">)</span>
140        <span class="n">operator_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Operator&#39;</span><span class="p">)</span>
141        <span class="n">data2_name</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Data2 (or Number)&#39;</span><span class="p">)</span>
142        <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <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="mi">25</span><span class="p">),</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span> 
143        <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Hit &#39;Enter&#39; key after typing.&quot;</span><span class="p">)</span>
144        <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="s">&#39;MyNewDataName&#39;</span><span class="p">))</span>
145        <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="o">/</span><span class="mi">3</span><span class="p">,</span> <span class="mi">25</span><span class="p">),</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span> 
146        <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Hit &#39;Enter&#39; key after typing.&quot;</span><span class="p">)</span>
147        <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="mf">1.0</span><span class="p">))</span>
148        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">25</span><span class="p">),</span> 
149                                      <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
150        <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">70</span><span class="p">,</span> <span class="mi">25</span><span class="p">),</span> 
151                                         <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
152        <span class="n">operation_tip</span> <span class="o">=</span> <span class="s">&quot;Add: +, Subtract: -, &quot;</span>
153        <span class="n">operation_tip</span> <span class="o">+=</span> <span class="s">&quot;Multiply: *, Divide: /, &quot;</span>
154        <span class="n">operation_tip</span> <span class="o">+=</span> <span class="s">&quot;Append(Combine): | &quot;</span>
155        <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">operation_tip</span><span class="p">)</span>
156        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="o">*</span><span class="mi">2</span><span class="o">/</span><span class="mi">3</span><span class="p">,</span> <span class="mi">25</span><span class="p">),</span>
157                                       <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
158
159        <span class="bp">self</span><span class="o">.</span><span class="n">out_pic</span> <span class="o">=</span> <span class="n">SmallPanel</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">True</span><span class="p">,</span> 
160                                    <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="n">_BOX_WIDTH</span><span class="p">),</span> 
161                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
162        <span class="bp">self</span><span class="o">.</span><span class="n">equal_pic</span> <span class="o">=</span> <span class="n">SmallPanel</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">True</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> 
163                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="n">_BOX_WIDTH</span><span class="p">),</span> 
164                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
165        <span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</span> <span class="o">=</span> <span class="n">SmallPanel</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">True</span><span class="p">,</span> 
166                                    <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="n">_BOX_WIDTH</span><span class="p">),</span> 
167                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
168        <span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</span> <span class="o">=</span> <span class="n">SmallPanel</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">True</span><span class="p">,</span> <span class="s">&#39;+&#39;</span><span class="p">,</span>
169                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">70</span><span class="p">,</span> <span class="n">_BOX_WIDTH</span><span class="p">),</span> 
170                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
171        <span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span> <span class="o">=</span> <span class="n">SmallPanel</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">True</span><span class="p">,</span> 
172                                    <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="n">_BOX_WIDTH</span><span class="p">),</span> 
173                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">NO_BORDER</span><span class="p">)</span>
174        <span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">equal_pic</span><span class="o">.</span><span class="n">axes</span><span class="p">:</span>
175            <span class="n">ax</span><span class="o">.</span><span class="n">set_frame_on</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
176        <span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</span><span class="o">.</span><span class="n">axes</span><span class="p">:</span>
177            <span class="n">ax</span><span class="o">.</span><span class="n">set_frame_on</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
178
179        <span class="n">new_data_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">data_name</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">3</span><span class="p">),</span>
180                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</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">3</span><span class="p">),</span>
181                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">out_pic</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">3</span><span class="p">)])</span>
182        <span class="n">equal_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="mi">13</span><span class="p">,</span> <span class="mi">13</span><span class="p">),</span> <span class="p">(</span><span class="n">equal_name</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">3</span><span class="p">),</span>
183                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">equal_pic</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">3</span><span class="p">)])</span>
184        <span class="n">old_data1_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">data1_name</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">3</span><span class="p">),</span>
185                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</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">3</span><span class="p">),</span>
186                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</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">3</span><span class="p">)])</span>
187        <span class="n">operator_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">operator_name</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">3</span><span class="p">),</span>
188                                 <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</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">3</span><span class="p">),</span>
189                                 <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</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">3</span><span class="p">)])</span>
190        <span class="n">data2_hori_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">data2_cbox</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">0</span><span class="p">),</span>
191                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</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">0</span><span class="p">)])</span>
192        <span class="n">old_data2_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">data2_name</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">3</span><span class="p">),</span>
193                                       <span class="p">(</span><span class="n">data2_hori_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">LEFT</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span>
194                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</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">3</span><span class="p">)])</span>
195        <span class="bp">self</span><span class="o">.</span><span class="n">name_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">new_data_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">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
196                                       <span class="p">(</span><span class="n">equal_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">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
197                                       <span class="p">(</span><span class="n">old_data1_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">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
198                                       <span class="p">(</span><span class="n">operator_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">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
199                                       <span class="p">(</span><span class="n">old_data2_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">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">)])</span>
200        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
201
202        <span class="bp">self</span><span class="o">.</span><span class="n">_show_numctrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
203       
204        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_name</span><span class="p">)</span>
205        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_number</span><span class="p">)</span> 
206        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_select_data1</span><span class="p">)</span> 
207        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_select_operator</span><span class="p">)</span> 
208        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_select_data2</span><span class="p">)</span>
209   
210    <span class="k">def</span> <span class="nf">_show_numctrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ctrl</span><span class="p">,</span> <span class="n">enable</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span> 
211        <span class="sd">&quot;&quot;&quot;</span>
212<span class="sd">        Show/Hide on Win</span>
213<span class="sd">        Enable/Disable on MAC</span>
214<span class="sd">        &quot;&quot;&quot;</span>
215        <span class="k">if</span> <span class="n">ON_MAC</span><span class="p">:</span>
216            <span class="n">ctrl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="n">enable</span><span class="p">)</span>
217            <span class="n">children</span> <span class="o">=</span> <span class="n">ctrl</span><span class="o">.</span><span class="n">GetChildren</span><span class="p">()</span>
218            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">children</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
219                <span class="n">ctrl</span><span class="o">.</span><span class="n">GetChildren</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetBackGroundColour</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
220            <span class="k">if</span> <span class="n">enable</span><span class="p">:</span>
221                <span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_number</span><span class="p">)</span> 
222        <span class="k">else</span><span class="p">:</span>
223            <span class="k">if</span> <span class="ow">not</span> <span class="n">ctrl</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">():</span>
224                <span class="n">ctrl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
225            <span class="n">ctrl</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="n">enable</span><span class="p">)</span>
226           
227<div class="viewcode-block" id="DataOperPanel.on_name"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_name">[docs]</a>    <span class="k">def</span> <span class="nf">on_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
228        <span class="sd">&quot;&quot;&quot;</span>
229<span class="sd">        On data name typing</span>
230<span class="sd">        &quot;&quot;&quot;</span>
231        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
232            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
233        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
234        <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">():</span>
235            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="s">&#39;white&#39;</span><span class="p">)</span>
236        <span class="k">else</span><span class="p">:</span>
237            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
238        <span class="n">text</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
239        <span class="bp">self</span><span class="o">.</span><span class="n">_check_newname</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
240    </div>
241    <span class="k">def</span> <span class="nf">_check_newname</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
242        <span class="sd">&quot;&quot;&quot;</span>
243<span class="sd">        Check name ctr strings</span>
244<span class="sd">        &quot;&quot;&quot;</span>
245        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
246        <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
247        <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
248            <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
249        <span class="k">else</span><span class="p">:</span>
250            <span class="n">text</span> <span class="o">=</span> <span class="n">name</span>
251        <span class="n">state_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_datalist</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
252        <span class="n">name_list</span> <span class="o">=</span> <span class="p">[]</span>
253        <span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">state_list</span><span class="p">:</span>
254            <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
255                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
256                <span class="n">theory</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
257                <span class="n">d_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">theory</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
258            <span class="k">else</span><span class="p">:</span>
259                <span class="n">d_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
260            <span class="n">name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d_name</span><span class="p">)</span>
261        <span class="k">if</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">name_list</span><span class="p">:</span>
262            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
263            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: The name already exists.&quot;</span>
264        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
265            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
266            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: Type the data name first.&quot;</span>
267        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span><span class="p">:</span>
268            <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
269        <span class="bp">self</span><span class="o">.</span><span class="n">name_sizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
270        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
271   
272    <span class="k">def</span> <span class="nf">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ctrl</span><span class="p">,</span> <span class="n">color</span><span class="p">):</span> 
273        <span class="sd">&quot;&quot;&quot;</span>
274<span class="sd">        Set TextCtrl color </span>
275<span class="sd">        &quot;&quot;&quot;</span>
276        <span class="k">if</span> <span class="n">ON_MAC</span><span class="p">:</span>
277            <span class="n">children</span> <span class="o">=</span> <span class="n">ctrl</span><span class="o">.</span><span class="n">GetChildren</span><span class="p">()</span>
278            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">children</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
279                <span class="n">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">color</span><span class="p">)</span> 
280        <span class="k">else</span><span class="p">:</span>
281            <span class="n">ctrl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">color</span><span class="p">)</span> 
282        <span class="bp">self</span><span class="o">.</span><span class="n">name_sizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
283                     
284<div class="viewcode-block" id="DataOperPanel.on_number"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_number">[docs]</a>    <span class="k">def</span> <span class="nf">on_number</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
285        <span class="sd">&quot;&quot;&quot;</span>
286<span class="sd">        On selecting Number for Data2</span>
287<span class="sd">        &quot;&quot;&quot;</span>
288        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
289        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
290        <span class="n">text</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
291        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
292            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">():</span>
293                <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;white&#39;</span><span class="p">)</span>
294                <span class="k">try</span><span class="p">:</span>
295                    <span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
296                    <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
297                    <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
298                <span class="k">except</span><span class="p">:</span>
299                    <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
300                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: Number requires a float number.&quot;</span>
301                    <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
302                    <span class="k">return</span>
303            <span class="k">else</span><span class="p">:</span>
304                <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
305       
306        <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
307        <span class="bp">self</span><span class="o">.</span><span class="n">check_data_inputs</span><span class="p">()</span>
308        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
309            <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
310        <span class="bp">self</span><span class="o">.</span><span class="n">draw_output</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
311        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
312        </div>
313<div class="viewcode-block" id="DataOperPanel.on_select_data1"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_select_data1">[docs]</a>    <span class="k">def</span> <span class="nf">on_select_data1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
314        <span class="sd">&quot;&quot;&quot;</span>
315<span class="sd">        On select data1</span>
316<span class="sd">        &quot;&quot;&quot;</span>
317        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
318        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
319        <span class="n">pos</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
320        <span class="n">data</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
321        <span class="k">if</span> <span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
322            <span class="n">content</span> <span class="o">=</span> <span class="s">&quot;?&quot;</span>
323            <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span> 
324        <span class="k">else</span><span class="p">:</span>
325            <span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</span><span class="o">.</span><span class="n">add_image</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
326        <span class="bp">self</span><span class="o">.</span><span class="n">check_data_inputs</span><span class="p">()</span>
327        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
328            <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
329        <span class="bp">self</span><span class="o">.</span><span class="n">draw_output</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
330        </div>
331<div class="viewcode-block" id="DataOperPanel.on_select_operator"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_select_operator">[docs]</a>    <span class="k">def</span> <span class="nf">on_select_operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
332        <span class="sd">&quot;&quot;&quot;</span>
333<span class="sd">        On Select an Operator</span>
334<span class="sd">        &quot;&quot;&quot;</span>
335        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
336        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
337        <span class="n">text</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
338        <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> 
339        <span class="bp">self</span><span class="o">.</span><span class="n">check_data_inputs</span><span class="p">()</span>
340        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
341            <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
342        <span class="bp">self</span><span class="o">.</span><span class="n">draw_output</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
343        </div>
344<div class="viewcode-block" id="DataOperPanel.on_select_data2"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_select_data2">[docs]</a>    <span class="k">def</span> <span class="nf">on_select_data2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
345        <span class="sd">&quot;&quot;&quot;</span>
346<span class="sd">        On Selecting Data2</span>
347<span class="sd">        &quot;&quot;&quot;</span>
348        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
349        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
350        <span class="n">text</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
351        <span class="bp">self</span><span class="o">.</span><span class="n">_show_numctrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="n">text</span><span class="o">==</span><span class="s">&#39;number&#39;</span><span class="p">)</span>
352        <span class="n">pos</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
353        <span class="n">data</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
354        <span class="n">content</span> <span class="o">=</span> <span class="s">&quot;?&quot;</span>
355        <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">()):</span>
356            <span class="k">if</span> <span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
357                <span class="n">content</span> <span class="o">=</span> <span class="s">&quot;?&quot;</span>
358                <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span>
359            <span class="k">else</span><span class="p">:</span>
360                <span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span><span class="o">.</span><span class="n">add_image</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
361            <span class="bp">self</span><span class="o">.</span><span class="n">check_data_inputs</span><span class="p">()</span> 
362        <span class="k">else</span><span class="p">:</span>
363            <span class="n">content</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
364            <span class="k">try</span><span class="p">:</span>
365                <span class="n">content</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
366                <span class="n">data</span> <span class="o">=</span> <span class="n">content</span>
367            <span class="k">except</span><span class="p">:</span>
368                <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
369                <span class="n">content</span> <span class="o">=</span> <span class="s">&quot;?&quot;</span>
370                <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
371            <span class="n">item</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
372            <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
373                <span class="bp">self</span><span class="o">.</span><span class="n">check_data_inputs</span><span class="p">()</span>
374               
375            <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span>   
376       
377        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
378            <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
379        <span class="bp">self</span><span class="o">.</span><span class="n">draw_output</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
380        </div>
381<div class="viewcode-block" id="DataOperPanel.put_text_pic"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.put_text_pic">[docs]</a>    <span class="k">def</span> <span class="nf">put_text_pic</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pic</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span> 
382        <span class="sd">&quot;&quot;&quot;</span>
383<span class="sd">        Put text to the pic</span>
384<span class="sd">        &quot;&quot;&quot;</span>
385        <span class="n">pic</span><span class="o">.</span><span class="n">set_content</span><span class="p">(</span><span class="n">content</span><span class="p">)</span> 
386        <span class="n">pic</span><span class="o">.</span><span class="n">add_text</span><span class="p">()</span>
387        <span class="n">pic</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
388                  </div>
389<div class="viewcode-block" id="DataOperPanel.check_data_inputs"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.check_data_inputs">[docs]</a>    <span class="k">def</span> <span class="nf">check_data_inputs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
390        <span class="sd">&quot;&quot;&quot;</span>
391<span class="sd">        Check data1 and data2 whether or not they are ready for operation</span>
392<span class="sd">        &quot;&quot;&quot;</span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="p">,</span> <span class="s">&#39;white&#39;</span><span class="p">)</span>
394        <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="p">,</span> <span class="s">&#39;white&#39;</span><span class="p">)</span>
395        <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
396        <span class="n">pos1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
397        <span class="n">data1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">pos1</span><span class="p">)</span>
398        <span class="k">if</span> <span class="n">data1</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
399            <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
400            <span class="k">return</span> <span class="n">flag</span>
401        <span class="n">pos2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
402        <span class="n">data2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">pos2</span><span class="p">)</span>
403       
404        <span class="k">if</span> <span class="n">data2</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
405            <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
406            <span class="k">return</span> <span class="n">flag</span>
407        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
408            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">():</span>
409                <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;white&#39;</span><span class="p">)</span>
410                <span class="k">try</span><span class="p">:</span>
411                    <span class="nb">float</span><span class="p">(</span><span class="n">data2</span><span class="p">)</span>
412                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;|&#39;</span><span class="p">:</span>
413                        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: This operation can not accept &quot;</span>
414                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;a float number.&quot;</span>
415                        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
416                        <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
417                        <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
418                        <span class="k">return</span> <span class="n">flag</span>
419                <span class="k">except</span><span class="p">:</span>
420                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: Number requires a float number.&quot;</span>
421                    <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
422                    <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
423                    <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
424                    <span class="k">return</span> <span class="n">flag</span>
425            <span class="k">else</span><span class="p">:</span>
426                <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">color</span> <span class="p">)</span>
427        <span class="k">elif</span> <span class="n">data1</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span> <span class="o">!=</span> <span class="n">data2</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">:</span>
428            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
429            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
430            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: Data types must be same.&quot;</span>
431            <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
432            <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
433            <span class="k">return</span> <span class="n">flag</span>
434        <span class="k">try</span><span class="p">:</span>
435            <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">make_data_out</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">data2</span><span class="p">)</span>
436        <span class="k">except</span><span class="p">:</span>
437            <span class="bp">self</span><span class="o">.</span><span class="n">_check_newname</span><span class="p">()</span>
438            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
439            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
440            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;DataOperation: Data types must be same.&quot;</span>
441            <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;error&#39;</span><span class="p">)</span>
442            <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
443            <span class="k">return</span> <span class="n">flag</span>
444        <span class="k">return</span> <span class="bp">True</span>
445    </div>
446<div class="viewcode-block" id="DataOperPanel.make_data_out"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.make_data_out">[docs]</a>    <span class="k">def</span> <span class="nf">make_data_out</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data1</span><span class="p">,</span> <span class="n">data2</span><span class="p">):</span>
447        <span class="sd">&quot;&quot;&quot;</span>
448<span class="sd">        Make a temp. data output set</span>
449<span class="sd">        &quot;&quot;&quot;</span>
450        <span class="n">output</span> <span class="o">=</span> <span class="bp">None</span>
451        <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
452        <span class="n">operator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
453        <span class="k">try</span><span class="p">:</span>
454            <span class="k">exec</span> <span class="s">&quot;output = data1 </span><span class="si">%s</span><span class="s"> data2&quot;</span><span class="o">%</span> <span class="n">operator</span>
455        <span class="k">except</span><span class="p">:</span>
456            <span class="k">raise</span>
457        <span class="k">return</span> <span class="n">output</span>
458   
459    </div>
460<div class="viewcode-block" id="DataOperPanel.draw_output"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.draw_output">[docs]</a>    <span class="k">def</span> <span class="nf">draw_output</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
461        <span class="sd">&quot;&quot;&quot;</span>
462<span class="sd">        Draw output data(temp)</span>
463<span class="sd">        &quot;&quot;&quot;</span>
464        <span class="n">out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">out_pic</span>
465        <span class="k">if</span> <span class="n">output</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
466            <span class="n">content</span> <span class="o">=</span> <span class="s">&quot;?&quot;</span>
467            <span class="bp">self</span><span class="o">.</span><span class="n">put_text_pic</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span> 
468        <span class="k">else</span><span class="p">:</span>
469            <span class="n">out</span><span class="o">.</span><span class="n">add_image</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
470        <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">name_sizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">)</span>
471        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
472        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
473                    </div>
474    <span class="k">def</span> <span class="nf">_layout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
475        <span class="sd">&quot;&quot;&quot;</span>
476<span class="sd">            Do the layout for the button widgets</span>
477<span class="sd">        &quot;&quot;&quot;</span> 
478        <span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</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="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Apply&quot;</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="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
479        <span class="n">app_tip</span> <span class="o">=</span> <span class="s">&quot;Generate the Data and send to Data Explorer.&quot;</span>
480        <span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">app_tip</span><span class="p">)</span>
481        <span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</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_click_apply</span><span class="p">)</span>
482       
483        <span class="bp">self</span><span class="o">.</span><span class="n">bt_close</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="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Close&#39;</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="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
484        <span class="bp">self</span><span class="o">.</span><span class="n">bt_close</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>
485        <span class="bp">self</span><span class="o">.</span><span class="n">bt_close</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Close this panel.&quot;</span><span class="p">)</span>
486       
487        <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="n">PANEL_WIDTH</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">25</span><span class="p">),</span>
488                                   <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</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>
489                                   <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_close</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>
490       
491    <span class="k">def</span> <span class="nf">_do_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
492        <span class="sd">&quot;&quot;&quot;</span>
493<span class="sd">        Draw the current panel</span>
494<span class="sd">        &quot;&quot;&quot;</span>
495        <span class="bp">self</span><span class="o">.</span><span class="n">_define_structure</span><span class="p">()</span>
496        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_name</span><span class="p">()</span>
497        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_button</span><span class="p">()</span>
498        <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">name_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">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
499                                <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>
500                                          <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">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">5</span><span class="p">)])</span>
501        <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>
502        <span class="bp">self</span><span class="o">.</span><span class="n">SetScrollbars</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">65</span><span class="p">)</span>
503        <span class="bp">self</span><span class="o">.</span><span class="n">SetAutoLayout</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
504   
505<div class="viewcode-block" id="DataOperPanel.set_panel_on_focus"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.set_panel_on_focus">[docs]</a>    <span class="k">def</span> <span class="nf">set_panel_on_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
506        <span class="sd">&quot;&quot;&quot;</span>
507<span class="sd">        On Focus at this window</span>
508<span class="sd">        &quot;&quot;&quot;</span>
509        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
510            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
511        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_datalist</span><span class="p">()</span>
512        <span class="k">if</span> <span class="n">ON_MAC</span><span class="p">:</span>
513            <span class="bp">self</span><span class="o">.</span><span class="n">fill_data_combox</span><span class="p">()</span>
514        <span class="k">else</span><span class="p">:</span>
515            <span class="n">children</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetChildren</span><span class="p">()</span>
516            <span class="c"># update the list only when it is on the top</span>
517            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">FindFocus</span><span class="p">()</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span>
518                <span class="bp">self</span><span class="o">.</span><span class="n">fill_data_combox</span><span class="p">()</span>
519         </div>
520<div class="viewcode-block" id="DataOperPanel.fill_oprator_combox"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.fill_oprator_combox">[docs]</a>    <span class="k">def</span> <span class="nf">fill_oprator_combox</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
521        <span class="sd">&quot;&quot;&quot;</span>
522<span class="sd">        fill the current combobox with the operator</span>
523<span class="sd">        &quot;&quot;&quot;</span>   
524        <span class="n">operator_list</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39; +&#39;</span><span class="p">,</span> <span class="s">&#39; -&#39;</span><span class="p">,</span> <span class="s">&#39; *&#39;</span><span class="p">,</span> <span class="s">&quot; /&quot;</span><span class="p">,</span> <span class="s">&quot; |&quot;</span><span class="p">]</span>
525        <span class="k">for</span> <span class="n">oper</span> <span class="ow">in</span> <span class="n">operator_list</span><span class="p">:</span>
526            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">oper</span><span class="p">))</span>
527            <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">oper</span><span class="o">.</span><span class="n">strip</span><span class="p">()))</span>
528        <span class="bp">self</span><span class="o">.</span><span class="n">operator_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
529       
530        </div>
531<div class="viewcode-block" id="DataOperPanel.fill_data_combox"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.fill_data_combox">[docs]</a>    <span class="k">def</span> <span class="nf">fill_data_combox</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
532        <span class="sd">&quot;&quot;&quot;</span>
533<span class="sd">        fill the current combobox with the available data</span>
534<span class="sd">        &quot;&quot;&quot;</span>
535        <span class="n">pos_pre1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
536        <span class="n">pos_pre2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">GetCurrentSelection</span><span class="p">()</span>
537        <span class="n">current1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">()</span>
538        <span class="n">current2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">()</span>
539        <span class="k">if</span> <span class="n">pos_pre1</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
540            <span class="n">pos_pre1</span> <span class="o">=</span> <span class="mi">0</span>
541        <span class="k">if</span> <span class="n">pos_pre2</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
542            <span class="n">pos_pre2</span> <span class="o">=</span> <span class="mi">0</span>
543        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
544        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
545
546        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">:</span>
547            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="s">&#39;No Data Available&#39;</span><span class="p">)</span>
548            <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
549            <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
550            <span class="n">pos2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="s">&#39;No Data Available&#39;</span><span class="p">)</span>
551            <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos2</span><span class="p">)</span>
552            <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
553            <span class="k">return</span>
554        <span class="n">pos1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="s">&#39;Select Data&#39;</span><span class="p">)</span>
555        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos1</span><span class="p">)</span>
556        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos1</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
557        <span class="n">pos2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="s">&#39;Select Data&#39;</span><span class="p">)</span>
558        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos2</span><span class="p">)</span>
559        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
560        <span class="n">pos3</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="s">&#39;Number&#39;</span><span class="p">)</span>
561        <span class="n">val</span> <span class="o">=</span> <span class="bp">None</span>
562        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberctr</span><span class="o">.</span><span class="n">IsEnabled</span><span class="p">()):</span>
563            <span class="k">try</span><span class="p">:</span>
564                <span class="n">val</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">numberctr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
565            <span class="k">except</span><span class="p">:</span>
566                <span class="n">val</span> <span class="o">=</span> <span class="bp">None</span>
567        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos3</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
568        <span class="n">dnames</span> <span class="o">=</span> <span class="p">[]</span>
569        <span class="n">ids</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
570        <span class="k">for</span> <span class="nb">id</span> <span class="ow">in</span> <span class="n">ids</span><span class="p">:</span>
571            <span class="k">if</span> <span class="nb">id</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
572                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
573                    <span class="n">dnames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
574                <span class="k">else</span><span class="p">:</span>
575                    <span class="n">theory_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
576                    <span class="n">theory</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
577                    <span class="n">dnames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">theory</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
578        <span class="n">ind</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">dnames</span><span class="p">)</span>
579        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ind</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
580            <span class="n">val_list</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">values</span><span class="p">())[</span><span class="n">ind</span><span class="p">]</span>
581            <span class="k">for</span> <span class="n">datastate</span> <span class="ow">in</span> <span class="n">val_list</span><span class="p">:</span>
582                <span class="n">data</span> <span class="o">=</span> <span class="n">datastate</span><span class="o">.</span><span class="n">data</span>
583                <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
584                    <span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span>
585                    <span class="n">pos1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">))</span>
586                    <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos1</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
587                    <span class="n">pos2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">))</span>
588                    <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
589                    <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">current1</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
590                      <span class="n">pos_pre1</span> <span class="o">=</span> <span class="n">pos1</span> 
591                    <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">current2</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
592                      <span class="n">pos_pre2</span> <span class="o">=</span> <span class="n">pos2</span>
593                <span class="k">try</span><span class="p">:</span>
594                    <span class="n">theory_list</span> <span class="o">=</span> <span class="n">datastate</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
595                    <span class="k">for</span> <span class="n">theory</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
596                        <span class="n">th_name</span> <span class="o">=</span> <span class="n">theory</span><span class="o">.</span><span class="n">name</span>
597                        <span class="n">posth1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">th_name</span><span class="p">))</span>
598                        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">posth1</span><span class="p">,</span> <span class="n">theory</span><span class="p">)</span>
599                        <span class="n">posth2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">th_name</span><span class="p">))</span>
600                        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetClientData</span><span class="p">(</span><span class="n">posth2</span><span class="p">,</span> <span class="n">theory</span><span class="p">)</span>
601                        <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">current1</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span><span class="p">(</span><span class="n">th_name</span><span class="p">):</span>
602                            <span class="n">pos_pre1</span> <span class="o">=</span> <span class="n">posth1</span>
603                        <span class="k">if</span> <span class="nb">str</span><span class="p">(</span><span class="n">current2</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span><span class="p">(</span><span class="n">th_name</span><span class="p">):</span>
604                            <span class="n">pos_pre2</span> <span class="o">=</span> <span class="n">posth2</span>
605                <span class="k">except</span><span class="p">:</span>
606                    <span class="k">continue</span> 
607        <span class="bp">self</span><span class="o">.</span><span class="n">data1_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos_pre1</span><span class="p">)</span>
608        <span class="bp">self</span><span class="o">.</span><span class="n">data2_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos_pre2</span><span class="p">)</span>
609    </div>
610<div class="viewcode-block" id="DataOperPanel.get_datalist"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.get_datalist">[docs]</a>    <span class="k">def</span> <span class="nf">get_datalist</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
611        <span class="sd">&quot;&quot;&quot;</span>
612<span class="sd">        &quot;&quot;&quot;</span>
613        <span class="n">data_manager</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_data_manager</span><span class="p">()</span>
614        <span class="k">if</span> <span class="n">data_manager</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
615            <span class="k">return</span>  <span class="n">data_manager</span><span class="o">.</span><span class="n">get_all_data</span><span class="p">()</span>
616        <span class="k">else</span><span class="p">:</span>
617            <span class="k">return</span> <span class="p">{}</span>
618            </div>
619<div class="viewcode-block" id="DataOperPanel.on_click_apply"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.on_click_apply">[docs]</a>    <span class="k">def</span> <span class="nf">on_click_apply</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
620        <span class="sd">&quot;&quot;&quot;   </span>
621<span class="sd">        changes are saved in data object imported to edit</span>
622<span class="sd">        &quot;&quot;&quot;</span>
623        <span class="bp">self</span><span class="o">.</span><span class="n">send_warnings</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
624        <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&#39;white&#39;</span><span class="p">)</span>
625        <span class="n">state_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_datalist</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
626        <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
627        <span class="n">name_list</span> <span class="o">=</span> <span class="p">[]</span>
628        <span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">state_list</span><span class="p">:</span>
629            <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
630                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
631                <span class="n">theory</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
632                <span class="n">d_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">theory</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
633            <span class="k">else</span><span class="p">:</span>
634                <span class="n">d_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
635            <span class="n">name_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d_name</span><span class="p">)</span>
636        <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">name_list</span><span class="p">:</span>
637            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
638            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;The Output Data Name already exists...   &quot;</span>
639            <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;Error&#39;</span><span class="p">)</span>
640            <span class="k">return</span>
641        <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;&#39;</span><span class="p">:</span>
642            <span class="bp">self</span><span class="o">.</span><span class="n">_set_textctrl_color</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_namectr</span><span class="p">,</span> <span class="s">&#39;pink&#39;</span><span class="p">)</span>
643            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Please type the output data name first...   &quot;</span>
644            <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;Error&#39;</span><span class="p">)</span>
645            <span class="k">return</span>
646        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
647            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;No Output Data has been generated...   &quot;</span>
648            <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s">&#39;Error&#39;</span><span class="p">)</span>
649            <span class="k">return</span>
650        <span class="c"># send data to data manager</span>
651        <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
652        <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">run</span> <span class="o">=</span> <span class="s">&quot;Data Operation&quot;</span>
653        <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">instrument</span> <span class="o">=</span> <span class="s">&quot;SasView&quot;</span>
654        <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span>
655        <span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">id</span> <span class="p">:</span><span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">}</span>
656        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">add_data</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
657        <span class="bp">self</span><span class="o">.</span><span class="n">name_sizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
658        <span class="bp">self</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
659        <span class="c">#must post event here</span>
660        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
661    </div>
662<div class="viewcode-block" id="DataOperPanel.disconnect_panels"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.disconnect_panels">[docs]</a>    <span class="k">def</span> <span class="nf">disconnect_panels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
663        <span class="sd">&quot;&quot;&quot;</span>
664<span class="sd">        &quot;&quot;&quot;</span>
665        <span class="bp">self</span><span class="o">.</span><span class="n">out_pic</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
666        <span class="bp">self</span><span class="o">.</span><span class="n">equal_pic</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
667        <span class="bp">self</span><span class="o">.</span><span class="n">data1_pic</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
668        <span class="bp">self</span><span class="o">.</span><span class="n">operator_pic</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
669        <span class="bp">self</span><span class="o">.</span><span class="n">data2_pic</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
670    </div>
671<div class="viewcode-block" id="DataOperPanel.on_close"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.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>
672        <span class="sd">&quot;&quot;&quot;</span>
673<span class="sd">        leave data as it is and close</span>
674<span class="sd">        &quot;&quot;&quot;</span>
675        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">OnClose</span><span class="p">()</span>
676        </div>
677<div class="viewcode-block" id="DataOperPanel.set_plot_unfocus"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.set_plot_unfocus">[docs]</a>    <span class="k">def</span> <span class="nf">set_plot_unfocus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
678        <span class="sd">&quot;&quot;&quot;</span>
679<span class="sd">        Unfocus on right click</span>
680<span class="sd">        &quot;&quot;&quot;</span>
681    </div>
682<div class="viewcode-block" id="DataOperPanel.send_warnings"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperPanel.send_warnings">[docs]</a>    <span class="k">def</span> <span class="nf">send_warnings</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="s">&#39;info&#39;</span><span class="p">):</span>
683        <span class="sd">&quot;&quot;&quot;</span>
684<span class="sd">        Send warning to status bar</span>
685<span class="sd">        &quot;&quot;&quot;</span>
686        <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">msg</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="n">info</span><span class="p">))</span>
687          </div></div>
688<div class="viewcode-block" id="SmallPanel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel">[docs]</a><span class="k">class</span> <span class="nc">SmallPanel</span><span class="p">(</span><span class="n">PlotPanel</span><span class="p">):</span>
689    <span class="sd">&quot;&quot;&quot;</span>
690<span class="sd">    PlotPanel for Quick plot and masking plot</span>
691<span class="sd">    &quot;&quot;&quot;</span>
692    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">is_number</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
693        <span class="sd">&quot;&quot;&quot;</span>
694<span class="sd">        &quot;&quot;&quot;</span> 
695        <span class="n">PlotPanel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
696        <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span> <span class="o">=</span> <span class="n">is_number</span>
697        <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">content</span>
698        <span class="bp">self</span><span class="o">.</span><span class="n">point</span> <span class="o">=</span> <span class="bp">None</span>
699        <span class="bp">self</span><span class="o">.</span><span class="n">position</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
700        <span class="bp">self</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="s">&#39;linear&#39;</span>
701        <span class="bp">self</span><span class="o">.</span><span class="n">prevXtrans</span> <span class="o">=</span> <span class="s">&quot;x&quot;</span>
702        <span class="bp">self</span><span class="o">.</span><span class="n">prevYtrans</span> <span class="o">=</span> <span class="s">&quot;y&quot;</span>
703        <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span> <span class="o">=</span> <span class="s">&quot;--&quot;</span>
704        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">([])</span>
705        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">([])</span>
706        <span class="bp">self</span><span class="o">.</span><span class="n">add_text</span><span class="p">()</span>
707        <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
708       
709<div class="viewcode-block" id="SmallPanel.set_content"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.set_content">[docs]</a>    <span class="k">def</span> <span class="nf">set_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span>
710        <span class="sd">&quot;&quot;&quot;</span>
711<span class="sd">        Set text content</span>
712<span class="sd">        &quot;&quot;&quot;</span>
713        <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
714         </div>
715<div class="viewcode-block" id="SmallPanel.add_toolbar"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.add_toolbar">[docs]</a>    <span class="k">def</span> <span class="nf">add_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
716        <span class="sd">&quot;&quot;&quot; </span>
717<span class="sd">        Add toolbar</span>
718<span class="sd">        &quot;&quot;&quot;</span>
719        <span class="c"># Not implemented</span>
720        <span class="k">pass</span>
721    </div>
722<div class="viewcode-block" id="SmallPanel.on_set_focus"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.on_set_focus">[docs]</a>    <span class="k">def</span> <span class="nf">on_set_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
723        <span class="sd">&quot;&quot;&quot;</span>
724<span class="sd">        send to the parenet the current panel on focus</span>
725<span class="sd">        &quot;&quot;&quot;</span>
726        <span class="k">pass</span>
727</div>
728<div class="viewcode-block" id="SmallPanel.add_image"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.add_image">[docs]</a>    <span class="k">def</span> <span class="nf">add_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">plot</span><span class="p">):</span>
729        <span class="sd">&quot;&quot;&quot;</span>
730<span class="sd">        Add Image</span>
731<span class="sd">        &quot;&quot;&quot;</span>
732        <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
733        <span class="bp">self</span><span class="o">.</span><span class="n">textList</span> <span class="o">=</span> <span class="p">[]</span>
734        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span> <span class="o">=</span> <span class="p">{}</span>
735        <span class="bp">self</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
736        <span class="bp">self</span><span class="o">.</span><span class="n">point</span> <span class="o">=</span> <span class="n">plot</span>
737        <span class="k">try</span><span class="p">:</span>
738            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
739            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">111</span><span class="p">)</span>
740            <span class="c">#self.figure.delaxes(self.figure.axes[1])</span>
741        <span class="k">except</span><span class="p">:</span>
742            <span class="k">pass</span>
743        <span class="k">try</span><span class="p">:</span>
744            <span class="n">name</span> <span class="o">=</span> <span class="n">plot</span><span class="o">.</span><span class="n">name</span>
745        <span class="k">except</span><span class="p">:</span>
746            <span class="n">name</span> <span class="o">=</span> <span class="n">plot</span><span class="o">.</span><span class="n">filename</span>
747        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">plot</span>
748
749        <span class="c">#init graph</span>
750        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span> <span class="o">=</span> <span class="n">Graph</span><span class="p">()</span>
751
752        <span class="c">#add plot</span>
753        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">plot</span><span class="p">)</span>
754        <span class="c">#draw        </span>
755        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
756       
757        <span class="k">try</span><span class="p">:</span>
758            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
759        <span class="k">except</span><span class="p">:</span>
760            <span class="k">pass</span>
761        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">resizing</span> <span class="o">=</span> <span class="bp">False</span>
762        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="s">&#39;both&#39;</span><span class="p">,</span> <span class="n">labelsize</span><span class="o">=</span><span class="mi">9</span><span class="p">)</span>
763        <span class="c"># Draw zero axis lines</span>
764        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span><span class="n">linewidth</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;r&#39;</span><span class="p">)</span> 
765        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">linewidth</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;r&#39;</span><span class="p">)</span>       
766
767        <span class="bp">self</span><span class="o">.</span><span class="n">erase_legend</span><span class="p">()</span>
768        <span class="k">try</span><span class="p">:</span>
769            <span class="c"># mpl &gt;= 1.1.0</span>
770            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
771        <span class="k">except</span><span class="p">:</span>
772            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
773        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
774</div>
775<div class="viewcode-block" id="SmallPanel.add_text"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.add_text">[docs]</a>    <span class="k">def</span> <span class="nf">add_text</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
776        <span class="sd">&quot;&quot;&quot;</span>
777<span class="sd">        Text in the plot</span>
778<span class="sd">        &quot;&quot;&quot;</span>
779        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
780            <span class="k">return</span>
781
782        <span class="bp">self</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
783        <span class="k">try</span><span class="p">:</span>
784            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
785            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">111</span><span class="p">)</span>
786            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
787        <span class="k">except</span><span class="p">:</span>
788            <span class="k">pass</span>
789        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">([])</span>
790        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">([])</span>
791        <span class="n">label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">content</span>
792        <span class="n">FONT</span> <span class="o">=</span> <span class="n">FontProperties</span><span class="p">()</span>
793        <span class="n">xpos</span><span class="p">,</span> <span class="n">ypos</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
794        <span class="n">font</span> <span class="o">=</span> <span class="n">FONT</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
795        <span class="n">font</span><span class="o">.</span><span class="n">set_size</span><span class="p">(</span><span class="mi">14</span><span class="p">)</span>
796
797        <span class="bp">self</span><span class="o">.</span><span class="n">textList</span> <span class="o">=</span> <span class="p">[]</span>
798        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
799        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
800       
801        <span class="k">try</span><span class="p">:</span>
802            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">!=</span> <span class="s">&#39;?&#39;</span><span class="p">:</span>
803                <span class="nb">float</span><span class="p">(</span><span class="n">label</span><span class="p">)</span>
804        <span class="k">except</span><span class="p">:</span>
805            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_frame_on</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
806        <span class="k">try</span><span class="p">:</span>
807            <span class="c"># mpl &gt;= 1.1.0</span>
808            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
809        <span class="k">except</span><span class="p">:</span>
810            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
811        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">label</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">xpos</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">ypos</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
812            <span class="n">new_text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">xpos</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">ypos</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">label</span><span class="p">),</span>
813                                           <span class="n">fontproperties</span><span class="o">=</span><span class="n">font</span><span class="p">)</span>
814            <span class="bp">self</span><span class="o">.</span><span class="n">textList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_text</span><span class="p">)</span> 
815        </div>
816<div class="viewcode-block" id="SmallPanel.erase_legend"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.erase_legend">[docs]</a>    <span class="k">def</span> <span class="nf">erase_legend</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
817        <span class="sd">&quot;&quot;&quot;</span>
818<span class="sd">        Remove Legend</span>
819<span class="sd">        &quot;&quot;&quot;</span>
820        <span class="c">#for ax in self.axes:</span>
821        <span class="bp">self</span><span class="o">.</span><span class="n">remove_legend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="p">)</span>
822                     </div>
823<div class="viewcode-block" id="SmallPanel.onMouseMotion"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.onMouseMotion">[docs]</a>    <span class="k">def</span> <span class="nf">onMouseMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
824        <span class="sd">&quot;&quot;&quot;</span>
825<span class="sd">        Disable dragging 2D image</span>
826<span class="sd">        &quot;&quot;&quot;</span>
827    </div>
828<div class="viewcode-block" id="SmallPanel.onWheel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.onWheel">[docs]</a>    <span class="k">def</span> <span class="nf">onWheel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
829        <span class="sd">&quot;&quot;&quot;</span>
830<span class="sd">        &quot;&quot;&quot;</span>
831     </div>
832<div class="viewcode-block" id="SmallPanel.onLeftDown"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.onLeftDown">[docs]</a>    <span class="k">def</span> <span class="nf">onLeftDown</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
833        <span class="sd">&quot;&quot;&quot;</span>
834<span class="sd">        Disables LeftDown</span>
835<span class="sd">        &quot;&quot;&quot;</span>
836    </div>
837<div class="viewcode-block" id="SmallPanel.onPick"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.onPick">[docs]</a>    <span class="k">def</span> <span class="nf">onPick</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
838        <span class="sd">&quot;&quot;&quot;</span>
839<span class="sd">        Remove Legend</span>
840<span class="sd">        &quot;&quot;&quot;</span>
841        <span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="p">:</span>
842            <span class="bp">self</span><span class="o">.</span><span class="n">remove_legend</span><span class="p">(</span><span class="n">ax</span><span class="p">)</span>
843                       
844    </div>
845<div class="viewcode-block" id="SmallPanel.draw"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.draw">[docs]</a>    <span class="k">def</span> <span class="nf">draw</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
846        <span class="sd">&quot;&quot;&quot;</span>
847<span class="sd">        Draw</span>
848<span class="sd">        &quot;&quot;&quot;</span>
849        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
850            <span class="k">pass</span>
851        <span class="k">else</span><span class="p">:</span>
852            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">resizing</span> <span class="o">=</span> <span class="bp">False</span>
853            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="s">&#39;both&#39;</span><span class="p">,</span> <span class="n">labelsize</span><span class="o">=</span><span class="mi">9</span><span class="p">)</span>     
854            <span class="bp">self</span><span class="o">.</span><span class="n">erase_legend</span><span class="p">()</span>
855            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span> 
856            <span class="k">try</span><span class="p">:</span>
857                <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
858            <span class="k">except</span><span class="p">:</span>
859                <span class="k">pass</span>
860           
861       </div>
862<div class="viewcode-block" id="SmallPanel.onContextMenu"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.onContextMenu">[docs]</a>    <span class="k">def</span> <span class="nf">onContextMenu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
863        <span class="sd">&quot;&quot;&quot;</span>
864<span class="sd">        Default context menu for a plot panel</span>
865<span class="sd">        &quot;&quot;&quot;</span>
866        <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>
867        <span class="n">slicerpop</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">()</span>
868        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">point</span>
869        <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span> <span class="n">Data1D</span><span class="p">):</span>
870            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Change Scale&#39;</span><span class="p">)</span>
871            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</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="bp">self</span><span class="o">.</span><span class="n">_onProperties</span><span class="p">)</span>
872        <span class="k">else</span><span class="p">:</span>
873            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Toggle Linear/Log Scale&#39;</span><span class="p">)</span>
874            <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</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="bp">self</span><span class="o">.</span><span class="n">ontogglescale</span><span class="p">)</span>     
875        <span class="k">try</span><span class="p">:</span>
876            <span class="c"># mouse event</span>
877            <span class="n">pos_evt</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetPosition</span><span class="p">()</span>
878            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ScreenToClient</span><span class="p">(</span><span class="n">pos_evt</span><span class="p">)</span>
879        <span class="k">except</span><span class="p">:</span>
880            <span class="c"># toolbar event</span>
881            <span class="n">pos_x</span><span class="p">,</span> <span class="n">pos_y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">GetPositionTuple</span><span class="p">()</span>
882            <span class="n">pos</span> <span class="o">=</span> <span class="p">(</span><span class="n">pos_x</span><span class="p">,</span> <span class="n">pos_y</span> <span class="o">+</span> <span class="mi">5</span><span class="p">)</span>
883        <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="n">slicerpop</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span>
884        </div>
885<div class="viewcode-block" id="SmallPanel.ontogglescale"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.SmallPanel.ontogglescale">[docs]</a>    <span class="k">def</span> <span class="nf">ontogglescale</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span> 
886        <span class="sd">&quot;&quot;&quot;</span>
887<span class="sd">        On toggle 2d scale</span>
888<span class="sd">        &quot;&quot;&quot;</span>
889        <span class="bp">self</span><span class="o">.</span><span class="n">_onToggleScale</span><span class="p">(</span><span class="n">event</span><span class="p">)</span> 
890        <span class="k">try</span><span class="p">:</span>
891            <span class="c"># mpl &gt;= 1.1.0</span>
892            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
893        <span class="k">except</span><span class="p">:</span>
894            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span> 
895        <span class="k">try</span><span class="p">:</span>
896            <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">delaxes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
897        <span class="k">except</span><span class="p">:</span>
898            <span class="k">pass</span>
899        </div>
900    <span class="k">def</span> <span class="nf">_onProperties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
901        <span class="sd">&quot;&quot;&quot;</span>
902<span class="sd">        when clicking on Properties on context menu ,</span>
903<span class="sd">        The Property dialog is displayed</span>
904<span class="sd">        The user selects a transformation for x or y value and</span>
905<span class="sd">        a new plot is displayed</span>
906<span class="sd">        &quot;&quot;&quot;</span>
907        <span class="nb">list</span> <span class="o">=</span> <span class="p">[]</span>
908        <span class="nb">list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">returnPlottable</span><span class="p">()</span>
909        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
910            <span class="n">first_item</span> <span class="o">=</span> <span class="nb">list</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
911            <span class="k">if</span> <span class="n">first_item</span><span class="o">.</span><span class="n">x</span> <span class="o">!=</span> <span class="p">[]:</span>
912                <span class="kn">from</span> <span class="nn">sas.plottools.PropertyDialog</span> <span class="kn">import</span> <span class="n">Properties</span>
913                <span class="n">dial</span> <span class="o">=</span> <span class="n">Properties</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;Change Scale&#39;</span><span class="p">)</span>
914                <span class="c"># type of view or model used</span>
915                <span class="n">dial</span><span class="o">.</span><span class="n">xvalue</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
916                <span class="n">dial</span><span class="o">.</span><span class="n">yvalue</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
917                <span class="n">dial</span><span class="o">.</span><span class="n">view</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
918                <span class="n">dial</span><span class="o">.</span><span class="n">xvalue</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;x&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
919                <span class="n">dial</span><span class="o">.</span><span class="n">xvalue</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;log10(x)&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
920                <span class="n">dial</span><span class="o">.</span><span class="n">yvalue</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;y&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
921                <span class="n">dial</span><span class="o">.</span><span class="n">yvalue</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;log10(y)&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
922                <span class="n">dial</span><span class="o">.</span><span class="n">view</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;--&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
923                <span class="n">dial</span><span class="o">.</span><span class="n">view</span><span class="o">.</span><span class="n">Insert</span><span class="p">(</span><span class="s">&quot;Linear y vs x&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
924                <span class="n">dial</span><span class="o">.</span><span class="n">setValues</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prevXtrans</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prevYtrans</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span><span class="p">)</span>
925                <span class="n">dial</span><span class="o">.</span><span class="n">Update</span><span class="p">()</span>
926                <span class="k">if</span> <span class="n">dial</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
927                    <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span> <span class="o">=</span> <span class="n">dial</span><span class="o">.</span><span class="n">getValues</span><span class="p">()</span>
928                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span> <span class="o">==</span> <span class="s">&quot;Linear y vs x&quot;</span><span class="p">:</span>
929                        <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">=</span> <span class="s">&quot;x&quot;</span>
930                        <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">=</span> <span class="s">&quot;y&quot;</span>
931                        <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span> <span class="o">=</span> <span class="s">&quot;--&quot;</span>
932                        <span class="n">dial</span><span class="o">.</span><span class="n">setValues</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">viewModel</span><span class="p">)</span>
933                    <span class="bp">self</span><span class="o">.</span><span class="n">_onEVT_FUNC_PROPERTY</span><span class="p">()</span>
934                <span class="n">dial</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
935         
936    <span class="k">def</span> <span class="nf">_onEVT_FUNC_PROPERTY</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">remove_fit</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
937        <span class="sd">&quot;&quot;&quot;</span>
938<span class="sd">        Receive the x and y transformation from myDialog,</span>
939<span class="sd">        Transforms x and y in View</span>
940<span class="sd">        and set the scale</span>
941<span class="sd">        &quot;&quot;&quot;</span>
942        <span class="nb">list</span> <span class="o">=</span> <span class="p">[]</span>
943        <span class="nb">list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">returnPlottable</span><span class="p">()</span>
944        <span class="c"># Changing the scale might be incompatible with</span>
945        <span class="c"># currently displayed data (for instance, going</span>
946        <span class="c"># from ln to log when all plotted values have</span>
947        <span class="c"># negative natural logs).</span>
948        <span class="c"># Go linear and only change the scale at the end.</span>
949        <span class="bp">self</span><span class="o">.</span><span class="n">set_xscale</span><span class="p">(</span><span class="s">&quot;linear&quot;</span><span class="p">)</span>
950        <span class="bp">self</span><span class="o">.</span><span class="n">set_yscale</span><span class="p">(</span><span class="s">&quot;linear&quot;</span><span class="p">)</span>
951        <span class="n">_xscale</span> <span class="o">=</span> <span class="s">&#39;linear&#39;</span>
952        <span class="n">_yscale</span> <span class="o">=</span> <span class="s">&#39;linear&#39;</span>
953        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">:</span>
954            <span class="n">item</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span><span class="p">)</span>
955            <span class="c"># control axis labels from the panel itself</span>
956            <span class="n">yname</span><span class="p">,</span> <span class="n">yunits</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get_yaxis</span><span class="p">()</span>
957            <span class="n">xname</span><span class="p">,</span> <span class="n">xunits</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">get_xaxis</span><span class="p">()</span>
958            <span class="c"># Goes through all possible scales</span>
959            <span class="c"># Goes through all possible scales</span>
960            <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x&quot;</span><span class="p">):</span>
961                <span class="n">item</span><span class="o">.</span><span class="n">transformX</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">toX</span><span class="p">,</span> <span class="n">transform</span><span class="o">.</span><span class="n">errToX</span><span class="p">)</span>
962                <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">_xaxis_transformed</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">xname</span><span class="p">,</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">xunits</span><span class="p">)</span>
963            <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
964                <span class="n">item</span><span class="o">.</span><span class="n">transformX</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">toX_pos</span><span class="p">,</span> <span class="n">transform</span><span class="o">.</span><span class="n">errToX_pos</span><span class="p">)</span>
965                <span class="n">_xscale</span> <span class="o">=</span> <span class="s">&#39;log&#39;</span>
966                <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">_xaxis_transformed</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">xname</span><span class="p">,</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">xunits</span><span class="p">)</span>
967            <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;y&quot;</span><span class="p">):</span>
968                <span class="n">item</span><span class="o">.</span><span class="n">transformY</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">toX</span><span class="p">,</span> <span class="n">transform</span><span class="o">.</span><span class="n">errToX</span><span class="p">)</span>
969                <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">_yaxis_transformed</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">yname</span><span class="p">,</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">yunits</span><span class="p">)</span>
970            <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;log10(y)&quot;</span><span class="p">):</span>
971                <span class="n">item</span><span class="o">.</span><span class="n">transformY</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">toX_pos</span><span class="p">,</span> <span class="n">transform</span><span class="o">.</span><span class="n">errToX_pos</span><span class="p">)</span>
972                <span class="n">_yscale</span> <span class="o">=</span> <span class="s">&#39;log&#39;</span>
973                <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">_yaxis_transformed</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">yname</span><span class="p">,</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">yunits</span><span class="p">)</span>
974            <span class="n">item</span><span class="o">.</span><span class="n">transformView</span><span class="p">()</span>
975        <span class="bp">self</span><span class="o">.</span><span class="n">prevXtrans</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span>
976        <span class="bp">self</span><span class="o">.</span><span class="n">prevYtrans</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span>
977        <span class="bp">self</span><span class="o">.</span><span class="n">set_xscale</span><span class="p">(</span><span class="n">_xscale</span><span class="p">)</span>
978        <span class="bp">self</span><span class="o">.</span><span class="n">set_yscale</span><span class="p">(</span><span class="n">_yscale</span><span class="p">)</span>
979        <span class="bp">self</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
980        </div>
981<div class="viewcode-block" id="DataOperatorWindow"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperatorWindow">[docs]</a><span class="k">class</span> <span class="nc">DataOperatorWindow</span><span class="p">(</span><span class="n">widget</span><span class="o">.</span><span class="n">CHILD_FRAME</span><span class="p">):</span>
982    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">manager</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
983        <span class="n">kwds</span><span class="p">[</span><span class="s">&quot;size&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">PANEL_WIDTH</span><span class="p">,</span> <span class="n">PANEL_HEIGTH</span><span class="p">)</span>
984        <span class="n">widget</span><span class="o">.</span><span class="n">CHILD_FRAME</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
985        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
986        <span class="bp">self</span><span class="o">.</span><span class="n">manager</span> <span class="o">=</span> <span class="n">manager</span>
987        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">DataOperPanel</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
988        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_CLOSE</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnClose</span><span class="p">)</span>
989        <span class="bp">self</span><span class="o">.</span><span class="n">SetPosition</span><span class="p">((</span><span class="mi">25</span><span class="p">,</span> <span class="mi">150</span><span class="p">))</span>
990        <span class="bp">self</span><span class="o">.</span><span class="n">Show</span><span class="p">()</span>
991   
992<div class="viewcode-block" id="DataOperatorWindow.OnClose"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_operator.DataOperatorWindow.OnClose">[docs]</a>    <span class="k">def</span> <span class="nf">OnClose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> 
993        <span class="sd">&quot;&quot;&quot;</span>
994<span class="sd">        On close event</span>
995<span class="sd">        &quot;&quot;&quot;</span>
996        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">manager</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
997            <span class="bp">self</span><span class="o">.</span><span class="n">manager</span><span class="o">.</span><span class="n">data_operator_frame</span> <span class="o">=</span> <span class="bp">None</span>
998        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">disconnect_panels</span><span class="p">()</span>
999        <span class="bp">self</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
1000
1001        </div></div>
1002<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
1003
1004    <span class="n">app</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">App</span><span class="p">()</span>
1005    <span class="n">widget</span><span class="o">.</span><span class="n">CHILD_FRAME</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Frame</span>
1006    <span class="n">window</span> <span class="o">=</span> <span class="n">DataOperatorWindow</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="n">data</span><span class="o">=</span><span class="p">[],</span> <span class="n">title</span><span class="o">=</span><span class="s">&quot;Data Editor&quot;</span><span class="p">)</span>
1007    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>
1008 
1009</pre></div>
1010
1011          </div>
1012        </div>
1013      </div>
1014      <div class="sphinxsidebar">
1015        <div class="sphinxsidebarwrapper">
1016<div id="searchbox" style="display: none">
1017  <h3>Quick search</h3>
1018    <form class="search" action="../../../../search.html" method="get">
1019      <input type="text" name="q" />
1020      <input type="submit" value="Go" />
1021      <input type="hidden" name="check_keywords" value="yes" />
1022      <input type="hidden" name="area" value="default" />
1023    </form>
1024    <p class="searchtip" style="font-size: 90%">
1025    Enter search terms or a module, class or function name.
1026    </p>
1027</div>
1028<script type="text/javascript">$('#searchbox').show(0);</script>
1029        </div>
1030      </div>
1031      <div class="clearer"></div>
1032    </div>
1033    <div class="related">
1034      <h3>Navigation</h3>
1035      <ul>
1036        <li class="right" style="margin-right: 10px">
1037          <a href="../../../../genindex.html" title="General Index"
1038             >index</a></li>
1039        <li class="right" >
1040          <a href="../../../../py-modindex.html" title="Python Module Index"
1041             >modules</a> |</li>
1042        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1043          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
1044          <li><a href="../calculator.html" >sas.perspectives.calculator</a> &raquo;</li> 
1045      </ul>
1046    </div>
1047    <div class="footer">
1048        &copy; Copyright 2013, The SasView Project.
1049      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1050    </div>
1051  </body>
1052</html>
Note: See TracBrowser for help on using the repository browser.