source: sasview/_modules/sas/perspectives/calculator/data_editor.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: 118.0 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.perspectives.calculator.data_editor &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_editor</h1><div class="highlight"><pre>
52<span class="kn">import</span> <span class="nn">wx</span>
53<span class="kn">import</span> <span class="nn">sys</span>
54<span class="kn">import</span> <span class="nn">os</span> 
55<span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
56
57<span class="kn">from</span> <span class="nn">sas.dataloader.loader</span> <span class="kn">import</span> <span class="n">Loader</span>
58<span class="c">#from DataLoader.data_info import DataInfo</span>
59<span class="c">#from DataLoader.data_info import  Detector</span>
60<span class="c">#from DataLoader.data_info import Collimation</span>
61<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data2D</span>
62<span class="kn">from</span> <span class="nn">detector_editor</span> <span class="kn">import</span> <span class="n">DetectorDialog</span>
63<span class="kn">from</span> <span class="nn">collimation_editor</span> <span class="kn">import</span> <span class="n">CollimationDialog</span>
64<span class="kn">from</span> <span class="nn">console</span> <span class="kn">import</span> <span class="n">ConsoleDialog</span>
65
66<span class="c">#from sas.guiframe.utils import check_float</span>
67<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
68
69
70<span class="n">_QMIN_DEFAULT</span> <span class="o">=</span> <span class="mf">0.001</span>
71<span class="n">_QMAX_DEFAULT</span> <span class="o">=</span> <span class="mf">0.13</span>
72<span class="n">_NPTS_DEFAULT</span> <span class="o">=</span> <span class="mi">50</span>
73<span class="c">#Control panel width </span>
74<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;darwin&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
75    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">500</span>
76    <span class="n">PANEL_HEIGTH</span> <span class="o">=</span> <span class="mi">350</span>
77    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
78    <span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">51</span>
79    <span class="n">ON_MAC</span> <span class="o">=</span> <span class="bp">False</span>
80<span class="k">else</span><span class="p">:</span>
81    <span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">76</span>
82    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">550</span>
83    <span class="n">PANEL_HEIGTH</span> <span class="o">=</span> <span class="mi">400</span>
84    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
85    <span class="n">ON_MAC</span> <span class="o">=</span> <span class="bp">True</span>
86   
87<span class="k">def</span> <span class="nf">load_error</span><span class="p">(</span><span class="n">error</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
88<div class="viewcode-block" id="load_error"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.load_error">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
89<span class="sd">        Pop up an error message.</span>
90<span class="sd">        </span>
91<span class="sd">        @param error: details error message to be displayed</span>
92<span class="sd">    &quot;&quot;&quot;</span>
93    <span class="n">message</span> <span class="o">=</span> <span class="s">&quot;You had to try this, didn&#39;t you?</span><span class="se">\n\n</span><span class="s">&quot;</span>
94    <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;The data file you selected could not be loaded.</span><span class="se">\n</span><span class="s">&quot;</span>
95    <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;Make sure the content of your file is properly formatted.</span><span class="se">\n\n</span><span class="s">&quot;</span>
96   
97    <span class="k">if</span> <span class="n">error</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
98        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;When contacting the DANSE team,&quot;</span>
99        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; mention the following:</span><span class="se">\n</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
100   
101    <span class="n">dial</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">MessageDialog</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">message</span><span class="p">,</span> 
102                            <span class="s">&#39;Error Loading File&#39;</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ICON_EXCLAMATION</span><span class="p">)</span>
103    <span class="n">dial</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> 
104   
105   
106<span class="k">class</span> <span class="nc">DataEditorPanel</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ScrolledWindow</span><span class="p">):</span></div>
107<div class="viewcode-block" id="DataEditorPanel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
108<span class="sd">    :param data: when not empty the class can </span>
109<span class="sd">                same information into a dat object</span>
110<span class="sd">        and post event containing the changed data object to some other frame</span>
111<span class="sd">    &quot;&quot;&quot;</span>
112    <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">data</span><span class="o">=</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>
113        <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 Editor&quot;</span>
114        <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>
115        <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>
116        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
117        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="n">data</span>
118        <span class="bp">self</span><span class="o">.</span><span class="n">_reset_data</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
119        <span class="bp">self</span><span class="o">.</span><span class="n">reader</span> <span class="o">=</span> <span class="bp">None</span>
120        <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">_description</span> <span class="o">=</span> <span class="s">&quot;Edit Data&quot;</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">_do_layout</span><span class="p">()</span>
124        <span class="bp">self</span><span class="o">.</span><span class="n">reset_panel</span><span class="p">()</span>
125        <span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
126        <span class="k">if</span> <span class="n">data</span><span class="p">:</span>
127            <span class="bp">self</span><span class="o">.</span><span class="n">complete_loading</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
128            <span class="bp">self</span><span class="o">.</span><span class="n">bt_apply</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
129             
130    <span class="k">def</span> <span class="nf">_define_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
131        <span class="sd">&quot;&quot;&quot;</span>
132<span class="sd">        define initial sizer </span>
133<span class="sd">        &quot;&quot;&quot;</span>
134        <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>
135        <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="s">&quot;Load Data&quot;</span><span class="p">)</span>
136        <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>
137       
138        <span class="bp">self</span><span class="o">.</span><span class="n">title_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>
139        <span class="bp">self</span><span class="o">.</span><span class="n">run_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>
140        <span class="bp">self</span><span class="o">.</span><span class="n">instrument_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>
141       
142        <span class="n">edit_box</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Edit &quot;</span><span class="p">)</span>
143        <span class="bp">self</span><span class="o">.</span><span class="n">edit_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">edit_box</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
144       
145        <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>
146     
147    <span class="k">def</span> <span class="nf">_layout_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
148        <span class="sd">&quot;&quot;&quot;</span>
149<span class="sd">        Do the layout for data name related widgets</span>
150<span class="sd">        &quot;&quot;&quot;</span>
151        <span class="c">#data name [string]</span>
152        <span class="n">data_name_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Data : &#39;</span><span class="p">)</span> 
153        <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">)</span>
154        <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">data_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_data</span><span class="p">)</span> 
155        <span class="n">hint_data</span> <span class="o">=</span> <span class="s">&quot;Loaded data.&quot;</span>
156        <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_data</span><span class="p">)</span>
157        <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>
158        <span class="bp">self</span><span class="o">.</span><span class="n">browse_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;Browse&quot;</span><span class="p">)</span>
159        <span class="n">hint_on_browse</span> <span class="o">=</span> <span class="s">&quot;Click on this button to import data in this panel.&quot;</span>
160        <span class="bp">self</span><span class="o">.</span><span class="n">browse_button</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_on_browse</span><span class="p">)</span>
161        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_click_browse</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">)</span>
162        <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">data_name_txt</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">15</span><span class="p">),</span>
163                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_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">10</span><span class="p">),</span>
164                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">browse_button</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">10</span><span class="p">)])</span>
165       
166    <span class="k">def</span> <span class="nf">_layout_title</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
167        <span class="sd">&quot;&quot;&quot;</span>
168<span class="sd">        Do the layout for data title related widgets</span>
169<span class="sd">        &quot;&quot;&quot;</span>
170        <span class="c">#title name [string]</span>
171        <span class="n">data_title_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Title : &#39;</span><span class="p">)</span> 
172        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</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">PANEL_WIDTH</span><span class="o">*</span><span class="mi">3</span><span class="o">/</span><span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> 
173        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</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_TEXT_ENTER</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_change_title</span><span class="p">)</span>
174        <span class="n">hint_title</span> <span class="o">=</span> <span class="s">&quot;Data&#39;s title.&quot;</span>
175        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_title</span><span class="p">)</span>
176        <span class="bp">self</span><span class="o">.</span><span class="n">title_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">data_title_txt</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">15</span><span class="p">),</span>
177                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</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">10</span><span class="p">)])</span>
178       
179    <span class="k">def</span> <span class="nf">_layout_run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
180        <span class="sd">&quot;&quot;&quot;</span>
181<span class="sd">        Do the layout for data run related widgets</span>
182<span class="sd">        &quot;&quot;&quot;</span>
183        <span class="n">data_run_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Run : &#39;</span><span class="p">)</span> 
184        <span class="n">data_run_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span> 
185        <span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</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">PANEL_WIDTH</span><span class="o">*</span><span class="mi">3</span><span class="o">/</span><span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">),</span>
186                                         <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_MULTILINE</span><span class="p">)</span>
187        <span class="n">hint_run</span> <span class="o">=</span> <span class="s">&quot;Data&#39;s run.&quot;</span>
188        <span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_run</span><span class="p">)</span>
189        <span class="bp">self</span><span class="o">.</span><span class="n">run_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">data_run_txt</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">15</span><span class="p">),</span>
190                                       <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</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">10</span><span class="p">)])</span>
191       
192    <span class="k">def</span> <span class="nf">_layout_instrument</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
193        <span class="sd">&quot;&quot;&quot;</span>
194<span class="sd">        Do the layout for instrument related widgets</span>
195<span class="sd">        &quot;&quot;&quot;</span>
196        <span class="n">instrument_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Instrument : &#39;</span><span class="p">)</span> 
197        <span class="n">hint_instrument_txt</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
198        <span class="n">instrument_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_instrument_txt</span><span class="p">)</span> 
199        <span class="bp">self</span><span class="o">.</span><span class="n">instrument_tcl</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">5</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span> 
200        <span class="n">hint_instrument</span> <span class="o">=</span> <span class="s">&quot;Instrument.&quot;</span>
201        <span class="bp">self</span><span class="o">.</span><span class="n">instrument_tcl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_instrument</span><span class="p">)</span>
202        <span class="bp">self</span><span class="o">.</span><span class="n">instrument_sizer</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">instrument_txt</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">15</span><span class="p">),</span>
203                                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">instrument_tcl</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">10</span><span class="p">)])</span>
204       
205    <span class="k">def</span> <span class="nf">_layout_editor</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
206        <span class="sd">&quot;&quot;&quot;</span>
207<span class="sd">        Do the layout for sample related widgets</span>
208<span class="sd">        &quot;&quot;&quot;</span>
209        <span class="bp">self</span><span class="o">.</span><span class="n">detector_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Detector&quot;</span><span class="p">,</span>
210                                           <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">RB_GROUP</span><span class="p">)</span>
211        <span class="bp">self</span><span class="o">.</span><span class="n">sample_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Sample&quot;</span><span class="p">)</span>
212        <span class="bp">self</span><span class="o">.</span><span class="n">source_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Source&quot;</span><span class="p">)</span>
213        <span class="bp">self</span><span class="o">.</span><span class="n">collimation_rb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Collimation&quot;</span><span class="p">)</span>
214       
215        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</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;Edit&quot;</span><span class="p">)</span>
216        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Edit data.&quot;</span><span class="p">)</span>
217        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</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_edit</span><span class="p">)</span>
218        <span class="bp">self</span><span class="o">.</span><span class="n">edit_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">detector_rb</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
219                        <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sample_rb</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="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
220                        <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">source_rb</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="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
221                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">collimation_rb</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="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
222                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
223                                  <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</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">10</span><span class="p">)])</span>
224        <span class="bp">self</span><span class="o">.</span><span class="n">reset_radiobox</span><span class="p">()</span>
225   
226   
227    <span class="k">def</span> <span class="nf">_layout_source</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
228        <span class="sd">&quot;&quot;&quot;</span>
229<span class="sd">            Do the layout for source related widgets</span>
230<span class="sd">        &quot;&quot;&quot;</span>
231        <span class="n">source_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Source &#39;</span><span class="p">)</span> 
232        <span class="n">hint_source_txt</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
233        <span class="n">source_txt</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_source_txt</span><span class="p">)</span> 
234        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit_source</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;Edit&quot;</span><span class="p">)</span>
235        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit_source</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Edit data&#39;s sample.&quot;</span><span class="p">)</span>
236        <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit_source</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">edit_source</span><span class="p">)</span>
237        <span class="c">#self.source_sizer.AddMany([(source_txt, 0, wx.ALL, 10),</span>
238        <span class="c">#                        (self.bt_edit_source, 0,</span>
239        <span class="c">#                          wx.RIGHT|wx.BOTTOM|wx.TOP, 10)])</span>
240
241    <span class="k">def</span> <span class="nf">_layout_summary</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
242        <span class="sd">&quot;&quot;&quot;</span>
243<span class="sd">            Layout widgets related to data&#39;s summary</span>
244<span class="sd">        &quot;&quot;&quot;</span>
245        <span class="bp">self</span><span class="o">.</span><span class="n">data_summary</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>
246                                         <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_MULTILINE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">HSCROLL</span><span class="p">,</span>
247                                        <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
248        <span class="n">summary</span> <span class="o">=</span> <span class="s">&#39;No data info available...&#39;</span>
249        <span class="bp">self</span><span class="o">.</span><span class="n">data_summary</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">summary</span><span class="p">)</span>
250        <span class="c">#self.summary_sizer.Add(self.data_summary, 1, wx.EXPAND|wx.ALL, 10)  </span>
251                   
252    <span class="k">def</span> <span class="nf">_layout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
253        <span class="sd">&quot;&quot;&quot;</span>
254<span class="sd">            Do the layout for the button widgets</span>
255<span class="sd">        &quot;&quot;&quot;</span> 
256        <span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</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;View&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="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
257        <span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;View final changes on data.&quot;</span><span class="p">)</span>
258        <span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</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_view</span><span class="p">)</span>
259       
260        <span class="bp">self</span><span class="o">.</span><span class="n">bt_save</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;Save As&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="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
261        <span class="bp">self</span><span class="o">.</span><span class="n">bt_save</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Save changes in a file.&quot;</span><span class="p">)</span>
262        <span class="bp">self</span><span class="o">.</span><span class="n">bt_save</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_save</span><span class="p">)</span>
263       
264        <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="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
265        <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="s">&quot;Save changes into the imported data.&quot;</span><span class="p">)</span>
266        <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>
267     
268        <span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</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;Reset&#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="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
269        <span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</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_reset</span><span class="p">)</span>
270        <span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Reset data to its initial state.&quot;</span><span class="p">)</span>
271       
272        <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="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
273        <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>
274        <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>
275       
276        <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="bp">self</span><span class="o">.</span><span class="n">bt_save</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">120</span><span class="p">),</span>
277                                   <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">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
278                                   <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</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">RIGHT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
279                                   <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</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>
280                                   <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>
281       
282    <span class="k">def</span> <span class="nf">_do_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
283        <span class="sd">&quot;&quot;&quot;</span>
284<span class="sd">        Draw the current panel</span>
285<span class="sd">        &quot;&quot;&quot;</span>
286        <span class="bp">self</span><span class="o">.</span><span class="n">_define_structure</span><span class="p">()</span>
287        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_name</span><span class="p">()</span>
288        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_title</span><span class="p">()</span>
289        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_run</span><span class="p">()</span>
290        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_editor</span><span class="p">()</span>
291        <span class="bp">self</span><span class="o">.</span><span class="n">_layout_button</span><span class="p">()</span>
292        <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>
293                                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
294                                         <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>
295                                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">run_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
296                                         <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>
297                                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">instrument_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
298                                         <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>
299                                <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">edit_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
300                                        <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">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span><span class="mi">10</span><span class="p">),</span>
301                                <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>
302                                          <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>
303        <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>
304        <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>
305        <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>
306       
307    <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>
308<div class="viewcode-block" id="DataEditorPanel.fill_data_combox"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.fill_data_combox">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
309<span class="sd">        fill the current combobox with the available data</span>
310<span class="sd">        &quot;&quot;&quot;</span>
311        <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>
312            <span class="k">return</span>
313        <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>
314        <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">:</span>
315            <span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">title</span>
316            <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">:</span>
317                <span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
318            <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="o">==</span><span class="s">&quot;&quot;</span><span class="p">:</span>
319                <span class="n">name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">filename</span>
320            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_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>
321            <span class="bp">self</span><span class="o">.</span><span class="n">data_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">data</span><span class="p">)</span>
322            <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
323            <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> 
324       
325    <span class="k">def</span> <span class="nf">reset_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
326<div class="viewcode-block" id="DataEditorPanel.reset_panel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.reset_panel">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
327<span class="sd">        &quot;&quot;&quot;</span>
328        <span class="bp">self</span><span class="o">.</span><span class="n">enable_data_cbox</span><span class="p">()</span>
329        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
330        <span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
331       
332    <span class="k">def</span> <span class="nf">on_select_data</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></div>
333<div class="viewcode-block" id="DataEditorPanel.on_select_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_select_data">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
334<span class="sd">        &quot;&quot;&quot;</span>
335        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
336        <span class="bp">self</span><span class="o">.</span><span class="n">reset_panel</span><span class="p">()</span>
337        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
338            <span class="k">return</span>
339        <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">title</span><span class="p">))</span>
340        <span class="n">text</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
341        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">:</span>
342            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">:</span>
343                <span class="n">text</span> <span class="o">+=</span> <span class="n">item</span><span class="o">+</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span>
344        <span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">text</span><span class="p">))</span>
345           
346    <span class="k">def</span> <span class="nf">get_current_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
347<div class="viewcode-block" id="DataEditorPanel.get_current_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.get_current_data">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
348<span class="sd">        &quot;&quot;&quot;</span>
349        <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span> 
350        <span class="k">if</span> <span class="n">position</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">:</span>
351            <span class="k">return</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span>
352        <span class="n">data_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">GetStringSelection</span><span class="p">()</span> 
353        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">position</span><span class="p">)</span>
354        <span class="k">return</span> <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span>
355   
356    <span class="k">def</span> <span class="nf">enable_data_cbox</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
357<div class="viewcode-block" id="DataEditorPanel.enable_data_cbox"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.enable_data_cbox">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
358<span class="sd">        &quot;&quot;&quot;</span>
359        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">:</span>
360            <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
361            <span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
362            <span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
363            <span class="bp">self</span><span class="o">.</span><span class="n">bt_save</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
364            <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
365        <span class="k">else</span><span class="p">:</span>
366            <span class="bp">self</span><span class="o">.</span><span class="n">data_cbox</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
367            <span class="bp">self</span><span class="o">.</span><span class="n">bt_summary</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
368            <span class="bp">self</span><span class="o">.</span><span class="n">bt_reset</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
369            <span class="bp">self</span><span class="o">.</span><span class="n">bt_save</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
370            <span class="bp">self</span><span class="o">.</span><span class="n">bt_edit</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
371           
372    <span class="k">def</span> <span class="nf">reset_radiobox</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
373<div class="viewcode-block" id="DataEditorPanel.reset_radiobox"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.reset_radiobox">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
374<span class="sd">        &quot;&quot;&quot;</span>
375        <span class="bp">self</span><span class="o">.</span><span class="n">detector_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
376        <span class="bp">self</span><span class="o">.</span><span class="n">source_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
377        <span class="bp">self</span><span class="o">.</span><span class="n">sample_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
378        <span class="bp">self</span><span class="o">.</span><span class="n">collimation_rb</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
379   
380    <span class="k">def</span> <span class="nf">set_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample</span><span class="p">,</span> <span class="n">notes</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div>
381<div class="viewcode-block" id="DataEditorPanel.set_sample"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.set_sample">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
382<span class="sd">        set sample for data</span>
383<span class="sd">        &quot;&quot;&quot;</span>
384        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
385        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
386            <span class="k">return</span> 
387        <span class="n">data</span><span class="o">.</span><span class="n">sample</span> <span class="o">=</span> <span class="n">sample</span>
388        <span class="k">if</span> <span class="n">notes</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
389            <span class="n">data</span><span class="o">.</span><span class="n">process</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">notes</span><span class="p">)</span>
390   
391    <span class="k">def</span> <span class="nf">set_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">notes</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div>
392<div class="viewcode-block" id="DataEditorPanel.set_source"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.set_source">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
393<span class="sd">        set source for data</span>
394<span class="sd">        &quot;&quot;&quot;</span>
395        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
396        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
397            <span class="k">return</span> 
398        <span class="n">data</span><span class="o">.</span><span class="n">source</span> <span class="o">=</span> <span class="n">source</span>
399        <span class="k">if</span> <span class="n">notes</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
400            <span class="n">data</span><span class="o">.</span><span class="n">process</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">notes</span><span class="p">)</span>
401       
402    <span class="k">def</span> <span class="nf">set_detector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">detector</span><span class="p">,</span> <span class="n">notes</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div>
403<div class="viewcode-block" id="DataEditorPanel.set_detector"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.set_detector">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
404<span class="sd">        set detector for data</span>
405<span class="sd">        &quot;&quot;&quot;</span>
406        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
407        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
408            <span class="k">return</span> 
409        <span class="n">data</span><span class="o">.</span><span class="n">detector</span> <span class="o">=</span> <span class="n">detector</span>
410        <span class="k">if</span> <span class="n">notes</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
411            <span class="n">data</span><span class="o">.</span><span class="n">process</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">notes</span><span class="p">)</span>
412       
413    <span class="k">def</span> <span class="nf">set_collimation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">collimation</span><span class="p">,</span> <span class="n">notes</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div>
414<div class="viewcode-block" id="DataEditorPanel.set_collimation"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.set_collimation">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
415<span class="sd">        set collimation for data</span>
416<span class="sd">        &quot;&quot;&quot;</span>
417        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
418        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
419            <span class="k">return</span> 
420        <span class="n">data</span><span class="o">.</span><span class="n">collimation</span> <span class="o">=</span> <span class="n">collimation</span>
421        <span class="k">if</span> <span class="n">notes</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
422            <span class="n">data</span><span class="o">.</span><span class="n">process</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">notes</span><span class="p">)</span>
423               
424    <span class="k">def</span> <span class="nf">edit_collimation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
425<div class="viewcode-block" id="DataEditorPanel.edit_collimation"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.edit_collimation">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
426<span class="sd">        Edit the selected collimation</span>
427<span class="sd">        &quot;&quot;&quot;</span>
428        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
429        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
430            <span class="k">return</span> 
431        <span class="n">dlg</span> <span class="o">=</span> <span class="n">CollimationDialog</span><span class="p">(</span><span class="n">collimation</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">collimation</span><span class="p">)</span>
432        <span class="n">dlg</span><span class="o">.</span><span class="n">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
433        <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
434           
435    <span class="k">def</span> <span class="nf">edit_detector</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
436<div class="viewcode-block" id="DataEditorPanel.edit_detector"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.edit_detector">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
437<span class="sd">        Edit the selected detector</span>
438<span class="sd">        &quot;&quot;&quot;</span>
439        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
440        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
441            <span class="k">return</span> 
442        <span class="n">dlg</span> <span class="o">=</span> <span class="n">DetectorDialog</span><span class="p">(</span><span class="n">detector</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">detector</span><span class="p">)</span>
443        <span class="n">dlg</span><span class="o">.</span><span class="n">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
444        <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
445
446    <span class="k">def</span> <span class="nf">edit_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
447<div class="viewcode-block" id="DataEditorPanel.edit_sample"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.edit_sample">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
448<span class="sd">        Open the dialog to edit the sample of the current data</span>
449<span class="sd">        &quot;&quot;&quot;</span>
450        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
451        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
452            <span class="k">return</span>
453        <span class="kn">from</span> <span class="nn">sample_editor</span> <span class="kn">import</span> <span class="n">SampleDialog</span>
454        <span class="n">dlg</span> <span class="o">=</span> <span class="n">SampleDialog</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">sample</span><span class="p">)</span>
455        <span class="n">dlg</span><span class="o">.</span><span class="n">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
456        <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
457       
458    <span class="k">def</span> <span class="nf">edit_source</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
459<div class="viewcode-block" id="DataEditorPanel.edit_source"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.edit_source">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
460<span class="sd">        Open the dialog to edit the saource of the current data</span>
461<span class="sd">        &quot;&quot;&quot;</span>
462        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
463        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
464            <span class="k">return</span>
465        <span class="kn">from</span> <span class="nn">source_editor</span> <span class="kn">import</span> <span class="n">SourceDialog</span>
466        <span class="n">dlg</span> <span class="o">=</span> <span class="n">SourceDialog</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">source</span><span class="p">)</span>
467        <span class="n">dlg</span><span class="o">.</span><span class="n">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
468        <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
469       
470    <span class="k">def</span> <span class="nf">choose_data_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">location</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div>
471<div class="viewcode-block" id="DataEditorPanel.choose_data_file"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.choose_data_file">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
472<span class="sd">        Open a file dialog to allow loading a file</span>
473<span class="sd">        &quot;&quot;&quot;</span>
474        <span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
475        <span class="k">if</span> <span class="n">location</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
476            <span class="n">location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span>
477       
478        <span class="n">l</span> <span class="o">=</span> <span class="n">Loader</span><span class="p">()</span>
479        <span class="n">cards</span> <span class="o">=</span> <span class="n">l</span><span class="o">.</span><span class="n">get_wildcards</span><span class="p">()</span>
480        <span class="n">wlist</span> <span class="o">=</span> <span class="s">&#39;|&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">cards</span><span class="p">)</span>
481       
482        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&quot;Choose a file&quot;</span><span class="p">,</span> <span class="n">location</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">wlist</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">OPEN</span><span class="p">)</span>
483        <span class="k">if</span> <span class="n">dlg</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>
484            <span class="n">path</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span>
485            <span class="n">mypath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
486        <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
487        <span class="k">return</span> <span class="n">path</span>
488   
489   
490    <span class="k">def</span> <span class="nf">complete_loading</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span></div>
491<div class="viewcode-block" id="DataEditorPanel.complete_loading"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.complete_loading">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
492<span class="sd">        Complete the loading and compute the slit size</span>
493<span class="sd">        &quot;&quot;&quot;</span>
494        <span class="bp">self</span><span class="o">.</span><span class="n">done</span> <span class="o">=</span> <span class="bp">True</span>
495        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="p">[]</span>
496        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
497            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Couldn&#39;t load data&quot;</span>
498            <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>
499                                             <span class="n">info</span><span class="o">=</span><span class="s">&quot;warning&quot;</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">&#39;stop&#39;</span><span class="p">))</span>
500            <span class="k">return</span> 
501        <span class="k">if</span> <span class="ow">not</span>  <span class="n">data</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="s">&quot;list&quot;</span><span class="p">:</span>
502            <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
503            <span class="bp">self</span><span class="o">.</span><span class="n">_reset_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
504        <span class="k">else</span><span class="p">:</span>
505            <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
506            <span class="bp">self</span><span class="o">.</span><span class="n">_reset_data</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
507        <span class="bp">self</span><span class="o">.</span><span class="n">set_values</span><span class="p">()</span>
508        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
509            <span class="k">return</span> 
510        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Load Complete&quot;</span>
511        <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>
512                                                <span class="n">info</span><span class="o">=</span><span class="s">&quot;info&quot;</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">&#39;stop&#39;</span><span class="p">))</span>
513 
514    <span class="k">def</span> <span class="nf">set_values</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
515<div class="viewcode-block" id="DataEditorPanel.set_values"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.set_values">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
516<span class="sd">        take the aperture values of the current data and display them</span>
517<span class="sd">        through the panel</span>
518<span class="sd">        &quot;&quot;&quot;</span>
519        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">:</span>
520            <span class="bp">self</span><span class="o">.</span><span class="n">fill_data_combox</span><span class="p">()</span>
521            <span class="bp">self</span><span class="o">.</span><span class="n">on_select_data</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
522       
523    <span class="k">def</span> <span class="nf">get_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
524<div class="viewcode-block" id="DataEditorPanel.get_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.get_data">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
525<span class="sd">        return the current data</span>
526<span class="sd">        &quot;&quot;&quot;</span>
527        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span>
528   
529    <span class="k">def</span> <span class="nf">get_notes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
530<div class="viewcode-block" id="DataEditorPanel.get_notes"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.get_notes">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
531<span class="sd">        return notes</span>
532<span class="sd">        &quot;&quot;&quot;</span>
533        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span>
534   
535    <span class="k">def</span> <span class="nf">on_change_run</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></div>
536<div class="viewcode-block" id="DataEditorPanel.on_change_run"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_change_run">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
537<span class="sd">        Change run</span>
538<span class="sd">        &quot;&quot;&quot;</span>
539        <span class="n">run</span> <span class="o">=</span> <span class="p">[]</span>
540        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
541        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</span><span class="o">.</span><span class="n">GetNumberOfLines</span><span class="p">()):</span>
542            <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_run_tcl</span><span class="o">.</span><span class="n">GetLineText</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
543            <span class="k">if</span> <span class="n">text</span> <span class="o">!=</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
544                <span class="n">run</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
545        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">run</span> <span class="o">!=</span> <span class="n">run</span><span class="p">:</span>
546            <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">+=</span> <span class="s">&quot;Change data &#39;s &quot;</span>
547            <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">+=</span> <span class="s">&quot;run from </span><span class="si">%s</span><span class="s"> to </span><span class="si">%s</span><span class="s"> </span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">run</span><span class="p">))</span>
548            <span class="n">data</span><span class="o">.</span><span class="n">run</span> <span class="o">=</span> <span class="n">run</span>
549        <span class="k">if</span> <span class="n">event</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
550            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
551                 
552    <span class="k">def</span> <span class="nf">on_change_title</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></div>
553<div class="viewcode-block" id="DataEditorPanel.on_change_title"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_change_title">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
554<span class="sd">        Change title</span>
555<span class="sd">        &quot;&quot;&quot;</span>
556        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
557        <span class="c">#Change data&#39;s name</span>
558        <span class="n">title</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_title_tcl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
559       
560        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">title</span> <span class="o">!=</span> <span class="n">title</span><span class="p">:</span>
561            <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">+=</span> <span class="s">&quot;Change data &#39;s &quot;</span>
562            <span class="bp">self</span><span class="o">.</span><span class="n">_notes</span> <span class="o">+=</span> <span class="s">&quot;title from </span><span class="si">%s</span><span class="s"> to </span><span class="si">%s</span><span class="s"> </span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">title</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">title</span><span class="p">))</span>
563            <span class="n">data</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
564        <span class="k">if</span> <span class="n">event</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
565            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
566           
567    <span class="k">def</span> <span class="nf">on_click_browse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
568<div class="viewcode-block" id="DataEditorPanel.on_click_browse"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_click_browse">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
569<span class="sd">        Open a file dialog to allow the user to select a given file.</span>
570<span class="sd">        Display the loaded data if available.</span>
571<span class="sd">        &quot;&quot;&quot;</span>
572        <span class="n">path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">choose_data_file</span><span class="p">(</span><span class="n">location</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span><span class="p">)</span>
573        <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
574            <span class="k">return</span> 
575        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
576            <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="s">&quot;Loading...&quot;</span><span class="p">,</span>
577                                        <span class="n">info</span><span class="o">=</span><span class="s">&quot;info&quot;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&quot;progress&quot;</span><span class="p">))</span>
578       
579        <span class="bp">self</span><span class="o">.</span><span class="n">done</span> <span class="o">=</span> <span class="bp">False</span>
580        <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="n">path</span>
581        <span class="k">try</span><span class="p">:</span>
582            <span class="c">#Load data</span>
583            <span class="kn">from</span> <span class="nn">load_thread</span> <span class="kn">import</span> <span class="n">DataReader</span>
584            <span class="c">## If a thread is already started, stop it</span>
585            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">reader</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">isrunning</span><span class="p">():</span>
586                <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
587            <span class="bp">self</span><span class="o">.</span><span class="n">reader</span> <span class="o">=</span> <span class="n">DataReader</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
588                                    <span class="n">completefn</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">complete_loading</span><span class="p">,</span>
589                                    <span class="n">updatefn</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
590            <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">queue</span><span class="p">()</span>
591        <span class="k">except</span><span class="p">:</span>
592            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Data Editor: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span><span class="p">)</span>
593            <span class="n">load_error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
594            <span class="k">return</span> 
595        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
596         
597    <span class="k">def</span> <span class="nf">on_edit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
598<div class="viewcode-block" id="DataEditorPanel.on_edit"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_edit">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
599<span class="sd">        &quot;&quot;&quot;</span>
600        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">detector_rb</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
601            <span class="bp">self</span><span class="o">.</span><span class="n">edit_detector</span><span class="p">()</span>
602        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sample_rb</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
603            <span class="bp">self</span><span class="o">.</span><span class="n">edit_sample</span><span class="p">()</span>
604        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">source_rb</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
605            <span class="bp">self</span><span class="o">.</span><span class="n">edit_source</span><span class="p">()</span>
606        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">collimation_rb</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
607            <span class="bp">self</span><span class="o">.</span><span class="n">edit_collimation</span><span class="p">()</span>
608        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
609           
610    <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></div>
611<div class="viewcode-block" id="DataEditorPanel.on_click_apply"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_click_apply">[docs]</a>        <span class="sd">&quot;&quot;&quot;   </span>
612<span class="sd">        changes are saved in data object imported to edit</span>
613<span class="sd">        &quot;&quot;&quot;</span>
614        <span class="n">data</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
615        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
616            <span class="k">return</span>
617        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_run</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
618        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_title</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
619        <span class="c">#must post event here</span>
620        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
621       
622    <span class="k">def</span> <span class="nf">on_click_save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
623<div class="viewcode-block" id="DataEditorPanel.on_click_save"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_click_save">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
624<span class="sd">        Save change into a file</span>
625<span class="sd">        &quot;&quot;&quot;</span>
626        <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>
627            <span class="k">return</span>
628        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_run</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
629        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_title</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
630        <span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
631        <span class="n">wildcard</span> <span class="o">=</span> <span class="s">&quot;CanSAS 1D files(*.xml)|*.xml&quot;</span> 
632        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&quot;Choose a file&quot;</span><span class="p">,</span>
633                            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span><span class="n">wildcard</span> <span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">SAVE</span><span class="p">)</span>
634       
635        <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">:</span>
636            <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">Data2D</span><span class="p">):</span>
637                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;No conventional writing format for </span><span class="se">\n\n</span><span class="s">&quot;</span>
638                <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;Data2D at this time.</span><span class="se">\n</span><span class="s">&quot;</span>
639                <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">MessageDialog</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">msg</span><span class="p">,</span> <span class="s">&#39;Error Loading File&#39;</span><span class="p">,</span>
640                                             <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">ICON_EXCLAMATION</span><span class="p">)</span>
641                <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>   
642            <span class="k">else</span><span class="p">:</span>
643                <span class="k">if</span> <span class="n">dlg</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>
644                    <span class="n">path</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span>
645                    <span class="n">mypath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
646                    <span class="n">loader</span> <span class="o">=</span> <span class="n">Loader</span><span class="p">()</span> 
647                    <span class="n">format</span> <span class="o">=</span> <span class="s">&quot;.xml&quot;</span>
648                    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">mypath</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="n">format</span><span class="p">:</span>
649                        <span class="n">loader</span><span class="o">.</span><span class="n">save</span><span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">format</span><span class="p">)</span>
650                    <span class="k">try</span><span class="p">:</span>
651                        <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
652                    <span class="k">except</span><span class="p">:</span>
653                        <span class="k">pass</span>   
654                    <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
655        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
656       
657    <span class="k">def</span> <span class="nf">on_click_view</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
658<div class="viewcode-block" id="DataEditorPanel.on_click_view"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_click_view">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
659<span class="sd">        Display data info </span>
660<span class="sd">        &quot;&quot;&quot;</span>
661        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
662        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
663            <span class="k">return</span>
664        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_run</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
665        <span class="bp">self</span><span class="o">.</span><span class="n">on_change_title</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
666        <span class="n">dlg</span> <span class="o">=</span> <span class="n">ConsoleDialog</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
667        <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
668        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
669   
670    <span class="k">def</span> <span class="nf">on_click_reset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
671<div class="viewcode-block" id="DataEditorPanel.on_click_reset"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_click_reset">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
672<span class="sd">        &quot;&quot;&quot;</span>
673        <span class="n">data</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_current_data</span><span class="p">()</span>
674        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
675            <span class="k">return</span>
676        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="p">[</span><span class="n">position</span><span class="p">]</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_reset_data</span><span class="p">[</span><span class="n">position</span><span class="p">])</span>
677        <span class="bp">self</span><span class="o">.</span><span class="n">set_values</span><span class="p">()</span>
678        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
679       
680    <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></div>
681<div class="viewcode-block" id="DataEditorPanel.on_close"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorPanel.on_close">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
682<span class="sd">        leave data as it is and close</span>
683<span class="sd">        &quot;&quot;&quot;</span>
684        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">Close</span><span class="p">()</span>
685        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
686       
687<span class="k">class</span> <span class="nc">DataEditorWindow</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="p">):</span></div></div>
688<div class="viewcode-block" id="DataEditorWindow"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorWindow">[docs]</a>    <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="n">data</span><span class="o">=</span><span class="bp">None</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>
689        <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>
690        <span class="n">wx</span><span class="o">.</span><span class="n">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>
691        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
692        <span class="bp">self</span><span class="o">.</span><span class="n">manager</span> <span class="o">=</span> <span class="n">manager</span>
693        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">DataEditorPanel</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
694        <span class="bp">self</span><span class="o">.</span><span class="n">Show</span><span class="p">()</span>
695       
696    <span class="k">def</span> <span class="nf">get_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
697<div class="viewcode-block" id="DataEditorWindow.get_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.data_editor.DataEditorWindow.get_data">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
698<span class="sd">            return the current data</span>
699<span class="sd">        &quot;&quot;&quot;</span>
700        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
701   
702<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></div></div>
703   
704    <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>
705    <span class="n">window</span> <span class="o">=</span> <span class="n">DataEditorWindow</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>
706    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>
707 
708</pre></div>
709
710          </div>
711        </div>
712      </div>
713      <div class="sphinxsidebar">
714        <div class="sphinxsidebarwrapper">
715<div id="searchbox" style="display: none">
716  <h3>Quick search</h3>
717    <form class="search" action="../../../../search.html" method="get">
718      <input type="text" name="q" />
719      <input type="submit" value="Go" />
720      <input type="hidden" name="check_keywords" value="yes" />
721      <input type="hidden" name="area" value="default" />
722    </form>
723    <p class="searchtip" style="font-size: 90%">
724    Enter search terms or a module, class or function name.
725    </p>
726</div>
727<script type="text/javascript">$('#searchbox').show(0);</script>
728        </div>
729      </div>
730      <div class="clearer"></div>
731    </div>
732    <div class="related">
733      <h3>Navigation</h3>
734      <ul>
735        <li class="right" style="margin-right: 10px">
736          <a href="../../../../genindex.html" title="General Index"
737             >index</a></li>
738        <li class="right" >
739          <a href="../../../../py-modindex.html" title="Python Module Index"
740             >modules</a> |</li>
741        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
742          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
743          <li><a href="../calculator.html" >sas.perspectives.calculator</a> &raquo;</li> 
744      </ul>
745    </div>
746    <div class="footer">
747        &copy; Copyright 2013, The SasView Project.
748      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
749    </div>
750  </body>
751</html>
Note: See TracBrowser for help on using the repository browser.