source: sasview/_modules/sas/guiframe/local_perspectives/plotting/Plotter2D.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: 141.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.local_perspectives.plotting.Plotter2D &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.local_perspectives.plotting.Plotter2D</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 2008, University of Tennessee</span>
60<span class="c">################################################################################</span>
61
62
63<span class="kn">import</span> <span class="nn">wx</span>
64<span class="kn">import</span> <span class="nn">sys</span>
65<span class="kn">import</span> <span class="nn">math</span>
66<span class="kn">import</span> <span class="nn">numpy</span>
67<span class="kn">from</span> <span class="nn">sas.plottools.PlotPanel</span> <span class="kn">import</span> <span class="n">PlotPanel</span>
68<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Graph</span>
69<span class="kn">from</span> <span class="nn">sas.plottools.TextDialog</span> <span class="kn">import</span> <span class="n">TextDialog</span>
70<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span> 
71<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">NewPlotEvent</span>
72<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">PanelOnFocusEvent</span>
73<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">SlicerEvent</span>
74<span class="kn">from</span> <span class="nn">sas.guiframe.utils</span> <span class="kn">import</span> <span class="n">PanelMenu</span>
75<span class="kn">from</span>  <span class="nn">sas.guiframe.local_perspectives.plotting.binder</span> <span class="kn">import</span> <span class="n">BindArtist</span>
76<span class="kn">from</span> <span class="nn">Plotter1D</span> <span class="kn">import</span> <span class="n">ModelPanel1D</span>
77<span class="kn">from</span> <span class="nn">sas.plottools.toolbar</span> <span class="kn">import</span> <span class="n">NavigationToolBar</span> 
78<span class="kn">from</span> <span class="nn">matplotlib.font_manager</span> <span class="kn">import</span> <span class="n">FontProperties</span>
79<span class="kn">from</span> <span class="nn">graphAppearance</span> <span class="kn">import</span> <span class="n">graphAppearance</span>
80<span class="p">(</span><span class="n">InternalEvent</span><span class="p">,</span> <span class="n">EVT_INTERNAL</span><span class="p">)</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">lib</span><span class="o">.</span><span class="n">newevent</span><span class="o">.</span><span class="n">NewEvent</span><span class="p">()</span>
81
82<span class="n">DEFAULT_QMAX</span> <span class="o">=</span> <span class="mf">0.05</span>
83<span class="n">DEFAULT_QSTEP</span> <span class="o">=</span> <span class="mf">0.001</span>
84<span class="n">DEFAULT_BEAM</span> <span class="o">=</span> <span class="mf">0.005</span>
85<span class="n">BIN_WIDTH</span> <span class="o">=</span> <span class="mf">1.0</span>
86
87
88<span class="k">def</span> <span class="nf">find_key</span><span class="p">(</span><span class="n">dic</span><span class="p">,</span> <span class="n">val</span><span class="p">):</span>
89<div class="viewcode-block" id="find_key"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.find_key">[docs]</a>    <span class="sd">&quot;&quot;&quot;return the key of dictionary dic given the value&quot;&quot;&quot;</span>
90    <span class="k">return</span> <span class="p">[</span><span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">dic</span><span class="o">.</span><span class="n">iteritems</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="o">==</span> <span class="n">val</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
91
92
93<span class="k">class</span> <span class="nc">NavigationToolBar2D</span><span class="p">(</span><span class="n">NavigationToolBar</span><span class="p">):</span></div>
94<div class="viewcode-block" id="NavigationToolBar2D"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.NavigationToolBar2D">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
95<span class="sd">    &quot;&quot;&quot;</span>
96    <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">canvas</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
97        <span class="n">NavigationToolBar</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">canvas</span><span class="o">=</span><span class="n">canvas</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="n">parent</span><span class="p">)</span>
98       
99    <span class="k">def</span> <span class="nf">delete_option</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
100<div class="viewcode-block" id="NavigationToolBar2D.delete_option"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.NavigationToolBar2D.delete_option">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
101<span class="sd">        remove default toolbar item</span>
102<span class="sd">        &quot;&quot;&quot;</span>
103        <span class="c">#delete reset button</span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">DeleteToolByPos</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> 
105        <span class="c">#delete dragging</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">DeleteToolByPos</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> 
107        <span class="c">#delete unwanted button that configures subplot parameters</span>
108        <span class="bp">self</span><span class="o">.</span><span class="n">DeleteToolByPos</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
109       
110    <span class="k">def</span> <span class="nf">add_option</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
111<div class="viewcode-block" id="NavigationToolBar2D.add_option"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.NavigationToolBar2D.add_option">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
112<span class="sd">        add item to the toolbar</span>
113<span class="sd">        &quot;&quot;&quot;</span>
114        <span class="c">#add button</span>
115        <span class="n">id_context</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
116        <span class="n">context_tip</span> <span class="o">=</span> <span class="s">&#39;Graph Menu&#39;</span>
117        <span class="n">context</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_LIST_VIEW</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
118        <span class="bp">self</span><span class="o">.</span><span class="n">InsertSimpleTool</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">id_context</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> 
119                                   <span class="n">context_tip</span><span class="p">,</span> <span class="n">context_tip</span><span class="p">)</span>
120        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_TOOL</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_context</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">onToolContextMenu</span><span class="p">)</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">InsertSeparator</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
122        <span class="c">#add print button</span>
123        <span class="n">id_print</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
124        <span class="n">print_bmp</span> <span class="o">=</span>  <span class="n">wx</span><span class="o">.</span><span class="n">ArtProvider</span><span class="o">.</span><span class="n">GetBitmap</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ART_PRINT</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ART_TOOLBAR</span><span class="p">)</span>
125        <span class="bp">self</span><span class="o">.</span><span class="n">AddSimpleTool</span><span class="p">(</span><span class="n">id_print</span><span class="p">,</span> <span class="n">print_bmp</span><span class="p">,</span>
126                           <span class="s">&#39;Print&#39;</span><span class="p">,</span> <span class="s">&#39;Activate printing&#39;</span><span class="p">)</span>
127        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_TOOL</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">id_print</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_print</span><span class="p">)</span>
128       
129       
130<span class="k">class</span> <span class="nc">ModelPanel2D</span><span class="p">(</span><span class="n">ModelPanel1D</span><span class="p">):</span></div></div>
131<div class="viewcode-block" id="ModelPanel2D"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D">[docs]</a>    <span class="sd">&quot;&quot;&quot;</span>
132<span class="sd">    Plot panel for use with the GUI manager</span>
133<span class="sd">    &quot;&quot;&quot;</span>
134   
135    <span class="c">## Internal name for the AUI manager</span>
136    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&quot;plotpanel&quot;</span>
137    <span class="c">## Title to appear on top of the window</span>
138    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;Plot Panel&quot;</span>
139    <span class="c">## Flag to tell the GUI manager that this panel is not</span>
140    <span class="c">#  tied to any perspective</span>
141    <span class="n">ALWAYS_ON</span> <span class="o">=</span> <span class="bp">True</span>
142    <span class="c">## Group ID</span>
143    <span class="n">group_id</span> <span class="o">=</span> <span class="bp">None</span>
144   
145   
146    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">data2d</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
147                 <span class="n">dpi</span><span class="o">=</span><span class="bp">None</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">NO_FULL_REPAINT_ON_RESIZE</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
148        <span class="sd">&quot;&quot;&quot;</span>
149<span class="sd">        Initialize the panel</span>
150<span class="sd">        &quot;&quot;&quot;</span>
151        <span class="n">ModelPanel1D</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">style</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
152        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
153        <span class="c">## Reference to the parent window</span>
154        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="s">&quot;parent&quot;</span><span class="p">):</span>
155            <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">parent</span>
156        <span class="c">## Dictionary containing Plottables</span>
157        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span> <span class="o">=</span> <span class="p">{}</span>
158        <span class="c">## Save reference of the current plotted </span>
159        <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span> <span class="o">=</span> <span class="n">data2d</span>
160        <span class="c">## Unique ID (from gui_manager)</span>
161        <span class="bp">self</span><span class="o">.</span><span class="n">uid</span> <span class="o">=</span> <span class="bp">None</span>
162        <span class="c">## Action IDs for internal call-backs</span>
163        <span class="bp">self</span><span class="o">.</span><span class="n">action_ids</span> <span class="o">=</span> <span class="p">{}</span>
164        <span class="c">## Create Artist and bind it</span>
165        <span class="bp">self</span><span class="o">.</span><span class="n">connect</span> <span class="o">=</span> <span class="n">BindArtist</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="p">)</span>
166        <span class="c">## Beam stop</span>
167        <span class="bp">self</span><span class="o">.</span><span class="n">beamstop_radius</span> <span class="o">=</span> <span class="n">DEFAULT_BEAM</span>
168        <span class="c">## to set the order of lines drawn first.</span>
169        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">=</span> <span class="mi">5</span>
170        <span class="c">## Reference to the current slicer</span>
171        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
172        <span class="c">## event to send slicer info </span>
173        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">EVT_INTERNAL</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onEVT_INTERNAL</span><span class="p">)</span>
174       
175        <span class="bp">self</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">False</span>
176        <span class="c">## panel that contains result from slicer motion (ex: Boxsum info)</span>
177        <span class="bp">self</span><span class="o">.</span><span class="n">panel_slicer</span> <span class="o">=</span> <span class="bp">None</span>
178        <span class="bp">self</span><span class="o">.</span><span class="n">title_label</span> <span class="o">=</span> <span class="bp">None</span>
179        <span class="bp">self</span><span class="o">.</span><span class="n">title_font</span> <span class="o">=</span> <span class="bp">None</span>
180        <span class="bp">self</span><span class="o">.</span><span class="n">title_color</span> <span class="o">=</span> <span class="s">&#39;black&#39;</span>
181        <span class="c">## Graph        </span>
182        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span> <span class="o">=</span> <span class="n">Graph</span><span class="p">()</span>
183        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Q}&quot;</span><span class="p">,</span> <span class="s">&#39;A^{-1}&#39;</span><span class="p">)</span>
184        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Intensity} &quot;</span><span class="p">,</span> <span class="s">&quot;cm^{-1}&quot;</span><span class="p">)</span>
185        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
186        <span class="c">## store default value of zmin and zmax </span>
187        <span class="bp">self</span><span class="o">.</span><span class="n">default_zmin_ctl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmin_2D</span>
188        <span class="bp">self</span><span class="o">.</span><span class="n">default_zmax_ctl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmax_2D</span>
189
190    <span class="k">def</span> <span class="nf">on_plot_qrange</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>
191<div class="viewcode-block" id="ModelPanel2D.on_plot_qrange"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.on_plot_qrange">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
192<span class="sd">        On Qmin Qmax vertical line event</span>
193<span class="sd">        &quot;&quot;&quot;</span>
194        <span class="c"># Not implemented</span>
195        <span class="k">if</span> <span class="n">event</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
196            <span class="k">return</span>
197        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span> 
198                       
199    <span class="k">def</span> <span class="nf">onLeftDown</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span> </div>
200<div class="viewcode-block" id="ModelPanel2D.onLeftDown"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onLeftDown">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
201<span class="sd">        left button down and ready to drag</span>
202<span class="sd">        </span>
203<span class="sd">        &quot;&quot;&quot;</span>
204        <span class="c"># Check that the LEFT button was pressed</span>
205        <span class="n">PlotPanel</span><span class="o">.</span><span class="n">onLeftDown</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>   
206        <span class="n">ax</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">inaxes</span>
207        <span class="k">if</span> <span class="n">ax</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
208            <span class="c"># data coordinate position</span>
209            <span class="n">pos_x</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%8.3g</span><span class="s">&quot;</span><span class="o">%</span> <span class="n">event</span><span class="o">.</span><span class="n">xdata</span>
210            <span class="n">pos_y</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%8.3g</span><span class="s">&quot;</span><span class="o">%</span> <span class="n">event</span><span class="o">.</span><span class="n">ydata</span>
211            <span class="n">position</span> <span class="o">=</span> <span class="s">&quot;x: </span><span class="si">%s</span><span class="s">    y: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">pos_x</span><span class="p">,</span> <span class="n">pos_y</span><span class="p">)</span>
212            <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">position</span><span class="p">))</span>
213        <span class="bp">self</span><span class="o">.</span><span class="n">plottable_selected</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
214        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">set_panel_on_focus</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
215        <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">PanelOnFocusEvent</span><span class="p">(</span><span class="n">panel</span><span class="o">=</span><span class="bp">self</span><span class="p">))</span>
216       
217    <span class="k">def</span> <span class="nf">add_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
218<div class="viewcode-block" id="ModelPanel2D.add_toolbar"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.add_toolbar">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
219<span class="sd">        add toolbar</span>
220<span class="sd">        &quot;&quot;&quot;</span>
221        <span class="bp">self</span><span class="o">.</span><span class="n">enable_toolbar</span> <span class="o">=</span> <span class="bp">True</span>
222        <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span> <span class="o">=</span> <span class="n">NavigationToolBar2D</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">canvas</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">canvas</span><span class="p">)</span>
223        <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span>
224        <span class="c"># On Windows platform, default window size is incorrect, so set</span>
225        <span class="c"># toolbar width to figure width.</span>
226        <span class="n">tw</span><span class="p">,</span> <span class="n">th</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">GetSizeTuple</span><span class="p">()</span>
227        <span class="n">fw</span><span class="p">,</span> <span class="n">fh</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">GetSizeTuple</span><span class="p">()</span>
228        <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">SetSize</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">fw</span><span class="p">,</span> <span class="n">th</span><span class="p">))</span>
229        <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="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">)</span>
230        <span class="c"># update the axes menu on the toolbar</span>
231        <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
232         
233    <span class="k">def</span> <span class="nf">plot_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span></div>
234<div class="viewcode-block" id="ModelPanel2D.plot_data"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.plot_data">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
235<span class="sd">        Data is ready to be displayed</span>
236<span class="sd">        </span>
237<span class="sd">        :TODO: this name should be changed to something more appropriate</span>
238<span class="sd">             Don&#39;t forget that changing this name will mean changing code</span>
239<span class="sd">             in plotting.py</span>
240<span class="sd">         </span>
241<span class="sd">        :param event: data event</span>
242<span class="sd">        &quot;&quot;&quot;</span>
243        <span class="n">xlo</span> <span class="o">=</span> <span class="bp">None</span>
244        <span class="n">xhi</span> <span class="o">=</span> <span class="bp">None</span>
245        <span class="n">ylo</span> <span class="o">=</span> <span class="bp">None</span> 
246        <span class="n">yhi</span> <span class="o">=</span> <span class="bp">None</span>
247        <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">&#39;Data1D&#39;</span><span class="p">:</span>
248            <span class="k">return</span>
249        <span class="c">## Update self.data2d with the current plot</span>
250        <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span> <span class="o">=</span> <span class="n">data</span>
251        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
252            <span class="c">#replace</span>
253            <span class="n">xlo</span><span class="p">,</span> <span class="n">xhi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">get_xlim</span><span class="p">()</span>
254            <span class="n">ylo</span><span class="p">,</span> <span class="n">yhi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">get_ylim</span><span class="p">()</span>
255            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
256            <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="n">data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
257        <span class="k">else</span><span class="p">:</span>
258            <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="n">data</span><span class="o">.</span><span class="n">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
259            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="n">data</span><span class="o">.</span><span class="n">id</span><span class="p">])</span> 
260            <span class="c"># update qmax with the new xmax of data plotted</span>
261            <span class="bp">self</span><span class="o">.</span><span class="n">qmax</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">xmax</span> 
262        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
263        <span class="c"># Check axis labels</span>
264        <span class="c">#TODO: Should re-factor this</span>
265        <span class="c">## render the graph with its new content   </span>
266        <span class="c">#data2D: put &#39;Pixel (Number)&#39; for axis title and unit in case of having no detector info and none in _units</span>
267        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">detector</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span> 
268            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">_xunit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">_yunit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
269                <span class="n">data</span><span class="o">.</span><span class="n">_xaxis</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{x}&#39;</span>
270                <span class="n">data</span><span class="o">.</span><span class="n">_yaxis</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{y}&#39;</span>
271                <span class="n">data</span><span class="o">.</span><span class="n">_xunit</span> <span class="o">=</span> <span class="s">&#39;pixel&#39;</span>
272                <span class="n">data</span><span class="o">.</span><span class="n">_yunit</span> <span class="o">=</span> <span class="s">&#39;pixel&#39;</span>
273        <span class="c"># graph properties</span>
274        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">_xaxis</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">_xunit</span><span class="p">)</span>
275        <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">_yaxis</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">_yunit</span><span class="p">)</span>
276        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_is_changed_legend_label</span><span class="p">:</span>   
277                <span class="n">data</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">title_label</span>
278        <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">label</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
279            <span class="n">data</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">name</span>   
280        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">title_font</span><span class="p">:</span>
281            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">label</span><span class="p">)</span>
282            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
283            <span class="c"># Set the axis labels on subplot</span>
284            <span class="bp">self</span><span class="o">.</span><span class="n">_set_axis_labels</span><span class="p">()</span>
285            <span class="bp">self</span><span class="o">.</span><span class="n">draw_plot</span><span class="p">()</span>
286        <span class="k">else</span><span class="p">:</span>
287            <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
288            <span class="bp">self</span><span class="o">.</span><span class="n">draw_plot</span><span class="p">()</span>
289            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">label</span><span class="p">,</span>
290                                   <span class="n">fontproperties</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title_font</span><span class="p">,</span>
291                                   <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title_color</span><span class="p">)</span>
292            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span>   
293        <span class="c">## store default value of zmin and zmax </span>
294        <span class="bp">self</span><span class="o">.</span><span class="n">default_zmin_ctl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmin_2D</span>
295        <span class="bp">self</span><span class="o">.</span><span class="n">default_zmax_ctl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmax_2D</span>
296        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_zoomed</span><span class="p">:</span>
297            <span class="k">return</span>
298        <span class="c"># Recover the x,y limits</span>
299        <span class="k">if</span> <span class="p">(</span><span class="n">xlo</span> <span class="ow">and</span> <span class="n">xhi</span> <span class="ow">and</span> <span class="n">ylo</span> <span class="ow">and</span> <span class="n">yhi</span><span class="p">)</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
300            <span class="k">if</span> <span class="p">(</span><span class="n">xlo</span> <span class="o">&gt;</span> <span class="n">data</span><span class="o">.</span><span class="n">xmin</span> <span class="ow">and</span> <span class="n">xhi</span> <span class="o">&lt;</span> <span class="n">data</span><span class="o">.</span><span class="n">xmax</span> <span class="ow">and</span>\
301                        <span class="n">ylo</span> <span class="o">&gt;</span> <span class="n">data</span><span class="o">.</span><span class="n">ymin</span> <span class="ow">and</span> <span class="n">yhi</span> <span class="o">&lt;</span> <span class="n">data</span><span class="o">.</span><span class="n">ymax</span><span class="p">):</span>
302                <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">((</span><span class="n">xlo</span><span class="p">,</span> <span class="n">xhi</span><span class="p">))</span>     
303                <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">((</span><span class="n">ylo</span><span class="p">,</span> <span class="n">yhi</span><span class="p">))</span> 
304            <span class="k">else</span><span class="p">:</span> 
305                <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
306                <span class="bp">self</span><span class="o">.</span><span class="n">is_zoomed</span> <span class="o">=</span> <span class="bp">False</span>
307
308    <span class="k">def</span> <span class="nf">_set_axis_labels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
309        <span class="sd">&quot;&quot;&quot;</span>
310<span class="sd">        Set axis labels</span>
311<span class="sd">        &quot;&quot;&quot;</span>
312        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span>
313        <span class="c"># control axis labels from the panel itself</span>
314        <span class="n">yname</span><span class="p">,</span> <span class="n">yunits</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_yaxis</span><span class="p">()</span>
315        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
316            <span class="n">yname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span>
317            <span class="n">yunits</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span>
318        <span class="k">else</span><span class="p">:</span>
319            <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span> <span class="o">=</span> <span class="n">yname</span>
320            <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span> <span class="o">=</span> <span class="n">yunits</span>
321        <span class="n">xname</span><span class="p">,</span> <span class="n">xunits</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_xaxis</span><span class="p">()</span>
322        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
323            <span class="n">xname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span>
324            <span class="n">xunits</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span>
325        <span class="k">else</span><span class="p">:</span>
326            <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span> <span class="o">=</span> <span class="n">xname</span>
327            <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span> <span class="o">=</span> <span class="n">xunits</span>
328        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="n">xname</span><span class="p">,</span> <span class="n">xunits</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_font</span><span class="p">,</span> 
329                   <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_color</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_tick</span><span class="p">)</span>
330        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="n">yname</span><span class="p">,</span> <span class="n">yunits</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_font</span><span class="p">,</span> 
331                   <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_color</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_tick</span><span class="p">)</span>
332       
333    <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>
334<div class="viewcode-block" id="ModelPanel2D.onContextMenu"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onContextMenu">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
335<span class="sd">        2D plot context menu</span>
336<span class="sd">        </span>
337<span class="sd">        :param event: wx context event</span>
338<span class="sd">        </span>
339<span class="sd">        &quot;&quot;&quot;</span>
340        <span class="n">slicerpop</span> <span class="o">=</span> <span class="n">PanelMenu</span><span class="p">()</span>
341        <span class="n">slicerpop</span><span class="o">.</span><span class="n">set_plots</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">)</span>
342        <span class="n">slicerpop</span><span class="o">.</span><span class="n">set_graph</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="p">)</span>
343             
344        <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>
345        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Save Image&#39;</span><span class="p">)</span>
346        <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">onSaveImage</span><span class="p">)</span>
347       
348        <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>
349        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span><span class="s">&#39;&amp;Print Image&#39;</span><span class="p">,</span> <span class="s">&#39;Print image&#39;</span><span class="p">)</span>
350        <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">onPrint</span><span class="p">)</span>
351       
352        <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>
353        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span><span class="s">&#39;&amp;Print Preview&#39;</span><span class="p">,</span> <span class="s">&#39;Print preview&#39;</span><span class="p">)</span>
354        <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">onPrinterPreview</span><span class="p">)</span>
355
356        <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>
357        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Copy to Clipboard&#39;</span><span class="p">,</span> <span class="s">&#39;Copy to the clipboard&#39;</span><span class="p">)</span>
358        <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">OnCopyFigureMenu</span><span class="p">)</span>
359        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
360        <span class="c"># saving data</span>
361        <span class="n">plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span>
362        <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>
363        <span class="n">name</span> <span class="o">=</span> <span class="n">plot</span><span class="o">.</span><span class="n">name</span>
364        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&amp;Data Info&quot;</span> <span class="p">)</span>
365        <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">_onDataShow</span><span class="p">)</span>
366
367        <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>
368        <span class="n">name</span> <span class="o">=</span> <span class="n">plot</span><span class="o">.</span><span class="n">name</span>
369        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&amp;Save as a File (DAT)&quot;</span> <span class="p">)</span>
370        <span class="bp">self</span><span class="o">.</span><span class="n">action_ids</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="nb">id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">plot</span>
371        <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">_onSave</span><span class="p">)</span>
372
373        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
374        <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">data2D</span><span class="o">.</span><span class="n">detector</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>       
375           
376            <span class="n">item_list</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_context_menu</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
377            <span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="n">item_list</span> <span class="o">==</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">item_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span>\
378                <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot; &quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;Residuals&#39;</span><span class="p">:</span> 
379                <span class="c"># The line above; Not for trunk</span>
380                <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">item_list</span><span class="p">:</span>
381                    <span class="k">try</span><span class="p">:</span>
382                        <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>
383                        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
384                        <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="n">item</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
385                    <span class="k">except</span><span class="p">:</span>
386                        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;ModelPanel1D.onContextMenu: &quot;</span>
387                        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;bad menu item  </span><span class="si">%s</span><span class="s">&quot;</span><span class="o">%</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
388                        <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>
389                        <span class="k">pass</span>
390                <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
391           
392            <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>
393            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Perform Circular Average&#39;</span><span class="p">)</span>
394            <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">onCircular</span><span class="p">)</span> \
395            <span class="c"># For Masked Data</span>
396            <span class="k">if</span> <span class="ow">not</span> <span class="n">plot</span><span class="o">.</span><span class="n">mask</span><span class="o">.</span><span class="n">all</span><span class="p">():</span>
397                <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>
398                <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Masked Circular Average&#39;</span><span class="p">)</span>
399                <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">onMaskedCircular</span><span class="p">)</span> 
400            <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>
401            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Sector [Q View]&#39;</span><span class="p">)</span>
402            <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">onSectorQ</span><span class="p">)</span> 
403            <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>
404            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Annulus [Phi View ]&#39;</span><span class="p">)</span>
405            <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">onSectorPhi</span><span class="p">)</span> 
406            <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>
407            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Box Sum&#39;</span><span class="p">)</span>
408            <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">onBoxSum</span><span class="p">)</span> 
409            <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>
410            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Box Averaging in Qx&#39;</span><span class="p">)</span>
411            <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">onBoxavgX</span><span class="p">)</span> 
412            <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>
413            <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Box Averaging in Qy&#39;</span><span class="p">)</span>
414            <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">onBoxavgY</span><span class="p">)</span> 
415            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
416                <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>
417                <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Clear Slicer&#39;</span><span class="p">)</span>
418                <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">onClearSlicer</span><span class="p">)</span> 
419                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</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;BoxSum&quot;</span><span class="p">:</span>
420                    <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>
421                    <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Edit Slicer Parameters&#39;</span><span class="p">)</span>
422                    <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">_onEditSlicer</span><span class="p">)</span> 
423            <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span> 
424           
425        <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>
426        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Edit Graph Label&#39;</span><span class="p">,</span> <span class="s">&#39;Edit Graph Label&#39;</span><span class="p">)</span>
427        <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">onEditLabels</span><span class="p">)</span>
428        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
429       
430        <span class="c"># ILL mod here</span>
431
432        <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>
433        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Modify graph appearance&#39;</span><span class="p">,</span><span class="s">&#39;Modify graph appearance&#39;</span><span class="p">)</span>
434        <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">modifyGraphAppearance</span><span class="p">)</span>
435        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
436
437
438       
439        <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>
440        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;2D Color Map&#39;</span><span class="p">)</span>
441        <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">_onEditDetector</span><span class="p">)</span>
442        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
443       
444        <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>
445        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Toggle Linear/Log Scale&#39;</span><span class="p">)</span>
446        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onToggleScale</span><span class="p">)</span> 
447       
448       
449        <span class="n">slicerpop</span><span class="o">.</span><span class="n">AppendSeparator</span><span class="p">()</span>
450        <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>
451        <span class="n">slicerpop</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span> <span class="s">&#39;&amp;Window Title&#39;</span><span class="p">)</span>
452        <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">onChangeCaption</span><span class="p">)</span>
453       
454        <span class="k">try</span><span class="p">:</span>
455            <span class="n">pos_evt</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetPosition</span><span class="p">()</span>
456            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ScreenToClient</span><span class="p">(</span><span class="n">pos_evt</span><span class="p">)</span>
457        <span class="k">except</span><span class="p">:</span>
458            <span class="n">pos_x</span><span class="p">,</span> <span class="n">pos_y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">GetPositionTuple</span><span class="p">()</span>
459            <span class="n">pos</span> <span class="o">=</span> <span class="p">(</span><span class="n">pos_x</span><span class="p">,</span> <span class="n">pos_y</span> <span class="o">+</span> <span class="mi">5</span><span class="p">)</span>
460        <span class="bp">self</span><span class="o">.</span><span class="n">PopupMenu</span><span class="p">(</span><span class="n">slicerpop</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span>
461       
462           
463    <span class="k">def</span> <span class="nf">onEditLabels</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
464<div class="viewcode-block" id="ModelPanel2D.onEditLabels"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onEditLabels">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
465<span class="sd">        Edit legend label</span>
466<span class="sd">        &quot;&quot;&quot;</span>
467        <span class="k">try</span><span class="p">:</span>
468            <span class="n">selected_plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">selected_plottable</span><span class="p">]</span>
469        <span class="k">except</span><span class="p">:</span>
470            <span class="n">selected_plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">id</span><span class="p">]</span>
471        <span class="n">label</span> <span class="o">=</span> <span class="n">selected_plot</span><span class="o">.</span><span class="n">label</span>
472        <span class="n">dial</span> <span class="o">=</span> <span class="n">TextDialog</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Change Label&#39;</span><span class="p">,</span> <span class="n">label</span><span class="p">)</span>
473        <span class="k">if</span> <span class="n">dial</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
474            <span class="k">try</span><span class="p">:</span>
475                <span class="n">FONT</span> <span class="o">=</span> <span class="n">FontProperties</span><span class="p">()</span>
476                <span class="n">newlabel</span> <span class="o">=</span> <span class="n">dial</span><span class="o">.</span><span class="n">getText</span><span class="p">()</span>
477                <span class="n">font</span> <span class="o">=</span> <span class="n">FONT</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
478                <span class="n">font</span><span class="o">.</span><span class="n">set_size</span><span class="p">(</span><span class="n">dial</span><span class="o">.</span><span class="n">getSize</span><span class="p">())</span>
479                <span class="n">font</span><span class="o">.</span><span class="n">set_family</span><span class="p">(</span><span class="n">dial</span><span class="o">.</span><span class="n">getFamily</span><span class="p">())</span>
480                <span class="n">font</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="n">dial</span><span class="o">.</span><span class="n">getStyle</span><span class="p">())</span>
481                <span class="n">font</span><span class="o">.</span><span class="n">set_weight</span><span class="p">(</span><span class="n">dial</span><span class="o">.</span><span class="n">getWeight</span><span class="p">())</span>
482                <span class="n">colour</span> <span class="o">=</span> <span class="n">dial</span><span class="o">.</span><span class="n">getColor</span><span class="p">()</span>
483                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">newlabel</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
484                    <span class="c"># update Label</span>
485                    <span class="n">selected_plot</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">newlabel</span>
486                    <span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">newlabel</span><span class="p">)</span>
487                    <span class="bp">self</span><span class="o">.</span><span class="n">title_label</span> <span class="o">=</span> <span class="n">selected_plot</span><span class="o">.</span><span class="n">label</span>
488                    <span class="bp">self</span><span class="o">.</span><span class="n">title_font</span> <span class="o">=</span> <span class="n">font</span>
489                    <span class="bp">self</span><span class="o">.</span><span class="n">title_color</span> <span class="o">=</span> <span class="n">colour</span>
490                    <span class="c">## render the graph</span>
491                    <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title_label</span><span class="p">,</span>
492                                           <span class="n">fontproperties</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title_font</span><span class="p">,</span>
493                                           <span class="n">color</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title_color</span><span class="p">)</span>
494                    <span class="bp">self</span><span class="o">.</span><span class="n">_is_changed_legend_label</span> <span class="o">=</span> <span class="bp">True</span>
495                    <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span> 
496            <span class="k">except</span><span class="p">:</span>
497                <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>
498                    <span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span> 
499                    <span class="n">msg</span><span class="o">=</span> <span class="s">&quot;Add Text: Error. Check your property values...&quot;</span>
500                    <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>
501                <span class="k">else</span><span class="p">:</span>
502                    <span class="k">raise</span>
503        <span class="n">dial</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
504       
505    <span class="k">def</span> <span class="nf">_onEditDetector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
506        <span class="sd">&quot;&quot;&quot;</span>
507<span class="sd">        Allow to view and edits  detector parameters</span>
508<span class="sd">        </span>
509<span class="sd">        :param event: wx.menu event</span>
510<span class="sd">        </span>
511<span class="sd">        &quot;&quot;&quot;</span>
512        <span class="kn">import</span> <span class="nn">detector_dialog</span>
513        <span class="n">dialog</span> <span class="o">=</span> <span class="n">detector_dialog</span><span class="o">.</span><span class="n">DetectorDialog</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">base</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span>
514                       <span class="n">reset_zmin_ctl</span> <span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">default_zmin_ctl</span><span class="p">,</span>
515                       <span class="n">reset_zmax_ctl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_zmax_ctl</span><span class="p">,</span><span class="n">cmap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">cmap</span><span class="p">)</span>
516        <span class="c">## info of current detector and data2D</span>
517        <span class="n">xnpts</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">data2D</span><span class="o">.</span><span class="n">x_bins</span><span class="p">)</span>
518        <span class="n">ynpts</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">data2D</span><span class="o">.</span><span class="n">y_bins</span><span class="p">)</span>
519        <span class="n">xmax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
520        <span class="n">ymax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
521        <span class="n">qmax</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="n">xmax</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="n">ymax</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
522        <span class="n">beam</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span>
523        <span class="c">## set dialog window content</span>
524        <span class="n">dialog</span><span class="o">.</span><span class="n">setContent</span><span class="p">(</span><span class="n">xnpts</span><span class="o">=</span><span class="n">xnpts</span><span class="p">,</span><span class="n">ynpts</span><span class="o">=</span><span class="n">ynpts</span><span class="p">,</span><span class="n">qmax</span><span class="o">=</span><span class="n">qmax</span><span class="p">,</span>
525                           <span class="n">beam</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span>
526                           <span class="n">zmin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmin_2D</span><span class="p">,</span>
527                          <span class="n">zmax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmax_2D</span><span class="p">)</span>
528        <span class="k">if</span> <span class="n">dialog</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>
529            <span class="n">evt</span> <span class="o">=</span> <span class="n">dialog</span><span class="o">.</span><span class="n">getContent</span><span class="p">()</span>
530            <span class="bp">self</span><span class="o">.</span><span class="n">zmin_2D</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">zmin</span>
531            <span class="bp">self</span><span class="o">.</span><span class="n">zmax_2D</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">zmax</span>
532            <span class="bp">self</span><span class="o">.</span><span class="n">cmap</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">cmap</span>
533        <span class="n">dialog</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
534        <span class="c">## Redraw the current image</span>
535        <span class="bp">self</span><span class="o">.</span><span class="n">image</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">data</span><span class="p">,</span>
536                   <span class="n">qx_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">qx_data</span><span class="p">,</span>
537                   <span class="n">qy_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">qy_data</span><span class="p">,</span>
538                   <span class="n">xmin</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span>
539                   <span class="n">xmax</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">,</span>
540                   <span class="n">ymin</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span>
541                   <span class="n">ymax</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymax</span><span class="p">,</span>
542                   <span class="n">zmin</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmin_2D</span><span class="p">,</span>
543                   <span class="n">zmax</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">zmax_2D</span><span class="p">,</span>
544                   <span class="n">cmap</span><span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cmap</span><span class="p">,</span>
545                   <span class="n">color</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
546        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw_idle</span><span class="p">()</span>
547       
548    <span class="k">def</span> <span class="nf">freeze_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
549<div class="viewcode-block" id="ModelPanel2D.freeze_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.freeze_axes">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
550<span class="sd">        &quot;&quot;&quot;</span>
551        <span class="bp">self</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">True</span>
552       
553    <span class="k">def</span> <span class="nf">thaw_axes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
554<div class="viewcode-block" id="ModelPanel2D.thaw_axes"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.thaw_axes">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
555<span class="sd">        &quot;&quot;&quot;</span>
556        <span class="bp">self</span><span class="o">.</span><span class="n">axes_frozen</span> <span class="o">=</span> <span class="bp">False</span>
557       
558    <span class="k">def</span> <span class="nf">onMouseMotion</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span></div>
559<div class="viewcode-block" id="ModelPanel2D.onMouseMotion"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onMouseMotion">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
560<span class="sd">        &quot;&quot;&quot;</span>
561        <span class="k">pass</span>
562   
563    <span class="k">def</span> <span class="nf">onWheel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
564<div class="viewcode-block" id="ModelPanel2D.onWheel"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onWheel">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
565<span class="sd">        &quot;&quot;&quot;</span>
566        <span class="k">pass</span> 
567     
568    <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">draw</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span></div>
569<div class="viewcode-block" id="ModelPanel2D.update"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.update">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
570<span class="sd">        Respond to changes in the model by recalculating the </span>
571<span class="sd">        profiles and resetting the widgets.</span>
572<span class="sd">        &quot;&quot;&quot;</span>
573        <span class="bp">self</span><span class="o">.</span><span class="n">draw_plot</span><span class="p">()</span>
574       
575    <span class="k">def</span> <span class="nf">_getEmptySlicerEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span></div>
576        <span class="sd">&quot;&quot;&quot;</span>
577<span class="sd">        create an empty slicervent </span>
578<span class="sd">        &quot;&quot;&quot;</span>
579        <span class="k">return</span> <span class="n">SlicerEvent</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">obj_class</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
580       
581    <span class="k">def</span> <span class="nf">_onEVT_INTERNAL</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
582        <span class="sd">&quot;&quot;&quot;</span>
583<span class="sd">        Draw the slicer</span>
584<span class="sd">        </span>
585<span class="sd">        :param event: wx.lib.newevent (SlicerEvent) containing slicer</span>
586<span class="sd">            parameter</span>
587<span class="sd">            </span>
588<span class="sd">        &quot;&quot;&quot;</span>
589        <span class="bp">self</span><span class="o">.</span><span class="n">_setSlicer</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">slicer</span><span class="p">)</span>
590           
591    <span class="k">def</span> <span class="nf">_setSlicer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">slicer</span><span class="p">):</span>
592        <span class="sd">&quot;&quot;&quot;</span>
593<span class="sd">        Clear the previous slicer and create a new one.Post an internal</span>
594<span class="sd">        event.</span>
595<span class="sd">        </span>
596<span class="sd">        :param slicer: slicer class to create</span>
597<span class="sd">        </span>
598<span class="sd">        &quot;&quot;&quot;</span>
599        <span class="c">## Clear current slicer</span>
600        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span> 
601            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>           
602        <span class="c">## Create a new slicer    </span>
603        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
604        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="n">slicer</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">subplot</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">)</span>
605        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
606        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
607        <span class="c">## Draw slicer</span>
608        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
609        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
610        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Plotter2D._setSlicer  </span><span class="si">%s</span><span class="s">&quot;</span><span class="o">%</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
611        <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>
612        <span class="c"># Post slicer event</span>
613        <span class="n">event</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getEmptySlicerEvent</span><span class="p">()</span>
614        <span class="n">event</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
615        <span class="n">event</span><span class="o">.</span><span class="n">obj_class</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">__class__</span>
616        <span class="n">event</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">get_params</span><span class="p">()</span>
617        <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="p">,</span> <span class="n">event</span><span class="p">)</span>
618       
619    <span class="k">def</span> <span class="nf">onMaskedCircular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
620<div class="viewcode-block" id="ModelPanel2D.onMaskedCircular"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onMaskedCircular">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
621<span class="sd">        perform circular averaging on Data2D with mask if it exists</span>
622<span class="sd">        </span>
623<span class="sd">        :param event: wx.menu event</span>
624<span class="sd">        </span>
625<span class="sd">        &quot;&quot;&quot;</span>
626        <span class="bp">self</span><span class="o">.</span><span class="n">onCircular</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span>
627       
628    <span class="k">def</span> <span class="nf">onCircular</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">,</span> <span class="n">ismask</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span></div>
629<div class="viewcode-block" id="ModelPanel2D.onCircular"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onCircular">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
630<span class="sd">        perform circular averaging on Data2D</span>
631<span class="sd">        </span>
632<span class="sd">        :param event: wx.menu event</span>
633<span class="sd">        </span>
634<span class="sd">        &quot;&quot;&quot;</span>
635        <span class="c"># Find the best number of bins</span>
636        <span class="n">npt</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">isfinite</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">data</span><span class="p">)]))</span>
637        <span class="n">npt</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">npt</span><span class="p">)</span>
638        <span class="kn">from</span> <span class="nn">sas.dataloader.manipulations</span> <span class="kn">import</span> <span class="n">CircularAverage</span>
639        <span class="c">## compute the maximum radius of data2D</span>
640        <span class="bp">self</span><span class="o">.</span><span class="n">qmax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">),</span> 
641                        <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">))</span>
642        <span class="bp">self</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymax</span><span class="p">),</span>
643                        <span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymin</span><span class="p">))</span>
644        <span class="bp">self</span><span class="o">.</span><span class="n">radius</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmax</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span><span class="o">+</span> <span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ymax</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span> 
645        <span class="c">##Compute beam width</span>
646        <span class="n">bin_width</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmax</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">qmax</span><span class="p">)</span><span class="o">/</span><span class="n">npt</span>
647        <span class="c">## Create data1D circular average of data2D</span>
648        <span class="n">Circle</span> <span class="o">=</span> <span class="n">CircularAverage</span><span class="p">(</span><span class="n">r_min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">r_max</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">radius</span><span class="p">,</span> 
649                                 <span class="n">bin_width</span><span class="o">=</span><span class="n">bin_width</span><span class="p">)</span>
650        <span class="n">circ</span> <span class="o">=</span> <span class="n">Circle</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="p">,</span> <span class="n">ismask</span><span class="o">=</span><span class="n">ismask</span><span class="p">)</span>
651        <span class="kn">from</span> <span class="nn">sas.guiframe.dataFitting</span> <span class="kn">import</span> <span class="n">Data1D</span>
652        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">circ</span><span class="p">,</span> <span class="s">&quot;dxl&quot;</span><span class="p">):</span>
653            <span class="n">dxl</span> <span class="o">=</span> <span class="n">circ</span><span class="o">.</span><span class="n">dxl</span>
654        <span class="k">else</span><span class="p">:</span>
655            <span class="n">dxl</span> <span class="o">=</span> <span class="bp">None</span>
656        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">circ</span><span class="p">,</span> <span class="s">&quot;dxw&quot;</span><span class="p">):</span>
657            <span class="n">dxw</span> <span class="o">=</span> <span class="n">circ</span><span class="o">.</span><span class="n">dxw</span>
658        <span class="k">else</span><span class="p">:</span>
659            <span class="n">dxw</span> <span class="o">=</span> <span class="bp">None</span>
660
661        <span class="n">new_plot</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">circ</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">circ</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="n">circ</span><span class="o">.</span><span class="n">dy</span><span class="p">,</span> <span class="n">dx</span><span class="o">=</span><span class="n">circ</span><span class="o">.</span><span class="n">dx</span><span class="p">)</span>
662        <span class="n">new_plot</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">dxl</span>
663        <span class="n">new_plot</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">dxw</span>
664        <span class="n">new_plot</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Circ avg &quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span>
665        <span class="n">new_plot</span><span class="o">.</span><span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">source</span>
666        <span class="c">#new_plot.info = self.data2D.info</span>
667        <span class="n">new_plot</span><span class="o">.</span><span class="n">interactive</span> <span class="o">=</span> <span class="bp">True</span>
668        <span class="n">new_plot</span><span class="o">.</span><span class="n">detector</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">detector</span>
669       
670        <span class="c">## If the data file does not tell us what the axes are, just assume...</span>
671        <span class="n">new_plot</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Q}&quot;</span><span class="p">,</span> <span class="s">&quot;A^{-1}&quot;</span><span class="p">)</span>
672        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="p">,</span> <span class="s">&quot;scale&quot;</span><span class="p">)</span> <span class="ow">and</span> \
673                    <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">scale</span> <span class="o">==</span> <span class="s">&#39;linear&#39;</span><span class="p">:</span>
674            <span class="n">new_plot</span><span class="o">.</span><span class="n">ytransform</span> <span class="o">=</span> <span class="s">&#39;y&#39;</span>
675            <span class="n">new_plot</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Residuals} &quot;</span><span class="p">,</span> <span class="s">&quot;normalized&quot;</span><span class="p">)</span>
676        <span class="k">else</span><span class="p">:</span>
677            <span class="n">new_plot</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Intensity} &quot;</span><span class="p">,</span> <span class="s">&quot;cm^{-1}&quot;</span><span class="p">)</span>
678
679        <span class="n">new_plot</span><span class="o">.</span><span class="n">group_id</span> <span class="o">=</span> <span class="s">&quot;2daverage&quot;</span>  <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span>
680        <span class="n">new_plot</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="s">&quot;Circ avg &quot;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span>
681        <span class="n">new_plot</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
682        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">update_theory</span><span class="p">(</span><span class="n">data_id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> \
683                                       <span class="n">theory</span><span class="o">=</span><span class="n">new_plot</span><span class="p">)</span>
684        <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> 
685                     <span class="n">NewPlotEvent</span><span class="p">(</span><span class="n">plot</span><span class="o">=</span><span class="n">new_plot</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="n">new_plot</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
686       
687    <span class="k">def</span> <span class="nf">_onEditSlicer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
688        <span class="sd">&quot;&quot;&quot;</span>
689<span class="sd">        Is available only when a slicer is drawn.Create a dialog </span>
690<span class="sd">        window where the user can enter value to reset slicer</span>
691<span class="sd">        parameters.</span>
692<span class="sd">        </span>
693<span class="sd">        :param event: wx.menu event</span>
694<span class="sd">        </span>
695<span class="sd">        &quot;&quot;&quot;</span>
696        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
697            <span class="kn">from</span> <span class="nn">SlicerParameters</span> <span class="kn">import</span> <span class="n">SlicerParameterPanel</span>
698            <span class="n">dialog</span> <span class="o">=</span> <span class="n">SlicerParameterPanel</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;Slicer Parameters&quot;</span><span class="p">)</span>
699            <span class="n">dialog</span><span class="o">.</span><span class="n">set_slicer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
700                            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">get_params</span><span class="p">())</span>
701            <span class="k">if</span> <span class="n">dialog</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>
702                <span class="n">dialog</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 
703       
704    <span class="k">def</span> <span class="nf">onSectorQ</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
705<div class="viewcode-block" id="ModelPanel2D.onSectorQ"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onSectorQ">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
706<span class="sd">        Perform sector averaging on Q and draw sector slicer</span>
707<span class="sd">        &quot;&quot;&quot;</span>
708        <span class="kn">from</span> <span class="nn">SectorSlicer</span> <span class="kn">import</span> <span class="n">SectorInteractor</span>
709        <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
710        <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="p">,</span> <span class="n">InternalEvent</span><span class="p">(</span><span class="n">slicer</span><span class="o">=</span><span class="n">SectorInteractor</span><span class="p">))</span>
711       
712    <span class="k">def</span> <span class="nf">onSectorPhi</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
713<div class="viewcode-block" id="ModelPanel2D.onSectorPhi"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onSectorPhi">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
714<span class="sd">        Perform sector averaging on Phi and draw annulus slicer</span>
715<span class="sd">        &quot;&quot;&quot;</span>
716        <span class="kn">from</span> <span class="nn">AnnulusSlicer</span> <span class="kn">import</span> <span class="n">AnnulusInteractor</span>
717        <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
718        <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="p">,</span> <span class="n">InternalEvent</span><span class="p">(</span><span class="n">slicer</span><span class="o">=</span><span class="n">AnnulusInteractor</span><span class="p">))</span>
719       
720    <span class="k">def</span> <span class="nf">onBoxSum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
721<div class="viewcode-block" id="ModelPanel2D.onBoxSum"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onBoxSum">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
722<span class="sd">        &quot;&quot;&quot;</span>
723        <span class="kn">from</span> <span class="nn">sas.guiframe.gui_manager</span> <span class="kn">import</span> <span class="n">MDIFrame</span>
724        <span class="kn">from</span> <span class="nn">boxSum</span> <span class="kn">import</span> <span class="n">BoxSum</span>
725        <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
726        <span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span> <span class="o">+=</span> <span class="mi">1</span>
727        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span>  <span class="n">BoxSum</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">subplot</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">slicer_z</span><span class="p">)</span>
728        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">ymax</span><span class="p">)</span>
729        <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmin</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">xmax</span><span class="p">)</span>
730        <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
731        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>
732        <span class="c">## Value used to initially set the slicer panel</span>
733        <span class="nb">type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
734        <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">get_params</span><span class="p">()</span>
735        <span class="c">## Create a new panel to display results of summation of Data2D</span>
736        <span class="kn">from</span> <span class="nn">slicerpanel</span> <span class="kn">import</span> <span class="n">SlicerPanel</span>
737        <span class="n">win</span> <span class="o">=</span> <span class="n">MDIFrame</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="bp">None</span><span class="p">,</span> <span class="s">&#39;None&#39;</span><span class="p">,</span> <span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
738        <span class="n">new_panel</span> <span class="o">=</span> <span class="n">SlicerPanel</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">win</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span>
739                                    <span class="n">base</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">type</span><span class="p">,</span>
740                                    <span class="n">params</span><span class="o">=</span><span class="n">params</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>
741       
742        <span class="n">new_panel</span><span class="o">.</span><span class="n">window_caption</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</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; &quot;</span> <span class="o">+</span> \
743                                    <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
744        <span class="n">new_panel</span><span class="o">.</span><span class="n">window_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</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; &quot;</span> <span class="o">+</span> \
745                                    <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
746        <span class="c">## Store a reference of the new created panel</span>
747       
748        <span class="c">## save the window_caption of the new panel in the current slicer</span>
749        <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">set_panel_name</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">new_panel</span><span class="o">.</span><span class="n">window_caption</span><span class="p">)</span>
750        <span class="c">## post slicer panel to guiframe to display it </span>
751        <span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">SlicerPanelEvent</span>
752       
753        <span class="n">win</span><span class="o">.</span><span class="n">set_panel</span><span class="p">(</span><span class="n">new_panel</span><span class="p">)</span>
754        <span class="n">new_panel</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="n">win</span>
755        <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">SlicerPanelEvent</span><span class="p">(</span><span class="n">panel</span><span class="o">=</span><span class="n">new_panel</span><span class="p">,</span>
756                                                    <span class="n">main_panel</span><span class="o">=</span><span class="bp">self</span><span class="p">))</span>
757        <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">new_panel</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">)</span>
758        <span class="bp">self</span><span class="o">.</span><span class="n">panel_slicer</span> <span class="o">=</span> <span class="n">new_panel</span>
759       
760    <span class="k">def</span> <span class="nf">onBoxavgX</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span></div>
761<div class="viewcode-block" id="ModelPanel2D.onBoxavgX"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onBoxavgX">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
762<span class="sd">        Perform 2D data averaging on Qx</span>
763<span class="sd">        Create a new slicer .</span>
764<span class="sd">        </span>
765<span class="sd">        :param event: wx.menu event</span>
766<span class="sd">        &quot;&quot;&quot;</span>
767        <span class="kn">from</span> <span class="nn">boxSlicer</span> <span class="kn">import</span> <span class="n">BoxInteractorX</span>
768        <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
769        <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="p">,</span> <span class="n">InternalEvent</span><span class="p">(</span><span class="n">slicer</span><span class="o">=</span><span class="n">BoxInteractorX</span><span class="p">))</span>
770       
771    <span class="k">def</span> <span class="nf">onBoxavgY</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span></div>
772<div class="viewcode-block" id="ModelPanel2D.onBoxavgY"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onBoxavgY">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
773<span class="sd">        Perform 2D data averaging on Qy</span>
774<span class="sd">        Create a new slicer .</span>
775<span class="sd">        </span>
776<span class="sd">        :param event: wx.menu event</span>
777<span class="sd">        </span>
778<span class="sd">        &quot;&quot;&quot;</span>
779        <span class="kn">from</span> <span class="nn">boxSlicer</span> <span class="kn">import</span> <span class="n">BoxInteractorY</span>
780        <span class="bp">self</span><span class="o">.</span><span class="n">onClearSlicer</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
781        <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="p">,</span> <span class="n">InternalEvent</span><span class="p">(</span><span class="n">slicer</span><span class="o">=</span><span class="n">BoxInteractorY</span><span class="p">))</span>
782       
783    <span class="k">def</span> <span class="nf">onClearSlicer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></div>
784<div class="viewcode-block" id="ModelPanel2D.onClearSlicer"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.onClearSlicer">[docs]</a>        <span class="sd">&quot;&quot;&quot;</span>
785<span class="sd">        Clear the slicer on the plot</span>
786<span class="sd">        &quot;&quot;&quot;</span>
787        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
788            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
789            <span class="bp">self</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
790            <span class="bp">self</span><span class="o">.</span><span class="n">slicer</span> <span class="o">=</span> <span class="bp">None</span>
791            <span class="c"># Post slicer None event</span>
792            <span class="n">event</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getEmptySlicerEvent</span><span class="p">()</span>
793            <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="p">,</span> <span class="n">event</span><span class="p">)</span>
794           
795    <span class="k">def</span> <span class="nf">_onSave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span></div>
796        <span class="sd">&quot;&quot;&quot;</span>
797<span class="sd">        Save a data set to a dat(text) file</span>
798<span class="sd">        </span>
799<span class="sd">        :param evt: Menu event</span>
800<span class="sd">        </span>
801<span class="sd">        &quot;&quot;&quot;</span>
802        <span class="nb">id</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">evt</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span>
803        <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>
804            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</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">_default_save_location</span>
805        <span class="n">default_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">selected_plottable</span><span class="p">]</span><span class="o">.</span><span class="n">label</span>
806        <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>
807            <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>
808        <span class="n">default_name</span> <span class="o">+=</span> <span class="s">&quot;_out&quot;</span>
809        <span class="k">if</span> <span class="nb">id</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">action_ids</span><span class="p">:</span>         
810            <span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
811            <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="bp">self</span><span class="o">.</span><span class="n">data2D</span><span class="p">,</span> <span class="n">default_name</span><span class="p">)</span>
812           
813    <span class="k">def</span> <span class="nf">_onDataShow</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
814        <span class="sd">&quot;&quot;&quot;</span>
815<span class="sd">        Show the data set in text</span>
816<span class="sd">        </span>
817<span class="sd">        :param evt: Menu event</span>
818<span class="sd">        </span>
819<span class="sd">        &quot;&quot;&quot;</span>
820        <span class="n">menu</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
821        <span class="nb">id</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">GetId</span><span class="p">()</span>
822        <span class="bp">self</span><span class="o">.</span><span class="n">set_selected_from_menu</span><span class="p">(</span><span class="n">menu</span><span class="p">,</span> <span class="nb">id</span><span class="p">)</span>
823        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plots</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">graph</span><span class="o">.</span><span class="n">selected_plottable</span><span class="p">]</span>
824        <span class="n">default_name</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">label</span>
825        <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>
826            <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>
827        <span class="c">#default_name += &quot;_out&quot;</span>
828        <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>
829            <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">default_name</span><span class="p">)</span>
830       
831
832    <span class="k">def</span> <span class="nf">modifyGraphAppearance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">e</span><span class="p">):</span>
833<div class="viewcode-block" id="ModelPanel2D.modifyGraphAppearance"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.modifyGraphAppearance">[docs]</a>        <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span> <span class="o">=</span> <span class="n">graphAppearance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="s">&#39;Modify graph appearance&#39;</span><span class="p">,</span>
834                                        <span class="n">legend</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
835
836       
837
838        <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">setDefaults</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_on</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">legend_on</span><span class="p">,</span>
839                                  <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span><span class="p">,</span>
840                                  <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span><span class="p">,</span>
841                                  <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_font</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">yaxis_font</span><span class="p">,</span>
842                                  <span class="n">find_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_loc_label</span><span class="p">(),</span><span class="bp">self</span><span class="o">.</span><span class="n">legendLoc</span><span class="p">),</span>
843                                  <span class="bp">self</span><span class="o">.</span><span class="n">xcolor</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">ycolor</span><span class="p">,</span>
844                                   <span class="bp">self</span><span class="o">.</span><span class="n">is_xtick</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_ytick</span><span class="p">)</span>
845        <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</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_CLOSE</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_graphApp_close</span><span class="p">)</span>
846   
847
848    <span class="k">def</span> <span class="nf">on_graphApp_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">e</span><span class="p">):</span></div>
849<div class="viewcode-block" id="ModelPanel2D.on_graphApp_close"><a class="viewcode-back" href="../../../../../dev/api/sas.guiframe.local_perspectives.plotting.html#sas.guiframe.local_perspectives.plotting.Plotter2D.ModelPanel2D.on_graphApp_close">[docs]</a>        <span class="c"># gets values from graph appearance dialog and sends them off</span>
850        <span class="c"># to modify the plot</span>
851
852        <span class="bp">self</span><span class="o">.</span><span class="n">onGridOnOff</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_togglegrid</span><span class="p">())</span>
853
854       
855        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xlab</span><span class="p">()</span>
856        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_ylab</span><span class="p">()</span>
857        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xunit</span><span class="p">()</span>
858        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_yunit</span><span class="p">()</span>
859        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_font</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xfont</span><span class="p">()</span>
860        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_font</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_yfont</span><span class="p">()</span>
861        <span class="bp">self</span><span class="o">.</span><span class="n">is_xtick</span> <span class="o">=</span>  <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xtick_check</span><span class="p">()</span>
862        <span class="bp">self</span><span class="o">.</span><span class="n">is_ytick</span> <span class="o">=</span>  <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_ytick_check</span><span class="p">()</span>
863        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_xtick</span><span class="p">:</span>
864            <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_tick</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_font</span>
865        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_ytick</span><span class="p">:</span>
866            <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_tick</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_font</span>
867
868        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xaxis_label</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_unit</span><span class="p">,</span> 
869                   <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xfont</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_xcolor</span><span class="p">(),</span> 
870                   <span class="bp">self</span><span class="o">.</span><span class="n">xaxis_tick</span><span class="p">)</span>
871        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yaxis_label</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_unit</span><span class="p">,</span> 
872                   <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_yfont</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">get_ycolor</span><span class="p">(),</span>
873                   <span class="bp">self</span><span class="o">.</span><span class="n">yaxis_tick</span><span class="p">)</span>
874
875        <span class="bp">self</span><span class="o">.</span><span class="n">graphApp</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
876</pre></div></div></div>
877
878          </div>
879        </div>
880      </div>
881      <div class="sphinxsidebar">
882        <div class="sphinxsidebarwrapper">
883<div id="searchbox" style="display: none">
884  <h3>Quick search</h3>
885    <form class="search" action="../../../../../search.html" method="get">
886      <input type="text" name="q" />
887      <input type="submit" value="Go" />
888      <input type="hidden" name="check_keywords" value="yes" />
889      <input type="hidden" name="area" value="default" />
890    </form>
891    <p class="searchtip" style="font-size: 90%">
892    Enter search terms or a module, class or function name.
893    </p>
894</div>
895<script type="text/javascript">$('#searchbox').show(0);</script>
896        </div>
897      </div>
898      <div class="clearer"></div>
899    </div>
900    <div class="related">
901      <h3>Navigation</h3>
902      <ul>
903        <li class="right" style="margin-right: 10px">
904          <a href="../../../../../genindex.html" title="General Index"
905             >index</a></li>
906        <li class="right" >
907          <a href="../../../../../py-modindex.html" title="Python Module Index"
908             >modules</a> |</li>
909        <li><a href="../../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
910          <li><a href="../../../../index.html" >Module code</a> &raquo;</li>
911          <li><a href="../../../guiframe.html" >sas.guiframe</a> &raquo;</li> 
912      </ul>
913    </div>
914    <div class="footer">
915        &copy; Copyright 2013, The SasView Project.
916      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
917    </div>
918  </body>
919</html>
Note: See TracBrowser for help on using the repository browser.