source: sasview/_modules/sas/guiframe/data_panel.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: 244.1 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.guiframe.data_panel &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.guiframe" href="../guiframe.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="../guiframe.html" accesskey="U">sas.guiframe</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.guiframe.data_panel</h1><div class="highlight"><pre>
52<span class="c">################################################################################</span>
53<span class="c">#This software was developed by the University of Tennessee as part of the</span>
54<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
55<span class="c">#project funded by the US National Science Foundation. </span>
56<span class="c">#</span>
57<span class="c">#See the license text in license.txt</span>
58<span class="c">#</span>
59<span class="c">#copyright 2010, University of Tennessee</span>
60<span class="c">################################################################################</span>
61<span class="sd">&quot;&quot;&quot;</span>
62<span class="sd">This module provides Graphic interface for the data_manager module.</span>
63<span class="sd">&quot;&quot;&quot;</span>
64<span class="kn">import</span> <span class="nn">wx</span>
65<span class="kn">from</span> <span class="nn">wx.build</span> <span class="kn">import</span> <span class="n">build_options</span>
66<span class="c"># Check version</span>
67<span class="n">toks</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">__version__</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)</span>
68<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">9</span><span class="p">:</span>
69    <span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">12</span><span class="p">:</span>
70        <span class="n">wx_version</span> <span class="o">=</span> <span class="mi">811</span>
71    <span class="k">else</span><span class="p">:</span>
72        <span class="n">wx_version</span> <span class="o">=</span> <span class="mi">812</span>
73<span class="k">else</span><span class="p">:</span>
74    <span class="n">wx_version</span> <span class="o">=</span> <span class="mi">900</span>
75<span class="kn">import</span> <span class="nn">sys</span>
76<span class="kn">from</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">import</span> <span class="n">ScrolledPanel</span>
77<span class="kn">import</span>  <span class="nn">wx.lib.agw.customtreectrl</span> <span class="kn">as</span> <span class="nn">CT</span>
78<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data1D</span>
79<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data2D</span>
80<span class="kn">from</span> <span class="nn">sas.guiframe.panel_base</span> <span class="kn">import</span> <span class="n">PanelBase</span>
81<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
82<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">EVT_DELETE_PLOTPANEL</span>
83<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">NewLoadDataEvent</span>
84<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">NewPlotEvent</span>
85<span class="kn">from</span> <span class="nn">sas.guiframe.gui_style</span> <span class="kn">import</span> <span class="n">GUIFRAME</span>
86<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">NewBatchEvent</span>
87<span class="kn">from</span> <span class="nn">sas.dataloader.loader</span> <span class="kn">import</span> <span class="n">Loader</span>
88<span class="c">#from sas.guiframe.local_perspectives.plotting.masking \</span>
89<span class="c">#    import FloatPanel as QucikPlotDialog</span>
90<span class="kn">from</span> <span class="nn">sas.guiframe.local_perspectives.plotting.SimplePlot</span> <span class="kn">import</span> <span class="n">PlotFrame</span> \
91        <span class="k">as</span> <span class="n">QucikPlotDialog</span>
92<span class="kn">import</span> <span class="nn">sas.guiframe.config</span> <span class="kn">as</span> <span class="nn">config</span>
93 
94<span class="n">extension_list</span> <span class="o">=</span> <span class="p">[]</span>
95<span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION_STATE_EXTENSION</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
96    <span class="n">extension_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION_STATE_EXTENSION</span><span class="p">)</span>
97<span class="n">EXTENSIONS</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">PLUGIN_STATE_EXTENSIONS</span> <span class="o">+</span> <span class="n">extension_list</span>   
98<span class="n">PLUGINS_WLIST</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">PLUGINS_WLIST</span>
99<span class="n">APPLICATION_WLIST</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">APPLICATION_WLIST</span>
100
101<span class="c">#Control panel width </span>
102<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
103    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">235</span>
104    <span class="n">PANEL_HEIGHT</span> <span class="o">=</span> <span class="mi">700</span>
105    <span class="n">CBOX_WIDTH</span> <span class="o">=</span> <span class="mi">140</span>
106    <span class="n">BUTTON_WIDTH</span> <span class="o">=</span> <span class="mi">80</span>
107    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
108    <span class="n">IS_MAC</span> <span class="o">=</span> <span class="bp">False</span>
109<span class="k">else</span><span class="p">:</span>
110    <span class="n">PANEL_WIDTH</span> <span class="o">=</span> <span class="mi">255</span>
111    <span class="n">PANEL_HEIGHT</span> <span class="o">=</span> <span class="mi">750</span>
112    <span class="n">CBOX_WIDTH</span> <span class="o">=</span> <span class="mi">155</span>
113    <span class="n">BUTTON_WIDTH</span> <span class="o">=</span> <span class="mi">100</span>
114    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
115    <span class="n">IS_MAC</span> <span class="o">=</span> <span class="bp">True</span>
116
117<span class="n">STYLE_FLAG</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RAISED_BORDER</span><span class="o">|</span><span class="n">CT</span><span class="o">.</span><span class="n">TR_HAS_BUTTONS</span><span class="o">|</span> <span class="n">CT</span><span class="o">.</span><span class="n">TR_HIDE_ROOT</span><span class="o">|</span>\
118                    <span class="n">wx</span><span class="o">.</span><span class="n">WANTS_CHARS</span><span class="o">|</span><span class="n">CT</span><span class="o">.</span><span class="n">TR_HAS_VARIABLE_ROW_HEIGHT</span>
119                   
120                   
121<div class="viewcode-block" id="DataTreeCtrl"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataTreeCtrl">[docs]</a><span class="k">class</span> <span class="nc">DataTreeCtrl</span><span class="p">(</span><span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</span><span class="p">):</span>
122    <span class="sd">&quot;&quot;&quot;</span>
123<span class="sd">    Check list control to be used for Data Panel</span>
124<span class="sd">    &quot;&quot;&quot;</span>
125    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
126        <span class="c">#agwstyle is introduced in wx.2.8.11 but is not working for mac</span>
127        <span class="k">if</span> <span class="n">IS_MAC</span> <span class="ow">and</span> <span class="n">wx_version</span> <span class="o">&lt;</span> <span class="mi">812</span><span class="p">:</span>
128            <span class="k">try</span><span class="p">:</span>
129                <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;style&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">STYLE_FLAG</span>
130                <span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</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>
131            <span class="k">except</span><span class="p">:</span>
132                <span class="k">del</span> <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;style&#39;</span><span class="p">]</span>
133                <span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</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>
134        <span class="k">else</span><span class="p">:</span>
135            <span class="c"># agwstyle is introduced in wx.2.8.11</span>
136            <span class="c"># argument working only for windows</span>
137            <span class="k">try</span><span class="p">:</span>
138                <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;agwStyle&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">STYLE_FLAG</span>
139                <span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</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>
140            <span class="k">except</span><span class="p">:</span>
141                <span class="k">try</span><span class="p">:</span>
142                    <span class="k">del</span> <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;agwStyle&#39;</span><span class="p">]</span>
143                    <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;style&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">STYLE_FLAG</span>
144                    <span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</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>
145                <span class="k">except</span><span class="p">:</span>
146                    <span class="k">del</span> <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;style&#39;</span><span class="p">]</span>
147                    <span class="n">CT</span><span class="o">.</span><span class="n">CustomTreeCtrl</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>
148        <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">AddRoot</span><span class="p">(</span><span class="s">&quot;Available Data&quot;</span><span class="p">)</span>
149                   
150<div class="viewcode-block" id="DataTreeCtrl.OnCompareItems"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataTreeCtrl.OnCompareItems">[docs]</a>    <span class="k">def</span> <span class="nf">OnCompareItems</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item1</span><span class="p">,</span> <span class="n">item2</span><span class="p">):</span>
151        <span class="sd">&quot;&quot;&quot; </span>
152<span class="sd">        Overrides OnCompareItems in wx.TreeCtrl. </span>
153<span class="sd">        Used by the SortChildren method. </span>
154<span class="sd">        &quot;&quot;&quot;</span>
155        <span class="c"># Get the item data</span>
156        <span class="n">data_1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item1</span><span class="p">)</span>
157        <span class="n">data_2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item2</span><span class="p">)</span>
158        <span class="c"># Compare the item data</span>
159        <span class="k">if</span> <span class="n">data_1</span> <span class="o">&lt;</span> <span class="n">data_2</span><span class="p">:</span>
160            <span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
161        <span class="k">elif</span> <span class="n">data_1</span> <span class="o">&gt;</span> <span class="n">data_2</span><span class="p">:</span>
162            <span class="k">return</span> <span class="mi">1</span>
163        <span class="k">else</span><span class="p">:</span>
164            <span class="k">return</span> <span class="mi">0</span>
165        </div></div>
166<div class="viewcode-block" id="DataPanel"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel">[docs]</a><span class="k">class</span> <span class="nc">DataPanel</span><span class="p">(</span><span class="n">ScrolledPanel</span><span class="p">,</span> <span class="n">PanelBase</span><span class="p">):</span>
167    <span class="sd">&quot;&quot;&quot;</span>
168<span class="sd">    This panel displays data available in the application and widgets to </span>
169<span class="sd">    interact with data.</span>
170<span class="sd">    &quot;&quot;&quot;</span>
171    <span class="c">## Internal name for the AUI manager</span>
172    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;Data Panel&quot;</span>
173    <span class="c">## Title to appear on top of the window</span>
174    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Data Explorer&quot;</span>
175    <span class="c">#type of window </span>
176    <span class="n">window_type</span> <span class="o">=</span> <span class="s">&quot;Data Panel&quot;</span>
177    <span class="c">## Flag to tell the GUI manager that this panel is not</span>
178    <span class="c">#  tied to any perspective</span>
179    <span class="c">#ALWAYS_ON = True</span>
180    <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> 
181                 <span class="nb">list</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
182                 <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">PANEL_WIDTH</span><span class="p">,</span> <span class="n">PANEL_HEIGHT</span><span class="p">),</span>
183                 <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span>
184                 <span class="n">list_of_perspective</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">manager</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>
185        <span class="c">#kwds[&#39;size&#39;] = size</span>
186        <span class="c">#kwds[&#39;style&#39;] = STYLE_FLAG</span>
187        <span class="n">ScrolledPanel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
188        <span class="n">PanelBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
189        <span class="bp">self</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>
190        <span class="c">#Set window&#39;s font size </span>
191        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
192        <span class="bp">self</span><span class="o">.</span><span class="n">loader</span> <span class="o">=</span> <span class="n">Loader</span><span class="p">()</span> 
193        <span class="c">#Default location</span>
194        <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="bp">None</span> 
195        <span class="bp">self</span><span class="o">.</span><span class="n">all_data1d</span> <span class="o">=</span> <span class="bp">True</span>
196        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
197        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span> <span class="o">=</span> <span class="n">manager</span>
198        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="n">parent</span>
199        <span class="k">if</span> <span class="nb">list</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
200            <span class="nb">list</span> <span class="o">=</span> <span class="p">[]</span>
201        <span class="bp">self</span><span class="o">.</span><span class="n">list_of_data</span> <span class="o">=</span> <span class="nb">list</span>
202        <span class="k">if</span> <span class="n">list_of_perspective</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
203            <span class="n">list_of_perspective</span> <span class="o">=</span> <span class="p">[]</span>
204        <span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span> <span class="o">=</span> <span class="n">list_of_perspective</span>
205        <span class="bp">self</span><span class="o">.</span><span class="n">list_rb_perspectives</span> <span class="o">=</span> <span class="p">[]</span>
206        <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span> <span class="o">=</span> <span class="p">{}</span>
207        <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span> <span class="o">=</span> <span class="p">{}</span>
208        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">=</span> <span class="bp">None</span>
209        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">=</span> <span class="bp">None</span>
210        <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span> <span class="o">=</span> <span class="bp">None</span>
211        <span class="c">## Create context menu for page</span>
212        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span> <span class="o">=</span> <span class="bp">None</span>
213        <span class="bp">self</span><span class="o">.</span><span class="n">popUpMenu</span> <span class="o">=</span> <span class="bp">None</span>
214        <span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span> <span class="o">=</span> <span class="bp">None</span>
215        <span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span> <span class="o">=</span> <span class="bp">None</span>
216        <span class="c"># Default attr</span>
217        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span>  <span class="o">=</span> <span class="bp">None</span>
218        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span> <span class="o">=</span> <span class="bp">None</span>
219        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span> <span class="o">=</span> <span class="bp">None</span>
220        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span> <span class="o">=</span> <span class="bp">None</span>
221        <span class="bp">self</span><span class="o">.</span><span class="n">sizer4</span> <span class="o">=</span> <span class="bp">None</span>
222        <span class="bp">self</span><span class="o">.</span><span class="n">sizer5</span> <span class="o">=</span> <span class="bp">None</span>
223        <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span> <span class="o">=</span> <span class="bp">None</span>
224        <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span> <span class="o">=</span> <span class="bp">None</span>
225        <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span> <span class="o">=</span> <span class="bp">None</span>
226        <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span> <span class="o">=</span> <span class="bp">None</span>
227        <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span> <span class="o">=</span> <span class="bp">None</span>
228        <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span> <span class="o">=</span> <span class="bp">None</span>
229        <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span> <span class="o">=</span> <span class="bp">None</span>
230        <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span> <span class="o">=</span> <span class="bp">None</span>
231        <span class="bp">self</span><span class="o">.</span><span class="n">rb_single_mode</span> <span class="o">=</span> <span class="bp">None</span>
232        <span class="bp">self</span><span class="o">.</span><span class="n">rb_batch_mode</span> <span class="o">=</span> <span class="bp">None</span>
233
234        <span class="bp">self</span><span class="o">.</span><span class="n">owner</span> <span class="o">=</span> <span class="bp">None</span>
235        <span class="bp">self</span><span class="o">.</span><span class="n">do_layout</span><span class="p">()</span>
236        <span class="bp">self</span><span class="o">.</span><span class="n">fill_cbox_analysis</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span><span class="p">)</span>
237        <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_SHOW</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_close_page</span><span class="p">)</span>
238        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
239            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">EVT_DELETE_PLOTPANEL</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_delete_plot_panel</span><span class="p">)</span>
240     
241<div class="viewcode-block" id="DataPanel.do_layout"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.do_layout">[docs]</a>    <span class="k">def</span> <span class="nf">do_layout</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">            Create the panel layout</span>
244<span class="sd">        &quot;&quot;&quot;</span>
245        <span class="bp">self</span><span class="o">.</span><span class="n">define_panel_structure</span><span class="p">()</span>
246        <span class="bp">self</span><span class="o">.</span><span class="n">layout_selection</span><span class="p">()</span>
247        <span class="bp">self</span><span class="o">.</span><span class="n">layout_data_list</span><span class="p">()</span>
248        <span class="bp">self</span><span class="o">.</span><span class="n">layout_batch</span><span class="p">()</span>
249        <span class="bp">self</span><span class="o">.</span><span class="n">layout_button</span><span class="p">()</span>
250        </div>
251<div class="viewcode-block" id="DataPanel.disable_app_combo"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.disable_app_combo">[docs]</a>    <span class="k">def</span> <span class="nf">disable_app_combo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">enable</span><span class="p">):</span>
252        <span class="sd">&quot;&quot;&quot;</span>
253<span class="sd">        Disable app combo box</span>
254<span class="sd">        &quot;&quot;&quot;</span>
255        <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="n">enable</span><span class="p">)</span>
256        </div>
257<div class="viewcode-block" id="DataPanel.define_panel_structure"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.define_panel_structure">[docs]</a>    <span class="k">def</span> <span class="nf">define_panel_structure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
258        <span class="sd">&quot;&quot;&quot;</span>
259<span class="sd">        Define the skeleton of the panel</span>
260<span class="sd">        &quot;&quot;&quot;</span>
261        <span class="n">w</span><span class="p">,</span> <span class="n">h</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">GetSize</span><span class="p">()</span>
262        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
263        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
264        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="n">w</span><span class="o">/</span><span class="mi">13</span><span class="p">,</span> <span class="n">h</span><span class="o">*</span><span class="mi">2</span><span class="o">/</span><span class="mi">5</span><span class="p">))</span>
265     
266        <span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
267        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
268        <span class="bp">self</span><span class="o">.</span><span class="n">sizer4</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>
269        <span class="bp">self</span><span class="o">.</span><span class="n">sizer5</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>
270       
271        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer5</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">1</span><span class="p">)</span>
272        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
273        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer2</span><span class="p">,</span> <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">1</span><span class="p">)</span>
274        <span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="p">,</span> <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>
275        <span class="c">#self.vbox.Add(self.sizer4, 0, wx.EXPAND|wx.ALL,5)</span>
276       
277        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vbox</span><span class="p">)</span>
278        </div>
279<div class="viewcode-block" id="DataPanel.layout_selection"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.layout_selection">[docs]</a>    <span class="k">def</span> <span class="nf">layout_selection</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
280        <span class="sd">&quot;&quot;&quot;</span>
281<span class="sd">            Create selection option combo box</span>
282<span class="sd">        &quot;&quot;&quot;</span>
283        <span class="n">select_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;Selection Options&#39;</span><span class="p">)</span>
284        <span class="n">select_txt</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="s">&#39;blue&#39;</span><span class="p">)</span>
285        <span class="bp">self</span><span class="o">.</span><span class="n">selection_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>
286        <span class="n">list_of_options</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;Select all Data&#39;</span><span class="p">,</span>
287                            <span class="s">&#39;Unselect all Data&#39;</span><span class="p">,</span>
288                           <span class="s">&#39;Select all Data 1D&#39;</span><span class="p">,</span>
289                           <span class="s">&#39;Unselect all Data 1D&#39;</span><span class="p">,</span>
290                           <span class="s">&#39;Select all Data 2D&#39;</span><span class="p">,</span>
291                           <span class="s">&#39;Unselect all Data 2D&#39;</span> <span class="p">]</span>
292        <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">list_of_options</span><span class="p">:</span>
293            <span class="bp">self</span><span class="o">.</span><span class="n">selection_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">option</span><span class="p">))</span>
294        <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;Select all Data&#39;</span><span class="p">)</span>
295        <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">selection_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_selection_type</span><span class="p">)</span>
296        <span class="bp">self</span><span class="o">.</span><span class="n">sizer5</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">select_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">ALL</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">selection_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">ALL</span><span class="p">,</span><span class="mi">5</span><span class="p">)])</span>
298        <span class="bp">self</span><span class="o">.</span><span class="n">enable_selection</span><span class="p">()</span>
299       
300    </div>
301    <span class="k">def</span> <span class="nf">_on_selection_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
302        <span class="sd">&quot;&quot;&quot;</span>
303<span class="sd">            Select data according to patterns</span>
304<span class="sd">            :param event: UI event</span>
305<span class="sd">        &quot;&quot;&quot;</span>
306        <span class="n">option</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
307       
308        <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
309        <span class="k">if</span> <span class="n">pos</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">:</span>
310            <span class="k">return</span> 
311        <span class="n">option</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
312        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
313            <span class="n">data_ctrl</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
314            <span class="n">_</span><span class="p">,</span> <span class="n">data_class</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">tree_ctrl</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">)</span> 
315            <span class="k">if</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Select all Data&#39;</span><span class="p">:</span>
316                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span> 
317            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Unselect all Data&#39;</span><span class="p">:</span>
318                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
319            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Select all Data 1D&#39;</span><span class="p">:</span>
320                <span class="k">if</span> <span class="n">data_class</span> <span class="o">==</span> <span class="s">&#39;Data1D&#39;</span><span class="p">:</span>
321                    <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span> 
322            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Unselect all Data 1D&#39;</span><span class="p">:</span>
323                <span class="k">if</span> <span class="n">data_class</span> <span class="o">==</span> <span class="s">&#39;Data1D&#39;</span><span class="p">:</span>
324                    <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span> 
325            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Select all Data 1D&#39;</span><span class="p">:</span>
326                <span class="k">if</span> <span class="n">data_class</span> <span class="o">==</span> <span class="s">&#39;Data1D&#39;</span><span class="p">:</span>
327                    <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span> 
328            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Select all Data 2D&#39;</span><span class="p">:</span>
329                <span class="k">if</span> <span class="n">data_class</span> <span class="o">==</span> <span class="s">&#39;Data2D&#39;</span><span class="p">:</span>
330                    <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span> 
331            <span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s">&#39;Unselect all Data 2D&#39;</span><span class="p">:</span>
332                <span class="k">if</span> <span class="n">data_class</span> <span class="o">==</span> <span class="s">&#39;Data2D&#39;</span><span class="p">:</span>
333                    <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span> 
334        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
335        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
336        <span class="bp">self</span><span class="o">.</span><span class="n">enable_plot</span><span class="p">()</span>
337        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
338        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</span><span class="p">()</span>
339               
340<div class="viewcode-block" id="DataPanel.layout_button"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.layout_button">[docs]</a>    <span class="k">def</span> <span class="nf">layout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
341        <span class="sd">&quot;&quot;&quot;</span>
342<span class="sd">        Layout widgets related to buttons</span>
343<span class="sd">        &quot;&quot;&quot;</span>
344        <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Load Data&quot;</span><span class="p">,</span> 
345                                <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
346        <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Load data files&quot;</span><span class="p">)</span>
347        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">_load_data</span><span class="p">)</span>
348        <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Delete Data&quot;</span><span class="p">,</span>
349         <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
350        <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Delete data from the application&quot;</span><span class="p">)</span>
351        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_remove</span><span class="p">)</span>
352        <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Send To&quot;</span><span class="p">,</span>
353                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
354        <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Send Data set to active perspective&quot;</span><span class="p">)</span>
355        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_import</span><span class="p">)</span>
356        <span class="bp">self</span><span class="o">.</span><span class="n">perspective_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>
357                                <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>
358        <span class="k">if</span> <span class="ow">not</span> <span class="n">IS_MAC</span><span class="p">:</span>
359            <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="n">BUTTON_WIDTH</span><span class="o">*</span><span class="mf">1.6</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
360        <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">perspective_cbox</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> 
361                        <span class="bp">self</span><span class="o">.</span><span class="n">_on_perspective_selection</span><span class="p">)</span>
362   
363        <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Append Plot To&quot;</span><span class="p">,</span>
364                                        <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
365        <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span> \
366                                <span class="s">&quot;Plot the selected data in the active panel&quot;</span><span class="p">)</span>
367        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_append_plot</span><span class="p">)</span>
368       
369        <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;New Plot&quot;</span><span class="p">,</span> 
370                                 <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
371        <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;To trigger plotting&quot;</span><span class="p">)</span>
372        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_plot</span><span class="p">)</span>
373       
374        <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">(),</span> <span class="s">&quot;Freeze Theory&quot;</span><span class="p">,</span> 
375                                   <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">BUTTON_WIDTH</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
376        <span class="n">freeze_tip</span> <span class="o">=</span> <span class="s">&quot;To trigger freeze a theory: making a copy</span><span class="se">\n</span><span class="s">&quot;</span>
377        <span class="n">freeze_tip</span> <span class="o">+=</span> <span class="s">&quot;of the theory checked to Data box,</span><span class="se">\n</span><span class="s">&quot;</span>
378        <span class="n">freeze_tip</span> <span class="o">+=</span> <span class="s">&quot;     so that it can act like a real data set.&quot;</span>
379        <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">freeze_tip</span><span class="p">)</span>
380        <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="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span><span class="o">.</span><span class="n">GetId</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_freeze</span><span class="p">)</span>
381       
382        <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="s">&#39;darwin&#39;</span><span class="p">:</span>
383            <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</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> 
384                                            <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>
385        <span class="k">else</span><span class="p">:</span>
386            <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</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> 
387                                            <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="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_SORT</span><span class="p">)</span>
388        <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">cb_plotpanel</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_plot_selection</span><span class="p">)</span>
389        <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
390
391        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</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_add</span><span class="p">),</span>
392                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)),</span>
393                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span><span class="p">),</span>
394                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)),</span>
395                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span><span class="p">),</span>
396                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)),</span>
397                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span><span class="p">),</span>
398                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)),</span>
399                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="p">),</span>
400                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="p">,</span> 
401                              <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
402                             <span class="p">((</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)),</span>
403                             <span class="p">((</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)),</span>
404                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bt_import</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">RIGHT</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
405                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="p">,</span> 
406                              <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span>
407                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">)),</span>
408                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sizer4</span><span class="p">),</span>
409                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">40</span><span class="p">)),</span>
410                             <span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">40</span><span class="p">))])</span>
411
412        <span class="bp">self</span><span class="o">.</span><span class="n">sizer3</span><span class="o">.</span><span class="n">AddGrowableCol</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
413        <span class="bp">self</span><span class="o">.</span><span class="n">show_data_button</span><span class="p">()</span>
414        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</span><span class="p">()</span>
415        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
416        <span class="bp">self</span><span class="o">.</span><span class="n">enable_plot</span><span class="p">()</span>
417        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
418        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
419        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove_plot</span><span class="p">()</span>
420        </div>
421<div class="viewcode-block" id="DataPanel.layout_batch"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.layout_batch">[docs]</a>    <span class="k">def</span> <span class="nf">layout_batch</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
422        <span class="sd">&quot;&quot;&quot;</span>
423<span class="sd">            Set up batch mode options</span>
424<span class="sd">        &quot;&quot;&quot;</span>
425        <span class="bp">self</span><span class="o">.</span><span class="n">rb_single_mode</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Single Mode&#39;</span><span class="p">,</span>
426                                             <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>
427        <span class="bp">self</span><span class="o">.</span><span class="n">rb_batch_mode</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">RadioButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Batch Mode&#39;</span><span class="p">)</span>
428        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_single_mode</span><span class="p">,</span>
429                     <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">rb_single_mode</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
430        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_RADIOBUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_batch_mode</span><span class="p">,</span>
431                   <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">rb_batch_mode</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
432       
433        <span class="bp">self</span><span class="o">.</span><span class="n">rb_single_mode</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">batch_on</span><span class="p">)</span>
434        <span class="bp">self</span><span class="o">.</span><span class="n">rb_batch_mode</span><span class="o">.</span><span class="n">SetValue</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">batch_on</span><span class="p">)</span>
435        <span class="bp">self</span><span class="o">.</span><span class="n">sizer4</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">rb_single_mode</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">4</span><span class="p">),</span>
436                             <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rb_batch_mode</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">4</span><span class="p">)])</span>
437        </div>
438<div class="viewcode-block" id="DataPanel.on_single_mode"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_single_mode">[docs]</a>    <span class="k">def</span> <span class="nf">on_single_mode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
439        <span class="sd">&quot;&quot;&quot;</span>
440<span class="sd">            Change to single mode</span>
441<span class="sd">            :param event: UI event</span>
442<span class="sd">        &quot;&quot;&quot;</span>
443        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
444            <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="p">,</span> <span class="n">NewBatchEvent</span><span class="p">(</span><span class="n">enable</span><span class="o">=</span><span class="bp">False</span><span class="p">))</span>
445       </div>
446<div class="viewcode-block" id="DataPanel.on_batch_mode"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_batch_mode">[docs]</a>    <span class="k">def</span> <span class="nf">on_batch_mode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
447        <span class="sd">&quot;&quot;&quot;</span>
448<span class="sd">            Change to batch mode</span>
449<span class="sd">            :param event: UI event</span>
450<span class="sd">        &quot;&quot;&quot;</span>
451        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
452            <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="p">,</span> 
453                         <span class="n">NewBatchEvent</span><span class="p">(</span><span class="n">enable</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>
454    </div>
455    <span class="k">def</span> <span class="nf">_get_data_selection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span> 
456        <span class="sd">&quot;&quot;&quot;</span>
457<span class="sd">            Get data selection from the right click</span>
458<span class="sd">            :param event: UI event</span>
459<span class="sd">        &quot;&quot;&quot;</span>
460        <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
461        <span class="c">#selection = event.GetSelection()</span>
462        <span class="nb">id</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">FindFocus</span><span class="p">()</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span><span class="o">.</span><span class="n">GetData</span><span class="p">()</span>
463        <span class="n">data_list</span><span class="p">,</span> <span class="n">theory_list</span> <span class="o">=</span> \
464                        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_data_manager</span><span class="p">()</span><span class="o">.</span><span class="n">get_by_id</span><span class="p">(</span><span class="n">id_list</span><span class="o">=</span><span class="p">[</span><span class="nb">id</span><span class="p">])</span>
465        <span class="k">if</span> <span class="n">data_list</span><span class="p">:</span>
466            <span class="n">data</span> <span class="o">=</span> <span class="n">data_list</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
467        <span class="k">if</span> <span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
468            <span class="n">data</span> <span class="o">=</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">values</span><span class="p">()[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
469        <span class="k">return</span> <span class="n">data</span>
470   
471<div class="viewcode-block" id="DataPanel.on_edit_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_edit_data">[docs]</a>    <span class="k">def</span> <span class="nf">on_edit_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
472        <span class="sd">&quot;&quot;&quot;</span>
473<span class="sd">        Pop Up Data Editor</span>
474<span class="sd">        &quot;&quot;&quot;</span>
475        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_data_selection</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
476        <span class="kn">from</span> <span class="nn">sas.guiframe.local_perspectives.plotting.masking</span> \
477            <span class="kn">import</span> <span class="n">MaskPanel</span> <span class="k">as</span> <span class="n">MaskDialog</span>
478       
479        <span class="n">panel</span> <span class="o">=</span> <span class="n">MaskDialog</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> 
480                           <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <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>
481        <span class="n">panel</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
482    </div>
483<div class="viewcode-block" id="DataPanel.on_plot_3d"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_plot_3d">[docs]</a>    <span class="k">def</span> <span class="nf">on_plot_3d</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
484        <span class="sd">&quot;&quot;&quot;</span>
485<span class="sd">        Frozen image of 3D</span>
486<span class="sd">        &quot;&quot;&quot;</span>
487        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_data_selection</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
488        <span class="kn">from</span> <span class="nn">sas.guiframe.local_perspectives.plotting.masking</span> \
489        <span class="kn">import</span> <span class="n">FloatPanel</span> <span class="k">as</span> <span class="n">Float3dDialog</span>
490       
491        <span class="n">panel</span> <span class="o">=</span> <span class="n">Float3dDialog</span><span class="p">(</span><span class="n">base</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> 
492                              <span class="n">dimension</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <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>
493        <span class="n">panel</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>   
494    </div>
495<div class="viewcode-block" id="DataPanel.on_quick_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_quick_plot">[docs]</a>    <span class="k">def</span> <span class="nf">on_quick_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
496        <span class="sd">&quot;&quot;&quot;</span>
497<span class="sd">        Frozen plot</span>
498<span class="sd">        &quot;&quot;&quot;</span>
499        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_data_selection</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
500        <span class="k">if</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;Data2D&quot;</span><span class="p">:</span>
501            <span class="n">dimension</span> <span class="o">=</span> <span class="mi">2</span>
502        <span class="k">else</span><span class="p">:</span>
503            <span class="n">dimension</span> <span class="o">=</span> <span class="mi">1</span> 
504        <span class="c">#panel = QucikPlotDialog(base=self, data=data, </span>
505        <span class="c">#                        dimension=dimension, id=wx.NewId())</span>
506        <span class="n">frame</span> <span class="o">=</span> <span class="n">QucikPlotDialog</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;Plot &quot;</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="s">&#39;log_{10}&#39;</span><span class="p">)</span>
507        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">put_icon</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
508        <span class="n">frame</span><span class="o">.</span><span class="n">add_plot</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
509        <span class="c">#frame.SetTitle(title)</span>
510        <span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
511        <span class="n">frame</span><span class="o">.</span><span class="n">SetFocus</span><span class="p">()</span>
512        <span class="c">#panel.ShowModal()    </span>
513    </div>
514<div class="viewcode-block" id="DataPanel.on_data_info"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_data_info">[docs]</a>    <span class="k">def</span> <span class="nf">on_data_info</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
515        <span class="sd">&quot;&quot;&quot;</span>
516<span class="sd">        Data Info panel</span>
517<span class="sd">        &quot;&quot;&quot;</span>
518        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_data_selection</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
519        <span class="k">if</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;Data2D&quot;</span><span class="p">:</span>
520            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">show_data2d</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
521        <span class="k">else</span><span class="p">:</span>
522            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">show_data1d</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
523        </div>
524<div class="viewcode-block" id="DataPanel.on_save_as"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_save_as">[docs]</a>    <span class="k">def</span> <span class="nf">on_save_as</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
525        <span class="sd">&quot;&quot;&quot;</span>
526<span class="sd">        Save data as a file</span>
527<span class="sd">        &quot;&quot;&quot;</span>
528        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_data_selection</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
529        <span class="c">#path = None</span>
530        <span class="n">default_name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span>
531        <span class="k">if</span> <span class="n">default_name</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
532            <span class="n">default_name</span> <span class="o">=</span> <span class="n">default_name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
533        <span class="n">default_name</span> <span class="o">+=</span> <span class="s">&quot;_out&quot;</span>
534        <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="bp">None</span><span class="p">:</span>
535            <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span> <span class="n">Data1D</span><span class="p">):</span>
536                <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">save_data1d</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">default_name</span><span class="p">)</span>
537            <span class="k">elif</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>
538                <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">save_data2d</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">default_name</span><span class="p">)</span>
539            <span class="k">else</span><span class="p">:</span>
540                <span class="k">print</span> <span class="s">&quot;unable to save this type of data&quot;</span>
541        </div>
542<div class="viewcode-block" id="DataPanel.layout_data_list"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.layout_data_list">[docs]</a>    <span class="k">def</span> <span class="nf">layout_data_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
543        <span class="sd">&quot;&quot;&quot;</span>
544<span class="sd">        Add a listcrtl in the panel</span>
545<span class="sd">        &quot;&quot;&quot;</span>
546        <span class="n">tree_ctrl_label</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Data&quot;</span><span class="p">)</span>
547        <span class="n">tree_ctrl_label</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="s">&#39;blue&#39;</span><span class="p">)</span>
548        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">=</span> <span class="n">DataTreeCtrl</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">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">SUNKEN_BORDER</span><span class="p">)</span>
549        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">CT</span><span class="o">.</span><span class="n">EVT_TREE_ITEM_CHECKING</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_check_item</span><span class="p">)</span>
550        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">CT</span><span class="o">.</span><span class="n">EVT_TREE_ITEM_MENU</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_right_click_data</span><span class="p">)</span>
551        <span class="c">## Create context menu for page</span>
552        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">()</span>
553        <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>
554        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Data Info&quot;</span>
555        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Show Data Info&quot;</span>
556        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
557        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_data_info</span><span class="p">)</span>
558       
559        <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>
560        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Save As&quot;</span>
561        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Save Theory/Data as a file&quot;</span>
562        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
563        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_save_as</span><span class="p">)</span>
564   
565        <span class="n">quickplot_id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
566        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Quick Plot&quot;</span>
567        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plot the current Data&quot;</span>
568        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">quickplot_id</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
569        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">quickplot_id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_quick_plot</span><span class="p">)</span>
570       
571        <span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
572        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Quick 3DPlot (Slow)&quot;</span>
573        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plot3D the current 2D Data&quot;</span>
574        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
575        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_plot_3d</span><span class="p">)</span>
576           
577        <span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
578        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Edit Mask&quot;</span>
579        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Edit Mask for the current 2D Data&quot;</span>
580        <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
581        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_edit_data</span><span class="p">)</span>
582       
583        <span class="n">tree_ctrl_theory_label</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Theory&quot;</span><span class="p">)</span>
584        <span class="n">tree_ctrl_theory_label</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="s">&#39;blue&#39;</span><span class="p">)</span>
585        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">=</span> <span class="n">DataTreeCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> 
586                                                    <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">SUNKEN_BORDER</span><span class="p">)</span>
587        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">CT</span><span class="o">.</span><span class="n">EVT_TREE_ITEM_CHECKING</span><span class="p">,</span> 
588                                                    <span class="bp">self</span><span class="o">.</span><span class="n">on_check_item</span><span class="p">)</span>
589        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">CT</span><span class="o">.</span><span class="n">EVT_TREE_ITEM_MENU</span><span class="p">,</span> 
590                                   <span class="bp">self</span><span class="o">.</span><span class="n">on_right_click_theory</span><span class="p">)</span>
591        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tree_ctrl_label</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>
592        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
593        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tree_ctrl_theory_label</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>
594        <span class="bp">self</span><span class="o">.</span><span class="n">sizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
595           </div>
596<div class="viewcode-block" id="DataPanel.on_right_click_theory"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_right_click_theory">[docs]</a>    <span class="k">def</span> <span class="nf">on_right_click_theory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
597        <span class="sd">&quot;&quot;&quot;</span>
598<span class="sd">        On click theory data</span>
599<span class="sd">        &quot;&quot;&quot;</span>
600        <span class="k">try</span><span class="p">:</span>
601            <span class="nb">id</span><span class="p">,</span> <span class="n">data_class_name</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> \
602                            <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span><span class="o">.</span><span class="n">GetData</span><span class="p">()</span>
603            <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">parent</span><span class="o">.</span><span class="n">get_data_manager</span><span class="p">()</span><span class="o">.</span><span class="n">get_by_id</span><span class="p">(</span><span class="n">id_list</span><span class="o">=</span><span class="p">[</span><span class="nb">id</span><span class="p">])</span>
604        <span class="k">except</span><span class="p">:</span>
605            <span class="k">return</span>
606        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
607            <span class="n">menu_enable</span> <span class="o">=</span> <span class="p">(</span><span class="n">data_class_name</span> <span class="o">==</span> <span class="s">&quot;Data2D&quot;</span><span class="p">)</span>
608            <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
609            <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span><span class="p">,</span> <span class="n">menu_enable</span><span class="p">)</span>
610            <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="p">)</span> 
611                   </div>
612<div class="viewcode-block" id="DataPanel.on_right_click_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_right_click_data">[docs]</a>    <span class="k">def</span> <span class="nf">on_right_click_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
613        <span class="sd">&quot;&quot;&quot;</span>
614<span class="sd">        Allow Editing Data</span>
615<span class="sd">        &quot;&quot;&quot;</span>
616        <span class="c">#selection = event.GetSelection()</span>
617        <span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
618        <span class="k">try</span><span class="p">:</span>
619            <span class="nb">id</span><span class="p">,</span> <span class="n">data_class_name</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">tree_ctrl</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span><span class="o">.</span><span class="n">GetData</span><span class="p">()</span>
620            <span class="n">data_list</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> \
621                        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_data_manager</span><span class="p">()</span><span class="o">.</span><span class="n">get_by_id</span><span class="p">(</span><span class="n">id_list</span><span class="o">=</span><span class="p">[</span><span class="nb">id</span><span class="p">])</span>
622            <span class="k">if</span> <span class="ow">not</span> <span class="n">data_list</span><span class="p">:</span>
623                <span class="n">is_data</span> <span class="o">=</span> <span class="bp">False</span>
624        <span class="k">except</span><span class="p">:</span>
625            <span class="k">return</span>
626        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
627            <span class="n">menu_enable</span> <span class="o">=</span> <span class="p">(</span><span class="n">data_class_name</span> <span class="o">==</span> <span class="s">&quot;Data2D&quot;</span><span class="p">)</span>
628            <span class="n">maskmenu_enable</span> <span class="o">=</span> <span class="p">(</span><span class="n">menu_enable</span> <span class="ow">and</span> <span class="n">is_data</span><span class="p">)</span>
629            <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">editmask_id</span><span class="p">,</span> <span class="n">maskmenu_enable</span><span class="p">)</span>
630            <span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plot3d_id</span><span class="p">,</span> <span class="n">menu_enable</span><span class="p">)</span>
631            <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data_menu</span><span class="p">)</span> 
632        </div>
633<div class="viewcode-block" id="DataPanel.onContextMenu"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.onContextMenu">[docs]</a>    <span class="k">def</span> <span class="nf">onContextMenu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span> 
634        <span class="sd">&quot;&quot;&quot;</span>
635<span class="sd">        Retrieve the state selected state</span>
636<span class="sd">        &quot;&quot;&quot;</span>
637        <span class="c"># Skipping the save state functionality for release 0.9.0</span>
638        <span class="c">#return</span>
639        <span class="n">pos</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetPosition</span><span class="p">()</span>
640        <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ScreenToClient</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
641        <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">popUpMenu</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span> 
642     
643  </div>
644<div class="viewcode-block" id="DataPanel.on_check_item"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_check_item">[docs]</a>    <span class="k">def</span> <span class="nf">on_check_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
645        <span class="sd">&quot;&quot;&quot;</span>
646<span class="sd">        On check item</span>
647<span class="sd">        &quot;&quot;&quot;</span>
648        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetItem</span><span class="p">()</span>
649        <span class="n">item</span><span class="o">.</span><span class="n">Check</span><span class="p">(</span><span class="ow">not</span> <span class="n">item</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">())</span> 
650        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
651        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
652        <span class="bp">self</span><span class="o">.</span><span class="n">enable_plot</span><span class="p">()</span>
653        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
654        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</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        </div>
657<div class="viewcode-block" id="DataPanel.fill_cbox_analysis"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.fill_cbox_analysis">[docs]</a>    <span class="k">def</span> <span class="nf">fill_cbox_analysis</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">plugin</span><span class="p">):</span>
658        <span class="sd">&quot;&quot;&quot;</span>
659<span class="sd">        fill the combobox with analysis name</span>
660<span class="sd">        &quot;&quot;&quot;</span>
661        <span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span> <span class="o">=</span> <span class="n">plugin</span>
662        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">or</span> \
663            <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="s">&quot;get_current_perspective&quot;</span><span class="p">)</span> <span class="ow">or</span> \
664            <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
665            <span class="k">return</span>
666        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span>  <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
667            <span class="k">for</span> <span class="n">plug</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span><span class="p">:</span>
668                <span class="k">if</span> <span class="n">plug</span><span class="o">.</span><span class="n">get_perspective</span><span class="p">():</span>
669                    <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">plug</span><span class="o">.</span><span class="n">sub_menu</span><span class="p">,</span> <span class="n">plug</span><span class="p">)</span>
670           
671            <span class="n">curr_pers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_current_perspective</span><span class="p">()</span>
672            <span class="k">if</span> <span class="n">curr_pers</span><span class="p">:</span>
673                <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="n">curr_pers</span><span class="o">.</span><span class="n">sub_menu</span><span class="p">)</span>
674                <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
675                        </div>
676<div class="viewcode-block" id="DataPanel.load_data_list"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.load_data_list">[docs]</a>    <span class="k">def</span> <span class="nf">load_data_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
677        <span class="sd">&quot;&quot;&quot;</span>
678<span class="sd">        add need data with its theory under the tree</span>
679<span class="sd">        &quot;&quot;&quot;</span>
680        <span class="k">if</span> <span class="nb">list</span><span class="p">:</span>
681            <span class="k">for</span> <span class="n">state_id</span><span class="p">,</span> <span class="n">dstate</span> <span class="ow">in</span> <span class="nb">list</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
682                <span class="n">data</span> <span class="o">=</span> <span class="n">dstate</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
683                <span class="n">theory_list</span> <span class="o">=</span> <span class="n">dstate</span><span class="o">.</span><span class="n">get_theory</span><span class="p">()</span>
684                <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
685                    <span class="n">data_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
686                    <span class="n">data_title</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
687                    <span class="n">data_run</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">run</span><span class="p">)</span>
688                    <span class="n">data_class</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
689                    <span class="n">path</span> <span class="o">=</span> <span class="n">dstate</span><span class="o">.</span><span class="n">get_path</span><span class="p">()</span> 
690                    <span class="n">process_list</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">process</span>
691                    <span class="n">data_id</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">id</span>
692                    <span class="n">s_path</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
693                    <span class="k">if</span> <span class="n">state_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">:</span>
694                        <span class="c">#new state</span>
695                        <span class="n">data_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">InsertItem</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">root</span><span class="p">,</span>
696                                        <span class="mi">0</span><span class="p">,</span> <span class="n">data_name</span><span class="p">,</span> <span class="n">ct_type</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> 
697                                        <span class="n">data</span><span class="o">=</span><span class="p">(</span><span class="n">data_id</span><span class="p">,</span> <span class="n">data_class</span><span class="p">,</span> <span class="n">state_id</span><span class="p">))</span>
698                        <span class="n">data_c</span><span class="o">.</span><span class="n">Check</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
699                        <span class="n">d_i_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">data_c</span><span class="p">,</span> <span class="s">&#39;Info&#39;</span><span class="p">)</span>
700                        <span class="n">d_t_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_i_c</span><span class="p">,</span> 
701                                                      <span class="s">&#39;Title: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">data_title</span><span class="p">)</span>
702                        <span class="n">r_n_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_i_c</span><span class="p">,</span> 
703                                                      <span class="s">&#39;Run: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">data_run</span><span class="p">)</span>
704                        <span class="n">i_c_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_i_c</span><span class="p">,</span> 
705                                                      <span class="s">&#39;Type: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">data_class</span><span class="p">)</span>
706                        <span class="n">p_c_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_i_c</span><span class="p">,</span>
707                                                      <span class="s">&quot;Path: &#39;</span><span class="si">%s</span><span class="s">&#39;&quot;</span> <span class="o">%</span> <span class="n">s_path</span><span class="p">)</span>
708                        <span class="n">d_p_c</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_i_c</span><span class="p">,</span> <span class="s">&#39;Process&#39;</span><span class="p">)</span>
709                       
710                        <span class="k">for</span> <span class="n">process</span> <span class="ow">in</span> <span class="n">process_list</span><span class="p">:</span>
711                            <span class="n">process_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">process</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span><span class="s">&#39; &#39;</span><span class="p">)</span>
712                            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">process_str</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">20</span><span class="p">:</span>
713                                <span class="n">process_str</span> <span class="o">=</span> <span class="n">process_str</span><span class="p">[:</span><span class="mi">20</span><span class="p">]</span><span class="o">+</span><span class="s">&#39; [...]&#39;</span>
714                            <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_p_c</span><span class="p">,</span> <span class="n">process_str</span><span class="p">)</span>
715                        <span class="n">theory_child</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">data_c</span><span class="p">,</span> 
716                                                                 <span class="s">&quot;THEORIES&quot;</span><span class="p">)</span>
717                        <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">data_c</span><span class="p">,</span> 
718                                                       <span class="n">d_i_c</span><span class="p">,</span>
719                                                       <span class="n">d_t_c</span><span class="p">,</span>
720                                                       <span class="n">r_n_c</span><span class="p">,</span>
721                                                       <span class="n">i_c_c</span><span class="p">,</span>
722                                                       <span class="n">p_c_c</span><span class="p">,</span>
723                                                       <span class="n">d_p_c</span><span class="p">,</span>
724                                                       <span class="n">theory_child</span><span class="p">]</span>
725                    <span class="k">else</span><span class="p">:</span>
726                        <span class="n">data_ctrl_list</span> <span class="o">=</span>  <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span>
727                        <span class="c">#This state is already display replace it contains</span>
728                        <span class="n">data_c</span><span class="p">,</span> <span class="n">d_i_c</span><span class="p">,</span> <span class="n">d_t_c</span><span class="p">,</span> <span class="n">r_n_c</span><span class="p">,</span>  <span class="n">i_c_c</span><span class="p">,</span> <span class="n">p_c_c</span><span class="p">,</span> <span class="n">d_p_c</span><span class="p">,</span> <span class="n">_</span> \
729                                <span class="o">=</span> <span class="n">data_ctrl_list</span>
730                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">SetItemText</span><span class="p">(</span><span class="n">data_c</span><span class="p">,</span> <span class="n">data_name</span><span class="p">)</span> 
731                        <span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">data_id</span><span class="p">,</span> <span class="n">data_class</span><span class="p">,</span> <span class="n">state_id</span><span class="p">)</span>
732                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">data_c</span><span class="p">,</span> <span class="n">temp</span><span class="p">)</span> 
733                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">SetItemText</span><span class="p">(</span><span class="n">i_c_c</span><span class="p">,</span> 
734                                                   <span class="s">&#39;Type: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">data_class</span><span class="p">)</span>
735                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">SetItemText</span><span class="p">(</span><span class="n">p_c_c</span><span class="p">,</span> 
736                                                   <span class="s">&#39;Path: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">s_path</span><span class="p">)</span> 
737                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">DeleteChildren</span><span class="p">(</span><span class="n">d_p_c</span><span class="p">)</span> 
738                        <span class="k">for</span> <span class="n">process</span> <span class="ow">in</span> <span class="n">process_list</span><span class="p">:</span>
739                            <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">d_p_c</span><span class="p">,</span>
740                                                              <span class="n">process</span><span class="o">.</span><span class="n">__str__</span><span class="p">())</span>
741                <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">append_theory</span><span class="p">,</span> <span class="n">state_id</span><span class="p">,</span> <span class="n">theory_list</span><span class="p">)</span>
742            <span class="c"># Sort by data name</span>
743            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">root</span><span class="p">:</span>
744                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">SortChildren</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">root</span><span class="p">)</span>   
745        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</span><span class="p">()</span>
746        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
747        <span class="bp">self</span><span class="o">.</span><span class="n">enable_plot</span><span class="p">()</span>
748        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
749        <span class="bp">self</span><span class="o">.</span><span class="n">enable_selection</span><span class="p">()</span>
750        </div>
751    <span class="k">def</span> <span class="nf">_uncheck_all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
752        <span class="sd">&quot;&quot;&quot;</span>
753<span class="sd">        Uncheck all check boxes</span>
754<span class="sd">        &quot;&quot;&quot;</span>
755        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
756            <span class="n">data_ctrl</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
757            <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">CheckItem</span><span class="p">(</span><span class="n">data_ctrl</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span> 
758        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
759        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
760        <span class="bp">self</span><span class="o">.</span><span class="n">enable_plot</span><span class="p">()</span>
761        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
762        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</span><span class="p">()</span>
763   
764<div class="viewcode-block" id="DataPanel.append_theory"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.append_theory">[docs]</a>    <span class="k">def</span> <span class="nf">append_theory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state_id</span><span class="p">,</span> <span class="n">theory_list</span><span class="p">):</span>
765        <span class="sd">&quot;&quot;&quot;</span>
766<span class="sd">        append theory object under data from a state of id = state_id</span>
767<span class="sd">        replace that theory if  already displayed</span>
768<span class="sd">        &quot;&quot;&quot;</span>
769        <span class="k">if</span> <span class="ow">not</span> <span class="n">theory_list</span><span class="p">:</span>
770            <span class="k">return</span> 
771        <span class="k">if</span> <span class="n">state_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
772            <span class="n">root</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">root</span>
773            <span class="n">tree</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span>
774        <span class="k">else</span><span class="p">:</span>
775            <span class="n">item</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span>
776            <span class="n">data_c</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
777            <span class="n">root</span> <span class="o">=</span> <span class="n">data_c</span>
778            <span class="n">tree</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span>
779        <span class="k">if</span> <span class="n">root</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
780            <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">append_theory_helper</span><span class="p">,</span> <span class="n">tree</span><span class="o">=</span><span class="n">tree</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">root</span><span class="p">,</span> 
781                                       <span class="n">state_id</span><span class="o">=</span><span class="n">state_id</span><span class="p">,</span> 
782                                       <span class="n">theory_list</span><span class="o">=</span><span class="n">theory_list</span><span class="p">)</span>
783     
784      </div>
785<div class="viewcode-block" id="DataPanel.append_theory_helper"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.append_theory_helper">[docs]</a>    <span class="k">def</span> <span class="nf">append_theory_helper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tree</span><span class="p">,</span> <span class="n">root</span><span class="p">,</span> <span class="n">state_id</span><span class="p">,</span> <span class="n">theory_list</span><span class="p">):</span>
786        <span class="sd">&quot;&quot;&quot;</span>
787<span class="sd">        Append theory helper</span>
788<span class="sd">        &quot;&quot;&quot;</span>
789        <span class="k">if</span> <span class="n">state_id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
790            <span class="c">#update current list of theory for this data</span>
791            <span class="n">theory_list_ctrl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span>
792
793            <span class="k">for</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
794                <span class="n">theory_data</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
795                <span class="k">if</span> <span class="n">theory_data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
796                    <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Unknown&quot;</span>
797                    <span class="n">theory_class</span> <span class="o">=</span> <span class="s">&quot;Unknown&quot;</span>
798                    <span class="n">theory_id</span> <span class="o">=</span> <span class="s">&quot;Unknown&quot;</span>
799                    <span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
800                <span class="k">else</span><span class="p">:</span>
801                    <span class="n">name</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">name</span>
802                    <span class="n">theory_class</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
803                    <span class="n">theory_id</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">id</span>
804                    <span class="c">#if theory_state is not None:</span>
805                    <span class="c">#    name = theory_state.model.name</span>
806                    <span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">theory_id</span><span class="p">,</span> <span class="n">theory_class</span><span class="p">,</span> <span class="n">state_id</span><span class="p">)</span>
807                <span class="k">if</span> <span class="n">theory_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">theory_list_ctrl</span><span class="p">:</span>
808                    <span class="c">#add new theory</span>
809                    <span class="n">t_child</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">root</span><span class="p">,</span>
810                                                    <span class="n">name</span><span class="p">,</span> <span class="n">ct_type</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">temp</span><span class="p">)</span>
811                    <span class="n">t_i_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_child</span><span class="p">,</span> <span class="s">&#39;Info&#39;</span><span class="p">)</span>
812                    <span class="n">i_c_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_i_c</span><span class="p">,</span> 
813                                                  <span class="s">&#39;Type: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">theory_class</span><span class="p">)</span>
814                    <span class="n">t_p_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_i_c</span><span class="p">,</span> <span class="s">&#39;Process&#39;</span><span class="p">)</span>
815                   
816                    <span class="k">for</span> <span class="n">process</span> <span class="ow">in</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">process</span><span class="p">:</span>
817                        <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_p_c</span><span class="p">,</span> <span class="n">process</span><span class="o">.</span><span class="n">__str__</span><span class="p">())</span>
818                    <span class="n">theory_list_ctrl</span><span class="p">[</span><span class="n">theory_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">t_child</span><span class="p">,</span> 
819                                                   <span class="n">i_c_c</span><span class="p">,</span> 
820                                                   <span class="n">t_p_c</span><span class="p">]</span>
821                <span class="k">else</span><span class="p">:</span>
822                    <span class="c">#replace theory</span>
823                    <span class="n">t_child</span><span class="p">,</span> <span class="n">i_c_c</span><span class="p">,</span> <span class="n">t_p_c</span> <span class="o">=</span> <span class="n">theory_list_ctrl</span><span class="p">[</span><span class="n">theory_id</span><span class="p">]</span>
824                    <span class="n">tree</span><span class="o">.</span><span class="n">SetItemText</span><span class="p">(</span><span class="n">t_child</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> 
825                    <span class="n">tree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">t_child</span><span class="p">,</span> <span class="n">temp</span><span class="p">)</span> 
826                    <span class="n">tree</span><span class="o">.</span><span class="n">SetItemText</span><span class="p">(</span><span class="n">i_c_c</span><span class="p">,</span> <span class="s">&#39;Type: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">theory_class</span><span class="p">)</span> 
827                    <span class="n">tree</span><span class="o">.</span><span class="n">DeleteChildren</span><span class="p">(</span><span class="n">t_p_c</span><span class="p">)</span> 
828                    <span class="k">for</span> <span class="n">process</span> <span class="ow">in</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">process</span><span class="p">:</span>
829                        <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_p_c</span><span class="p">,</span> <span class="n">process</span><span class="o">.</span><span class="n">__str__</span><span class="p">())</span>
830             
831        <span class="k">else</span><span class="p">:</span>
832            <span class="c">#data didn&#39;t have a theory associated it before</span>
833            <span class="n">theory_list_ctrl</span> <span class="o">=</span> <span class="p">{}</span>
834            <span class="k">for</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">theory_list</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
835                <span class="n">theory_data</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
836                <span class="k">if</span> <span class="n">theory_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
837                    <span class="n">name</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">name</span>
838                    <span class="n">theory_class</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
839                    <span class="n">theory_id</span> <span class="o">=</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">id</span>
840                    <span class="c">#if theory_state is not None:</span>
841                    <span class="c">#    name = theory_state.model.name </span>
842                    <span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">theory_id</span><span class="p">,</span> <span class="n">theory_class</span><span class="p">,</span> <span class="n">state_id</span><span class="p">)</span>
843                    <span class="n">t_child</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">root</span><span class="p">,</span>
844                            <span class="n">name</span><span class="p">,</span> <span class="n">ct_type</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> 
845                            <span class="n">data</span><span class="o">=</span><span class="p">(</span><span class="n">theory_data</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">theory_class</span><span class="p">,</span> <span class="n">state_id</span><span class="p">))</span>
846                    <span class="n">t_i_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_child</span><span class="p">,</span> <span class="s">&#39;Info&#39;</span><span class="p">)</span>
847                    <span class="n">i_c_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_i_c</span><span class="p">,</span> 
848                                                  <span class="s">&#39;Type: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">theory_class</span><span class="p">)</span>
849                    <span class="n">t_p_c</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_i_c</span><span class="p">,</span> <span class="s">&#39;Process&#39;</span><span class="p">)</span>
850                   
851                    <span class="k">for</span> <span class="n">process</span> <span class="ow">in</span> <span class="n">theory_data</span><span class="o">.</span><span class="n">process</span><span class="p">:</span>
852                        <span class="n">tree</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">t_p_c</span><span class="p">,</span> <span class="n">process</span><span class="o">.</span><span class="n">__str__</span><span class="p">())</span>
853           
854                    <span class="n">theory_list_ctrl</span><span class="p">[</span><span class="n">theory_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">t_child</span><span class="p">,</span> <span class="n">i_c_c</span><span class="p">,</span> <span class="n">t_p_c</span><span class="p">]</span>
855                <span class="c">#self.list_cb_theory[data_id] = theory_list_ctrl</span>
856                <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">theory_list_ctrl</span>
857       
858           
859   </div>
860<div class="viewcode-block" id="DataPanel.set_data_helper"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_data_helper">[docs]</a>    <span class="k">def</span> <span class="nf">set_data_helper</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
861        <span class="sd">&quot;&quot;&quot;</span>
862<span class="sd">        Set data helper</span>
863<span class="sd">        &quot;&quot;&quot;</span>
864        <span class="n">data_to_plot</span> <span class="o">=</span> <span class="p">[]</span>
865        <span class="n">state_to_plot</span> <span class="o">=</span> <span class="p">[]</span>
866        <span class="n">theory_to_plot</span> <span class="o">=</span> <span class="p">[]</span>
867        <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
868            <span class="n">item</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span>  <span class="n">_</span> <span class="o">=</span> <span class="n">value</span>
869            <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">():</span>
870                <span class="n">data_id</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
871                <span class="n">data_to_plot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data_id</span><span class="p">)</span>
872                <span class="k">if</span> <span class="n">state_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">state_to_plot</span><span class="p">:</span>
873                    <span class="n">state_to_plot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">state_id</span><span class="p">)</span>
874           
875        <span class="k">for</span> <span class="n">theory_dict</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
876            <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">theory_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
877                <span class="n">item</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">value</span>
878                <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">():</span>
879                    <span class="n">theory_id</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
880                    <span class="n">theory_to_plot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">theory_id</span><span class="p">)</span>
881                    <span class="k">if</span> <span class="n">state_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">state_to_plot</span><span class="p">:</span>
882                        <span class="n">state_to_plot</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">state_id</span><span class="p">)</span>
883        <span class="k">return</span> <span class="n">data_to_plot</span><span class="p">,</span> <span class="n">theory_to_plot</span><span class="p">,</span> <span class="n">state_to_plot</span>
884    </div>
885<div class="viewcode-block" id="DataPanel.remove_by_id"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.remove_by_id">[docs]</a>    <span class="k">def</span> <span class="nf">remove_by_id</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">):</span>
886        <span class="sd">&quot;&quot;&quot;</span>
887<span class="sd">        Remove_dat by id</span>
888<span class="sd">        &quot;&quot;&quot;</span>
889        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
890            <span class="n">data_c</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span>  <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
891            <span class="n">data_id</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">data_c</span><span class="p">)</span> 
892            <span class="k">if</span> <span class="nb">id</span> <span class="o">==</span> <span class="n">data_id</span><span class="p">:</span>
893                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">Delete</span><span class="p">(</span><span class="n">data_c</span><span class="p">)</span>
894                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">[</span><span class="n">state_id</span><span class="p">]</span>
895                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">[</span><span class="n">data_id</span><span class="p">]</span>
896              </div>
897<div class="viewcode-block" id="DataPanel.load_error"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.load_error">[docs]</a>    <span class="k">def</span> <span class="nf">load_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">error</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
898        <span class="sd">&quot;&quot;&quot;</span>
899<span class="sd">        Pop up an error message.</span>
900<span class="sd">        </span>
901<span class="sd">        :param error: details error message to be displayed</span>
902<span class="sd">        &quot;&quot;&quot;</span>
903        <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="ow">or</span> <span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
904            <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">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">),</span> 
905                                    <span class="s">&#39;Error Loading File&#39;</span><span class="p">,</span>
906                                    <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>
907            <span class="n">dial</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> 
908        </div>
909    <span class="k">def</span> <span class="nf">_load_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
910        <span class="sd">&quot;&quot;&quot;</span>
911<span class="sd">        send an event to the parent to trigger load from plugin module</span>
912<span class="sd">        &quot;&quot;&quot;</span>
913        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
914            <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="p">,</span> <span class="n">NewLoadDataEvent</span><span class="p">())</span>
915           
916
917<div class="viewcode-block" id="DataPanel.on_remove"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_remove">[docs]</a>    <span class="k">def</span> <span class="nf">on_remove</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
918        <span class="sd">&quot;&quot;&quot;</span>
919<span class="sd">        Get a list of item checked and remove them from the treectrl</span>
920<span class="sd">        Ask the parent to remove reference to this item </span>
921<span class="sd">        &quot;&quot;&quot;</span>
922        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;This operation will delete the data sets checked &quot;</span>
923        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;and all the dependents.&quot;</span>
924        <span class="n">msg_box</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;Warning&#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">CANCEL</span><span class="p">)</span>
925        <span class="k">if</span> <span class="n">msg_box</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>
926            <span class="k">return</span>
927       
928        <span class="n">data_to_remove</span><span class="p">,</span> <span class="n">theory_to_remove</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">set_data_helper</span><span class="p">()</span>
929        <span class="n">data_key</span> <span class="o">=</span> <span class="p">[]</span>
930        <span class="n">theory_key</span> <span class="o">=</span> <span class="p">[]</span>
931        <span class="c">#remove  data from treectrl</span>
932        <span class="k">for</span> <span class="n">d_key</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
933            <span class="n">data_c</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span>  <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">item</span>
934            <span class="k">if</span> <span class="n">data_c</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">():</span>
935                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">Delete</span><span class="p">(</span><span class="n">data_c</span><span class="p">)</span>
936                <span class="n">data_key</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d_key</span><span class="p">)</span>
937                <span class="k">if</span> <span class="n">d_key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
938                    <span class="n">theory_list_ctrl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">[</span><span class="n">d_key</span><span class="p">]</span>
939                    <span class="n">theory_to_remove</span> <span class="o">+=</span> <span class="n">theory_list_ctrl</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
940        <span class="c"># Remove theory from treectrl       </span>
941        <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">theory_dict</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
942            <span class="k">for</span>  <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">theory_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
943                <span class="n">item</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">value</span>
944                <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">():</span>
945                    <span class="k">try</span><span class="p">:</span>
946                        <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">Delete</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
947                    <span class="k">except</span><span class="p">:</span>
948                        <span class="k">pass</span>
949                    <span class="n">theory_key</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
950                   
951        <span class="c">#Remove data and related theory references</span>
952        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">data_key</span><span class="p">:</span>
953            <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
954            <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">theory_key</span><span class="p">:</span>
955                <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
956        <span class="c">#remove theory  references independently of data</span>
957        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">theory_key</span><span class="p">:</span>
958            <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">theory_dict</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
959                <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">theory_dict</span><span class="p">:</span>
960                    <span class="k">for</span>  <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">theory_dict</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
961                        <span class="n">item</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">value</span>
962                        <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">():</span>
963                            <span class="k">try</span><span class="p">:</span>
964                                <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">Delete</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
965                            <span class="k">except</span><span class="p">:</span>
966                                <span class="k">pass</span>
967                    <span class="k">del</span> <span class="n">theory_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
968                   
969           
970        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">remove_data</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="n">data_to_remove</span><span class="p">,</span>
971                                  <span class="n">theory_id</span><span class="o">=</span><span class="n">theory_to_remove</span><span class="p">)</span>
972        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove</span><span class="p">()</span>
973        <span class="bp">self</span><span class="o">.</span><span class="n">enable_freeze</span><span class="p">()</span>
974        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove_plot</span><span class="p">()</span>
975        </div>
976<div class="viewcode-block" id="DataPanel.on_import"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_import">[docs]</a>    <span class="k">def</span> <span class="nf">on_import</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>
977        <span class="sd">&quot;&quot;&quot;</span>
978<span class="sd">        Get all select data and set them to the current active perspetive</span>
979<span class="sd">        &quot;&quot;&quot;</span>
980        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
981            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
982        <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">set_data_helper</span><span class="p">()</span>
983        <span class="n">temp</span> <span class="o">=</span> <span class="n">data_id</span> <span class="o">+</span> <span class="n">state_id</span>
984        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">set_data</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">theory_id</span><span class="o">=</span><span class="n">theory_id</span><span class="p">)</span>
985        </div>
986<div class="viewcode-block" id="DataPanel.on_append_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_append_plot">[docs]</a>    <span class="k">def</span> <span class="nf">on_append_plot</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>
987        <span class="sd">&quot;&quot;&quot;</span>
988<span class="sd">        append plot to plot panel on focus</span>
989<span class="sd">        &quot;&quot;&quot;</span>
990        <span class="bp">self</span><span class="o">.</span><span class="n">_on_plot_selection</span><span class="p">()</span>
991        <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">set_data_helper</span><span class="p">()</span>
992        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">plot_data</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="n">data_id</span><span class="p">,</span> 
993                              <span class="n">state_id</span><span class="o">=</span><span class="n">state_id</span><span class="p">,</span>
994                              <span class="n">theory_id</span><span class="o">=</span><span class="n">theory_id</span><span class="p">,</span>
995                              <span class="n">append</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
996   </div>
997<div class="viewcode-block" id="DataPanel.on_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_plot">[docs]</a>    <span class="k">def</span> <span class="nf">on_plot</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>
998        <span class="sd">&quot;&quot;&quot;</span>
999<span class="sd">        Send a list of data names to plot</span>
1000<span class="sd">        &quot;&quot;&quot;</span>
1001        <span class="n">data_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">set_data_helper</span><span class="p">()</span>
1002        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">plot_data</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="n">data_id</span><span class="p">,</span> 
1003                              <span class="n">state_id</span><span class="o">=</span><span class="n">state_id</span><span class="p">,</span>
1004                              <span class="n">theory_id</span><span class="o">=</span><span class="n">theory_id</span><span class="p">,</span>
1005                              <span class="n">append</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
1006        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove_plot</span><span class="p">()</span>
1007         </div>
1008<div class="viewcode-block" id="DataPanel.on_close_page"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_close_page">[docs]</a>    <span class="k">def</span> <span class="nf">on_close_page</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>
1009        <span class="sd">&quot;&quot;&quot;</span>
1010<span class="sd">        On close</span>
1011<span class="sd">        &quot;&quot;&quot;</span>
1012        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1013            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
1014        <span class="c"># send parent to update menu with no show nor hide action</span>
1015        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">show_data_panel</span><span class="p">(</span><span class="n">action</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
1016    </div>
1017<div class="viewcode-block" id="DataPanel.on_freeze"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_freeze">[docs]</a>    <span class="k">def</span> <span class="nf">on_freeze</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
1018        <span class="sd">&quot;&quot;&quot;</span>
1019<span class="sd">        On freeze to make a theory to a data set</span>
1020<span class="sd">        &quot;&quot;&quot;</span>
1021        <span class="n">_</span><span class="p">,</span> <span class="n">theory_id</span><span class="p">,</span> <span class="n">state_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">set_data_helper</span><span class="p">()</span>
1022        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">theory_id</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
1023            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">freeze</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="n">state_id</span><span class="p">,</span> <span class="n">theory_id</span><span class="o">=</span><span class="n">theory_id</span><span class="p">)</span>
1024            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Freeze Theory:&quot;</span>
1025            <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; The theory(s) copied to the Data box as a data set.&quot;</span>
1026        <span class="k">else</span><span class="p">:</span>
1027            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Freeze Theory: Requires at least one theory checked.&quot;</span>
1028        <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="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>
1029            </div>
1030<div class="viewcode-block" id="DataPanel.set_active_perspective"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_active_perspective">[docs]</a>    <span class="k">def</span> <span class="nf">set_active_perspective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
1031        <span class="sd">&quot;&quot;&quot;</span>
1032<span class="sd">        set the active perspective</span>
1033<span class="sd">        &quot;&quot;&quot;</span>
1034        <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
1035        <span class="bp">self</span><span class="o">.</span><span class="n">enable_import</span><span class="p">()</span>
1036        </div>
1037    <span class="k">def</span> <span class="nf">_on_delete_plot_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
1038        <span class="sd">&quot;&quot;&quot;</span>
1039<span class="sd">        get an event with attribute name and caption to delete existing name </span>
1040<span class="sd">        from the combobox of the current panel</span>
1041<span class="sd">        &quot;&quot;&quot;</span>
1042        <span class="c">#name = event.name</span>
1043        <span class="n">caption</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">caption</span>
1044        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
1045            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">FindString</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">caption</span><span class="p">))</span> 
1046            <span class="k">if</span> <span class="n">pos</span> <span class="o">!=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">:</span>
1047                <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Delete</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
1048        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
1049       
1050<div class="viewcode-block" id="DataPanel.set_panel_on_focus"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_panel_on_focus">[docs]</a>    <span class="k">def</span> <span class="nf">set_panel_on_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
1051        <span class="sd">&quot;&quot;&quot;</span>
1052<span class="sd">        set the plot panel on focus</span>
1053<span class="sd">        &quot;&quot;&quot;</span>
1054        <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">plot_panels</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
1055            <span class="n">name_plot_panel</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">window_caption</span><span class="p">)</span>
1056            <span class="k">if</span> <span class="n">name_plot_panel</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">GetItems</span><span class="p">():</span>
1057                <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">name_plot_panel</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
1058            <span class="k">if</span> <span class="n">name</span> <span class="o">!=</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">name</span> <span class="o">==</span> <span class="n">name_plot_panel</span><span class="p">:</span>
1059                <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">SetStringSelection</span><span class="p">(</span><span class="n">name_plot_panel</span><span class="p">)</span>
1060                <span class="k">break</span>
1061        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
1062        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove_plot</span><span class="p">()</span>
1063    </div>
1064<div class="viewcode-block" id="DataPanel.set_plot_unfocus"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_plot_unfocus">[docs]</a>    <span class="k">def</span> <span class="nf">set_plot_unfocus</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1065        <span class="sd">&quot;&quot;&quot;</span>
1066<span class="sd">        Unfocus plot</span>
1067<span class="sd">        &quot;&quot;&quot;</span>
1068        <span class="k">return</span>
1069    </div>
1070    <span class="k">def</span> <span class="nf">_on_perspective_selection</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>
1071        <span class="sd">&quot;&quot;&quot;</span>
1072<span class="sd">        select the current perspective for guiframe</span>
1073<span class="sd">        &quot;&quot;&quot;</span>
1074        <span class="n">selection</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
1075        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">!=</span> <span class="s">&#39;None&#39;</span><span class="p">:</span>
1076            <span class="n">perspective</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span>
1077            <span class="n">perspective</span><span class="o">.</span><span class="n">on_perspective</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
1078            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">check_multimode</span><span class="p">(</span><span class="n">perspective</span><span class="o">=</span><span class="n">perspective</span><span class="p">)</span>
1079               
1080    <span class="k">def</span> <span class="nf">_on_plot_selection</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>
1081        <span class="sd">&quot;&quot;&quot;</span>
1082<span class="sd">        On source combobox selection</span>
1083<span class="sd">        &quot;&quot;&quot;</span>
1084        <span class="k">if</span> <span class="n">event</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1085            <span class="n">combo</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
1086            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
1087        <span class="k">else</span><span class="p">:</span>
1088            <span class="n">combo</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span>
1089        <span class="n">selection</span> <span class="o">=</span> <span class="n">combo</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
1090
1091        <span class="k">if</span> <span class="n">combo</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">!=</span> <span class="s">&#39;None&#39;</span><span class="p">:</span>
1092            <span class="n">panel</span> <span class="o">=</span> <span class="n">combo</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span>
1093            <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">on_set_plot_focus</span><span class="p">(</span><span class="n">panel</span><span class="p">)</span>   
1094           
1095<div class="viewcode-block" id="DataPanel.on_close_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_close_plot">[docs]</a>    <span class="k">def</span> <span class="nf">on_close_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
1096        <span class="sd">&quot;&quot;&quot;</span>
1097<span class="sd">        clseo the panel on focus</span>
1098<span class="sd">        &quot;&quot;&quot;</span> 
1099        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
1100        <span class="n">selection</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>
1101        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="o">!=</span> <span class="s">&#39;None&#39;</span><span class="p">:</span>
1102            <span class="n">panel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">GetClientData</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span>
1103            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">panel</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
1104                <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="p">,</span> 
1105                             <span class="n">NewPlotEvent</span><span class="p">(</span><span class="n">group_id</span><span class="o">=</span><span class="n">panel</span><span class="o">.</span><span class="n">group_id</span><span class="p">,</span>
1106                                          <span class="n">action</span><span class="o">=</span><span class="s">&quot;delete&quot;</span><span class="p">))</span>
1107        <span class="bp">self</span><span class="o">.</span><span class="n">enable_remove_plot</span><span class="p">()</span>
1108    </div>
1109<div class="viewcode-block" id="DataPanel.set_frame"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_frame">[docs]</a>    <span class="k">def</span> <span class="nf">set_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frame</span><span class="p">):</span>
1110        <span class="sd">&quot;&quot;&quot;</span>
1111<span class="sd">        &quot;&quot;&quot;</span>
1112        <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="n">frame</span>
1113    </div>
1114<div class="viewcode-block" id="DataPanel.get_frame"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.get_frame">[docs]</a>    <span class="k">def</span> <span class="nf">get_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1115        <span class="sd">&quot;&quot;&quot;</span>
1116<span class="sd">        &quot;&quot;&quot;</span>
1117        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> 
1118    </div>
1119<div class="viewcode-block" id="DataPanel.on_close"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.on_close">[docs]</a>    <span class="k">def</span> <span class="nf">on_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
1120        <span class="sd">&quot;&quot;&quot;</span>
1121<span class="sd">        On close event</span>
1122<span class="sd">        &quot;&quot;&quot;</span>
1123        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">show_data_panel</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
1124                        </div>
1125<div class="viewcode-block" id="DataPanel.set_schedule_full_draw"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.set_schedule_full_draw">[docs]</a>    <span class="k">def</span> <span class="nf">set_schedule_full_draw</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">panel</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">func</span><span class="o">=</span><span class="s">&#39;del&#39;</span><span class="p">):</span>
1126        <span class="sd">&quot;&quot;&quot;</span>
1127<span class="sd">        Send full draw to guimanager</span>
1128<span class="sd">        &quot;&quot;&quot;</span>
1129        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">set_schedule_full_draw</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span> <span class="n">func</span><span class="p">)</span>
1130        </div>
1131<div class="viewcode-block" id="DataPanel.enable_remove_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_remove_plot">[docs]</a>    <span class="k">def</span> <span class="nf">enable_remove_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1132        <span class="sd">&quot;&quot;&quot;</span>
1133<span class="sd">        enable remove plot button if there is a plot panel on focus</span>
1134<span class="sd">        &quot;&quot;&quot;</span>
1135        <span class="k">pass</span>
1136        <span class="c">#if self.cb_plotpanel.GetCount() == 0:</span>
1137        <span class="c">#    self.bt_close_plot.Disable()</span>
1138        <span class="c">#else:</span>
1139        <span class="c">#    self.bt_close_plot.Enable()</span>
1140            </div>
1141<div class="viewcode-block" id="DataPanel.enable_remove"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_remove">[docs]</a>    <span class="k">def</span> <span class="nf">enable_remove</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1142        <span class="sd">&quot;&quot;&quot;</span>
1143<span class="sd">        enable or disable remove button</span>
1144<span class="sd">        &quot;&quot;&quot;</span>
1145        <span class="n">n_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1146        <span class="n">n_t_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1147        <span class="k">if</span> <span class="n">n_t</span> <span class="o">+</span> <span class="n">n_t_t</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
1148            <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1149        <span class="k">else</span><span class="p">:</span>
1150            <span class="bp">self</span><span class="o">.</span><span class="n">bt_remove</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1151            </div>
1152<div class="viewcode-block" id="DataPanel.enable_import"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_import">[docs]</a>    <span class="k">def</span> <span class="nf">enable_import</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1153        <span class="sd">&quot;&quot;&quot;</span>
1154<span class="sd">        enable or disable send button</span>
1155<span class="sd">        &quot;&quot;&quot;</span>
1156        <span class="n">n_t</span> <span class="o">=</span> <span class="mi">0</span>
1157        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1158            <span class="n">n_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1159        <span class="k">if</span> <span class="n">n_t</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
1160            <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1161        <span class="k">else</span><span class="p">:</span>
1162            <span class="bp">self</span><span class="o">.</span><span class="n">bt_import</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1163        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_of_perspective</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mi">0</span> <span class="ow">or</span> \
1164            <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>  <span class="ow">in</span> <span class="p">[</span><span class="s">&quot;None&quot;</span><span class="p">,</span>
1165                                                <span class="s">&quot;No Active Application&quot;</span><span class="p">]:</span>
1166            <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1167        <span class="k">else</span><span class="p">:</span>
1168            <span class="bp">self</span><span class="o">.</span><span class="n">perspective_cbox</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1169            </div>
1170<div class="viewcode-block" id="DataPanel.enable_plot"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_plot">[docs]</a>    <span class="k">def</span> <span class="nf">enable_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1171        <span class="sd">&quot;&quot;&quot;</span>
1172<span class="sd">        enable or disable plot button</span>
1173<span class="sd">        &quot;&quot;&quot;</span>
1174        <span class="n">n_t</span> <span class="o">=</span> <span class="mi">0</span> 
1175        <span class="n">n_t_t</span> <span class="o">=</span> <span class="mi">0</span>
1176        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1177            <span class="n">n_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1178        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1179            <span class="n">n_t_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1180        <span class="k">if</span> <span class="n">n_t</span> <span class="o">+</span> <span class="n">n_t_t</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
1181            <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1182        <span class="k">else</span><span class="p">:</span>
1183            <span class="bp">self</span><span class="o">.</span><span class="n">bt_plot</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1184        <span class="bp">self</span><span class="o">.</span><span class="n">enable_append</span><span class="p">()</span>
1185       </div>
1186<div class="viewcode-block" id="DataPanel.enable_append"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_append">[docs]</a>    <span class="k">def</span> <span class="nf">enable_append</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1187        <span class="sd">&quot;&quot;&quot;</span>
1188<span class="sd">        enable or disable append button</span>
1189<span class="sd">        &quot;&quot;&quot;</span>
1190        <span class="n">n_t</span> <span class="o">=</span> <span class="mi">0</span> 
1191        <span class="n">n_t_t</span> <span class="o">=</span> <span class="mi">0</span>
1192        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1193            <span class="n">n_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1194        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1195            <span class="n">n_t_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1196        <span class="k">if</span> <span class="n">n_t</span> <span class="o">+</span> <span class="n">n_t_t</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span> 
1197            <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1198            <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1199        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
1200            <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1201            <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1202        <span class="k">else</span><span class="p">:</span>
1203            <span class="bp">self</span><span class="o">.</span><span class="n">bt_append_plot</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1204            <span class="bp">self</span><span class="o">.</span><span class="n">cb_plotpanel</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1205            </div>
1206<div class="viewcode-block" id="DataPanel.check_theory_to_freeze"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.check_theory_to_freeze">[docs]</a>    <span class="k">def</span> <span class="nf">check_theory_to_freeze</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1207        <span class="sd">&quot;&quot;&quot;</span>
1208<span class="sd">        Check_theory_to_freeze</span>
1209<span class="sd">        &quot;&quot;&quot;</span></div>
1210<div class="viewcode-block" id="DataPanel.enable_freeze"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_freeze">[docs]</a>    <span class="k">def</span> <span class="nf">enable_freeze</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1211        <span class="sd">&quot;&quot;&quot;</span>
1212<span class="sd">        enable or disable the freeze button</span>
1213<span class="sd">        &quot;&quot;&quot;</span>
1214        <span class="n">n_t_t</span> <span class="o">=</span> <span class="mi">0</span>
1215        <span class="n">n_l</span> <span class="o">=</span> <span class="mi">0</span>
1216        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1217            <span class="n">n_t_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1218        <span class="n">n_l</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">list_cb_theory</span><span class="p">)</span>
1219        <span class="k">if</span> <span class="p">(</span><span class="n">n_t_t</span> <span class="o">+</span> <span class="n">n_l</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">):</span>
1220            <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1221        <span class="k">else</span><span class="p">:</span>
1222            <span class="bp">self</span><span class="o">.</span><span class="n">bt_freeze</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1223        </div>
1224<div class="viewcode-block" id="DataPanel.enable_selection"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.enable_selection">[docs]</a>    <span class="k">def</span> <span class="nf">enable_selection</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1225        <span class="sd">&quot;&quot;&quot;</span>
1226<span class="sd">        enable or disable combobo box selection</span>
1227<span class="sd">        &quot;&quot;&quot;</span>
1228        <span class="n">n_t</span> <span class="o">=</span> <span class="mi">0</span>
1229        <span class="n">n_t_t</span> <span class="o">=</span> <span class="mi">0</span>
1230        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1231            <span class="n">n_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1232        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1233            <span class="n">n_t_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tree_ctrl_theory</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
1234        <span class="k">if</span> <span class="n">n_t</span> <span class="o">+</span> <span class="n">n_t_t</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
1235            <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">Enable</span><span class="p">()</span>
1236        <span class="k">else</span><span class="p">:</span>
1237            <span class="bp">self</span><span class="o">.</span><span class="n">selection_cbox</span><span class="o">.</span><span class="n">Disable</span><span class="p">()</span>
1238            </div>
1239<div class="viewcode-block" id="DataPanel.show_data_button"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataPanel.show_data_button">[docs]</a>    <span class="k">def</span> <span class="nf">show_data_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1240        <span class="sd">&quot;&quot;&quot;</span>
1241<span class="sd">        show load data and remove data button if </span>
1242<span class="sd">        dataloader on else hide them</span>
1243<span class="sd">        &quot;&quot;&quot;</span>
1244        <span class="k">try</span><span class="p">:</span>
1245            <span class="n">gui_style</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">get_style</span><span class="p">()</span>
1246            <span class="n">style</span> <span class="o">=</span> <span class="n">gui_style</span> <span class="o">&amp;</span> <span class="n">GUIFRAME</span><span class="o">.</span><span class="n">DATALOADER_ON</span>
1247            <span class="k">if</span> <span class="n">style</span> <span class="o">==</span> <span class="n">GUIFRAME</span><span class="o">.</span><span class="n">DATALOADER_ON</span><span class="p">:</span> 
1248                <span class="c">#self.bt_remove.Show(True)</span>
1249                <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> 
1250            <span class="k">else</span><span class="p">:</span>
1251                <span class="c">#self.bt_remove.Hide()</span>
1252                <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span>
1253        <span class="k">except</span><span class="p">:</span> 
1254            <span class="c">#self.bt_remove.Hide()</span>
1255            <span class="bp">self</span><span class="o">.</span><span class="n">bt_add</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span> 
1256   
1257
1258</div></div>
1259<span class="n">WIDTH</span> <span class="o">=</span> <span class="mi">400</span>
1260<span class="n">HEIGHT</span> <span class="o">=</span> <span class="mi">300</span>
1261
1262
1263<div class="viewcode-block" id="DataDialog"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataDialog">[docs]</a><span class="k">class</span> <span class="nc">DataDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
1264    <span class="sd">&quot;&quot;&quot;</span>
1265<span class="sd">    Allow file selection at loading time</span>
1266<span class="sd">    &quot;&quot;&quot;</span>
1267    <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">data_list</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">text</span><span class="o">=</span><span class="s">&#39;&#39;</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>
1268        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="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>
1269        <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&quot;Data Selection&quot;</span><span class="p">)</span>
1270        <span class="bp">self</span><span class="o">.</span><span class="n">SetSize</span><span class="p">((</span><span class="n">WIDTH</span><span class="p">,</span> <span class="n">HEIGHT</span><span class="p">))</span>
1271        <span class="bp">self</span><span class="o">.</span><span class="n">list_of_ctrl</span> <span class="o">=</span> <span class="p">[]</span>
1272        <span class="k">if</span> <span class="ow">not</span> <span class="n">data_list</span><span class="p">:</span>
1273            <span class="k">return</span> 
1274        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_main</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>
1275        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_txt</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>
1276        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
1277        <span class="bp">self</span><span class="o">.</span><span class="n">sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
1278        <span class="bp">self</span><span class="o">.</span><span class="n">_panel</span> <span class="o">=</span> <span class="n">ScrolledPanel</span><span class="p">(</span><span class="bp">self</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">RAISED_BORDER</span><span class="p">,</span>
1279                               <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">WIDTH</span><span class="o">-</span><span class="mi">20</span><span class="p">,</span> <span class="n">HEIGHT</span><span class="o">-</span><span class="mi">50</span><span class="p">))</span>
1280        <span class="bp">self</span><span class="o">.</span><span class="n">_panel</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>
1281        <span class="bp">self</span><span class="o">.</span><span class="n">__do_layout</span><span class="p">(</span><span class="n">data_list</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">text</span><span class="p">)</span>
1282       
1283    <span class="k">def</span> <span class="nf">__do_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_list</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span>
1284        <span class="sd">&quot;&quot;&quot;</span>
1285<span class="sd">        layout the dialog</span>
1286<span class="sd">        &quot;&quot;&quot;</span>
1287        <span class="k">if</span> <span class="ow">not</span> <span class="n">data_list</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">data_list</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
1288            <span class="k">return</span> 
1289        <span class="c">#add text</span>
1290       
1291        <span class="n">text</span> <span class="o">=</span> <span class="s">&quot;Deleting these file reset some panels.</span><span class="se">\n</span><span class="s">&quot;</span>
1292        <span class="n">text</span> <span class="o">+=</span> <span class="s">&quot;Do you want to proceed?</span><span class="se">\n</span><span class="s">&quot;</span>
1293        <span class="n">text_ctrl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">text</span><span class="p">))</span>
1294        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_txt</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">text_ctrl</span><span class="p">)</span>
1295        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
1296        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
1297        <span class="c">#data_count = 0</span>
1298        <span class="k">for</span> <span class="p">(</span><span class="n">data_name</span><span class="p">,</span> <span class="n">in_use</span><span class="p">,</span> <span class="n">sub_menu</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data_list</span><span class="p">)):</span>
1299            <span class="k">if</span> <span class="n">in_use</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
1300                <span class="n">ctrl_name</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="nb">str</span><span class="p">(</span><span class="n">data_name</span><span class="p">))</span>
1301                <span class="n">ctrl_in_use</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; is used by &quot;</span><span class="p">)</span>
1302                <span class="n">plug_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sub_menu</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span>
1303                <span class="c">#ctrl_sub_menu = wx.StaticBox(self, -1, plug_name)</span>
1304                <span class="bp">self</span><span class="o">.</span><span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ctrl_name</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
1305                           <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
1306                <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
1307                <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ctrl_in_use</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span>
1308                                        <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1309                <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
1310                <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">plug_name</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span>
1311                                        <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1312            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
1313        <span class="bp">self</span><span class="o">.</span><span class="n">_panel</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">sizer</span><span class="p">)</span>
1314        <span class="c">#add sizer</span>
1315        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1316        <span class="n">button_cancel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">,</span> <span class="s">&quot;Cancel&quot;</span><span class="p">)</span>
1317        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_cancel</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
1318                          <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">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1319        <span class="n">button_OK</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">,</span> <span class="s">&quot;Ok&quot;</span><span class="p">)</span>
1320        <span class="n">button_OK</span><span class="o">.</span><span class="n">SetFocus</span><span class="p">()</span>
1321        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_OK</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
1322                                <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">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1323        <span class="n">static_line</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticLine</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>
1324       
1325        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_txt</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_panel</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">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">5</span><span class="p">)</span>
1326        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_main</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_sizer_txt</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1327        <span class="c">#self._sizer_main.Add(self._data_text_ctrl, 0, </span>
1328        <span class="c">#                     wx.EXPAND|wx.LEFT|wx.RIGHT, 10)</span>
1329        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_main</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">static_line</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="p">,</span> <span class="mi">0</span><span class="p">)</span>
1330        <span class="bp">self</span><span class="o">.</span><span class="n">_sizer_main</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_sizer_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">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>
1331        <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">_sizer_main</span><span class="p">)</span>
1332        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
1333       
1334<div class="viewcode-block" id="DataDialog.get_data"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataDialog.get_data">[docs]</a>    <span class="k">def</span> <span class="nf">get_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1335        <span class="sd">&quot;&quot;&quot;</span>
1336<span class="sd">        return the selected data</span>
1337<span class="sd">        &quot;&quot;&quot;</span>
1338        <span class="n">temp</span> <span class="o">=</span> <span class="p">[]</span>
1339        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">list_of_ctrl</span><span class="p">:</span>
1340            <span class="n">cb</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">item</span>
1341            <span class="k">if</span> <span class="n">cb</span><span class="o">.</span><span class="n">GetValue</span><span class="p">():</span>
1342                <span class="n">temp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
1343        <span class="k">return</span> <span class="n">temp</span>
1344               </div></div>
1345<div class="viewcode-block" id="DataFrame"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataFrame">[docs]</a><span class="k">class</span> <span class="nc">DataFrame</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Frame</span><span class="p">):</span>
1346    <span class="sd">&quot;&quot;&quot;</span>
1347<span class="sd">    Data Frame</span>
1348<span class="sd">    &quot;&quot;&quot;</span>
1349    <span class="c">## Internal name for the AUI manager</span>
1350    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;Data Panel&quot;</span>
1351    <span class="c">## Title to appear on top of the window</span>
1352    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Data Panel&quot;</span>
1353    <span class="c">## Flag to tell the GUI manager that this panel is not</span>
1354    <span class="c">#  tied to any perspective</span>
1355    <span class="n">ALWAYS_ON</span> <span class="o">=</span> <span class="bp">True</span>
1356   
1357    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">owner</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">manager</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">800</span><span class="p">),</span>
1358                         <span class="n">list_of_perspective</span><span class="o">=</span><span class="p">[],</span> <span class="nb">list</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>
1359        <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;size&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">size</span>
1360        <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
1361        <span class="n">kwds</span><span class="p">[</span><span class="s">&#39;title&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;Loaded Data&quot;</span>
1362        <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="o">=</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>
1363        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
1364        <span class="bp">self</span><span class="o">.</span><span class="n">owner</span> <span class="o">=</span> <span class="n">owner</span>
1365        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span> <span class="o">=</span> <span class="n">manager</span>
1366        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">DataPanel</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> 
1367                               <span class="n">manager</span><span class="o">=</span><span class="n">manager</span><span class="p">,</span>
1368                               <span class="n">list_of_perspective</span><span class="o">=</span><span class="n">list_of_perspective</span><span class="p">)</span>
1369     
1370<div class="viewcode-block" id="DataFrame.load_data_list"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.DataFrame.load_data_list">[docs]</a>    <span class="k">def</span> <span class="nf">load_data_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">list</span><span class="o">=</span><span class="p">[]):</span>
1371        <span class="sd">&quot;&quot;&quot;</span>
1372<span class="sd">        Fill the list inside its panel</span>
1373<span class="sd">        &quot;&quot;&quot;</span>
1374        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">load_data_list</span><span class="p">(</span><span class="nb">list</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
1375       
1376   
1377    </div></div>
1378<span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Theory1D</span>
1379<span class="kn">from</span> <span class="nn">sas.guiframe.data_state</span> <span class="kn">import</span> <span class="n">DataState</span>
1380
1381<div class="viewcode-block" id="State"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.State">[docs]</a><span class="k">class</span> <span class="nc">State</span><span class="p">():</span>
1382    <span class="sd">&quot;&quot;&quot;</span>
1383<span class="sd">    DataPanel State</span>
1384<span class="sd">    &quot;&quot;&quot;</span>
1385    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1386        <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
1387    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1388        <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;model mane : model1</span><span class="se">\n</span><span class="s">&quot;</span>
1389        <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;params : </span><span class="se">\n</span><span class="s">&quot;</span>
1390        <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;name  value</span><span class="se">\n</span><span class="s">&quot;</span>
1391        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">msg</span>
1392    </div>
1393<div class="viewcode-block" id="set_data_state"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.data_panel.set_data_state">[docs]</a><span class="k">def</span> <span class="nf">set_data_state</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">path</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">theory</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">state</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
1394    <span class="sd">&quot;&quot;&quot;</span>
1395<span class="sd">    Set data state</span>
1396<span class="sd">    &quot;&quot;&quot;</span>
1397    <span class="n">dstate</span> <span class="o">=</span> <span class="n">DataState</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
1398    <span class="n">dstate</span><span class="o">.</span><span class="n">set_path</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">)</span>
1399    <span class="n">dstate</span><span class="o">.</span><span class="n">set_theory</span><span class="p">(</span><span class="n">theory</span><span class="p">,</span> <span class="n">state</span><span class="p">)</span>
1400 
1401    <span class="k">return</span> <span class="n">dstate</span>
1402    </div>
1403<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>
1404   
1405    <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>
1406    <span class="k">try</span><span class="p">:</span>
1407        <span class="c">#list_of_perspective = [(&#39;perspective2&#39;, False), (&#39;perspective1&#39;, True)]</span>
1408        <span class="n">data_list1</span> <span class="o">=</span> <span class="p">{}</span>
1409        <span class="c"># state 1</span>
1410        <span class="n">data1</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
1411        <span class="n">data1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data2&quot;</span>
1412        <span class="n">data1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">1</span>
1413        <span class="n">data1</span><span class="o">.</span><span class="n">append_empty_process</span><span class="p">()</span>
1414        <span class="n">process1</span> <span class="o">=</span> <span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
1415        <span class="n">process1</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="s">&quot;07/01/2010&quot;</span>
1416        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
1417        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">34</span>
1418        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;theory1&quot;</span>
1419        <span class="n">path1</span> <span class="o">=</span> <span class="s">&quot;path1&quot;</span>
1420        <span class="n">state1</span> <span class="o">=</span> <span class="n">State</span><span class="p">()</span>
1421        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;1&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1422        <span class="c">#state 2</span>
1423        <span class="n">data1</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
1424        <span class="n">data1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data2&quot;</span>
1425        <span class="n">data1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">76</span>
1426        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
1427        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">78</span>
1428        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;CoreShell 07/24/25&quot;</span>
1429        <span class="n">path1</span> <span class="o">=</span> <span class="s">&quot;path2&quot;</span>
1430        <span class="c">#state3</span>
1431        <span class="n">state1</span> <span class="o">=</span> <span class="n">State</span><span class="p">()</span>
1432        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1433        <span class="n">data1</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">()</span>
1434        <span class="n">data1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">3</span>
1435        <span class="n">data1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data2&quot;</span>
1436        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">()</span>
1437        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;CoreShell&quot;</span>
1438        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">4</span>
1439        <span class="n">theory1</span><span class="o">.</span><span class="n">append_empty_process</span><span class="p">()</span>
1440        <span class="n">process1</span> <span class="o">=</span> <span class="n">theory1</span><span class="o">.</span><span class="n">process</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">theory1</span><span class="o">.</span><span class="n">process</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
1441        <span class="n">process1</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="s">&quot;this is my description&quot;</span>
1442        <span class="n">path1</span> <span class="o">=</span> <span class="s">&quot;path3&quot;</span>
1443        <span class="n">data1</span><span class="o">.</span><span class="n">append_empty_process</span><span class="p">()</span>
1444        <span class="n">process1</span> <span class="o">=</span> <span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
1445        <span class="n">process1</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="s">&quot;07/22/2010&quot;</span>
1446        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;4&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1447        <span class="c">#state 4</span>
1448        <span class="n">temp_data_list</span> <span class="o">=</span> <span class="p">{}</span>
1449        <span class="n">data1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data5 erasing data2&quot;</span>
1450        <span class="n">temp_data_list</span><span class="p">[</span><span class="s">&#39;4&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1451        <span class="c">#state 5</span>
1452        <span class="n">data1</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
1453        <span class="n">data1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;data3&quot;</span>
1454        <span class="n">data1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">5</span>
1455        <span class="n">data1</span><span class="o">.</span><span class="n">append_empty_process</span><span class="p">()</span>
1456        <span class="n">process1</span> <span class="o">=</span> <span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">data1</span><span class="o">.</span><span class="n">process</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
1457        <span class="n">process1</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="s">&quot;07/01/2010&quot;</span>
1458        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">()</span>
1459        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Cylinder&quot;</span>
1460        <span class="n">path1</span> <span class="o">=</span> <span class="s">&quot;path2&quot;</span>
1461        <span class="n">state1</span> <span class="o">=</span> <span class="n">State</span><span class="p">()</span>
1462        <span class="n">dstate1</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">data1</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1463        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">()</span>
1464        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">6</span>
1465        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;CoreShell&quot;</span>
1466        <span class="n">dstate1</span><span class="o">.</span><span class="n">set_theory</span><span class="p">(</span><span class="n">theory1</span><span class="p">)</span>
1467        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">()</span>
1468        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">6</span>
1469        <span class="n">theory1</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;CoreShell replacing coreshell in data3&quot;</span>
1470        <span class="n">dstate1</span><span class="o">.</span><span class="n">set_theory</span><span class="p">(</span><span class="n">theory1</span><span class="p">)</span>
1471        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;3&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">dstate1</span>
1472        <span class="c">#state 6</span>
1473        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;6&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">path1</span><span class="p">,</span> <span class="n">theory1</span><span class="p">,</span> <span class="n">state1</span><span class="p">)</span>
1474        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;6&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">theory</span><span class="o">=</span><span class="n">theory1</span><span class="p">,</span> <span class="n">state</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
1475        <span class="n">theory1</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">()</span>
1476        <span class="n">theory1</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">7</span>
1477        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;6&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">theory</span><span class="o">=</span><span class="n">theory1</span><span class="p">,</span> <span class="n">state</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
1478        <span class="n">data_list1</span><span class="p">[</span><span class="s">&#39;7&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">set_data_state</span><span class="p">(</span><span class="n">theory</span><span class="o">=</span><span class="n">theory1</span><span class="p">,</span> <span class="n">state</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
1479        <span class="n">window</span> <span class="o">=</span> <span class="n">DataFrame</span><span class="p">(</span><span class="nb">list</span><span class="o">=</span><span class="n">data_list1</span><span class="p">)</span>
1480        <span class="n">window</span><span class="o">.</span><span class="n">load_data_list</span><span class="p">(</span><span class="nb">list</span><span class="o">=</span><span class="n">data_list1</span><span class="p">)</span>
1481        <span class="n">window</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
1482        <span class="n">window</span><span class="o">.</span><span class="n">load_data_list</span><span class="p">(</span><span class="nb">list</span><span class="o">=</span><span class="n">temp_data_list</span><span class="p">)</span>
1483    <span class="k">except</span><span class="p">:</span>
1484        <span class="c">#raise</span>
1485        <span class="k">print</span> <span class="s">&quot;error&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
1486       
1487    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span> 
1488   
1489   
1490</pre></div>
1491
1492          </div>
1493        </div>
1494      </div>
1495      <div class="sphinxsidebar">
1496        <div class="sphinxsidebarwrapper">
1497<div id="searchbox" style="display: none">
1498  <h3>Quick search</h3>
1499    <form class="search" action="../../../search.html" method="get">
1500      <input type="text" name="q" />
1501      <input type="submit" value="Go" />
1502      <input type="hidden" name="check_keywords" value="yes" />
1503      <input type="hidden" name="area" value="default" />
1504    </form>
1505    <p class="searchtip" style="font-size: 90%">
1506    Enter search terms or a module, class or function name.
1507    </p>
1508</div>
1509<script type="text/javascript">$('#searchbox').show(0);</script>
1510        </div>
1511      </div>
1512      <div class="clearer"></div>
1513    </div>
1514    <div class="related">
1515      <h3>Navigation</h3>
1516      <ul>
1517        <li class="right" style="margin-right: 10px">
1518          <a href="../../../genindex.html" title="General Index"
1519             >index</a></li>
1520        <li class="right" >
1521          <a href="../../../py-modindex.html" title="Python Module Index"
1522             >modules</a> |</li>
1523        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1524          <li><a href="../../index.html" >Module code</a> &raquo;</li>
1525          <li><a href="../guiframe.html" >sas.guiframe</a> &raquo;</li> 
1526      </ul>
1527    </div>
1528    <div class="footer">
1529        &copy; Copyright 2013, The SasView Project.
1530      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1531    </div>
1532  </body>
1533</html>
Note: See TracBrowser for help on using the repository browser.