Changeset 1832 for sphinxdocs/build/html/_modules/GSASIIgrid.html
- Timestamp:
- May 2, 2015 5:30:05 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIgrid.html
r1709 r1832 52 52 <span class="c">#GSASIIgrid - data display routines</span> 53 53 <span class="c">########### SVN repository information ###################</span> 54 <span class="c"># $Date: 2015-0 3-13 15:46:05 -0500 (Fri, 13 Mar2015) $</span>55 <span class="c"># $Author: vondreele$</span>56 <span class="c"># $Revision: 1 699$</span>54 <span class="c"># $Date: 2015-05-01 18:38:23 -0500 (Fri, 01 May 2015) $</span> 55 <span class="c"># $Author: toby $</span> 56 <span class="c"># $Revision: 1831 $</span> 57 57 <span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIgrid.py $</span> 58 <span class="c"># $Id: GSASIIgrid.py 1 699 2015-03-13 20:46:05Z vondreele$</span>58 <span class="c"># $Id: GSASIIgrid.py 1831 2015-05-01 23:38:23Z toby $</span> 59 59 <span class="c">########### SVN repository information ###################</span> 60 60 <span class="sd">'''</span> … … 62 62 <span class="sd">--------------------------------</span> 63 63 64 <span class="sd">Note that a number of routines here should be moved to GSASIIctrls eventually, such as</span>65 <span class="sd">G2LoggedButton, EnumSelector, G2ChoiceButton, SingleFloatDialog, SingleStringDialog,</span>66 <span class="sd">MultiStringDialog, G2MultiChoiceDialog, G2SingleChoiceDialog, G2ColumnIDDialog, ItemSelector, GridFractionEditor</span>67 68 <span class="sd">Probably SGMessageBox, SymOpDialog, DisAglDialog, too. </span>69 70 64 <span class="sd">'''</span> 71 65 <span class="kn">import</span> <span class="nn">wx</span> 72 66 <span class="kn">import</span> <span class="nn">wx.grid</span> <span class="kn">as</span> <span class="nn">wg</span> 73 <span class=" kn">import</span> <span class="nn">wx.wizard</span> <span class="kn">as</span> <span class="nn">wz</span>74 <span class=" kn">import</span> <span class="nn">wx.aui</span>67 <span class="c">#import wx.wizard as wz</span> 68 <span class="c">#import wx.aui</span> 75 69 <span class="kn">import</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">as</span> <span class="nn">wxscroll</span> 76 70 <span class="kn">import</span> <span class="nn">time</span> … … 83 77 <span class="kn">import</span> <span class="nn">scipy.optimize</span> <span class="kn">as</span> <span class="nn">so</span> 84 78 <span class="kn">import</span> <span class="nn">GSASIIpath</span> 85 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1 699$"</span><span class="p">)</span>79 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1831 $"</span><span class="p">)</span> 86 80 <span class="kn">import</span> <span class="nn">GSASIImath</span> <span class="kn">as</span> <span class="nn">G2mth</span> 87 81 <span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span> … … 117 111 118 112 <span class="p">[</span> <span class="n">wxID_PWDRADD</span><span class="p">,</span> <span class="n">wxID_HKLFADD</span><span class="p">,</span> <span class="n">wxID_PWDANALYSIS</span><span class="p">,</span> <span class="n">wxID_PWDCOPY</span><span class="p">,</span> <span class="n">wxID_PLOTCTRLCOPY</span><span class="p">,</span> 119 <span class="n">wxID_DATADELETE</span><span class="p">,</span> 120 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi"> 6</span><span class="p">)]</span>113 <span class="n">wxID_DATADELETE</span><span class="p">,</span><span class="n">wxID_DATACOPY</span><span class="p">,</span><span class="n">wxID_DATACOPYFLAGS</span><span class="p">,</span><span class="n">wxID_DATASELCOPY</span><span class="p">,</span> 114 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">9</span><span class="p">)]</span> 121 115 122 116 <span class="p">[</span> <span class="n">wxID_ATOMSEDITADD</span><span class="p">,</span> <span class="n">wxID_ATOMSEDITINSERT</span><span class="p">,</span> <span class="n">wxID_ATOMSEDITDELETE</span><span class="p">,</span> <span class="n">wxID_ATOMSREFINE</span><span class="p">,</span> … … 158 152 <span class="p">[</span> <span class="n">wxID_BACKCOPY</span><span class="p">,</span><span class="n">wxID_LIMITCOPY</span><span class="p">,</span> <span class="n">wxID_SAMPLECOPY</span><span class="p">,</span> <span class="n">wxID_SAMPLECOPYSOME</span><span class="p">,</span> <span class="n">wxID_BACKFLAGCOPY</span><span class="p">,</span> <span class="n">wxID_SAMPLEFLAGCOPY</span><span class="p">,</span> 159 153 <span class="n">wxID_SAMPLESAVE</span><span class="p">,</span> <span class="n">wxID_SAMPLELOAD</span><span class="p">,</span><span class="n">wxID_ADDEXCLREGION</span><span class="p">,</span><span class="n">wxID_SETSCALE</span><span class="p">,</span><span class="n">wxID_SAMPLE1VAL</span><span class="p">,</span><span class="n">wxID_ALLSAMPLELOAD</span><span class="p">,</span> 160 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">12</span><span class="p">)]</span> 154 <span class="n">wxID_PEAKSMOVE</span><span class="p">,</span> 155 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">13</span><span class="p">)]</span> 161 156 162 157 <span class="p">[</span> <span class="n">wxID_INSTPRMRESET</span><span class="p">,</span><span class="n">wxID_CHANGEWAVETYPE</span><span class="p">,</span><span class="n">wxID_INSTCOPY</span><span class="p">,</span> <span class="n">wxID_INSTFLAGCOPY</span><span class="p">,</span> <span class="n">wxID_INSTLOAD</span><span class="p">,</span> … … 185 180 186 181 <span class="p">[</span> <span class="n">wxID_RENAMESEQSEL</span><span class="p">,</span><span class="n">wxID_SAVESEQSEL</span><span class="p">,</span><span class="n">wxID_SAVESEQSELCSV</span><span class="p">,</span><span class="n">wxID_SAVESEQCSV</span><span class="p">,</span><span class="n">wxID_PLOTSEQSEL</span><span class="p">,</span> 187 <span class="n">wxID_ORGSEQSEL</span><span class="p">,</span><span class="n">wxADDSEQVAR</span><span class="p">,</span><span class="n">wxDELSEQVAR</span><span class="p">,</span><span class="n">wxEDITSEQVAR</span><span class="p">,</span><span class="n">wxCOPYPARFIT</span><span class="p">,</span> 182 <span class="n">wxID_ORGSEQSEL</span><span class="p">,</span><span class="n">wxADDSEQVAR</span><span class="p">,</span><span class="n">wxDELSEQVAR</span><span class="p">,</span><span class="n">wxEDITSEQVAR</span><span class="p">,</span><span class="n">wxCOPYPARFIT</span><span class="p">,</span><span class="n">wxID_AVESEQSEL</span><span class="p">,</span> 188 183 <span class="n">wxADDPARFIT</span><span class="p">,</span><span class="n">wxDELPARFIT</span><span class="p">,</span><span class="n">wxEDITPARFIT</span><span class="p">,</span><span class="n">wxDOPARFIT</span><span class="p">,</span> 189 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1 4</span><span class="p">)]</span>184 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">15</span><span class="p">)]</span> 190 185 191 186 <span class="p">[</span> <span class="n">wxID_MODELCOPY</span><span class="p">,</span><span class="n">wxID_MODELFIT</span><span class="p">,</span><span class="n">wxID_MODELADD</span><span class="p">,</span><span class="n">wxID_ELEMENTADD</span><span class="p">,</span><span class="n">wxID_ELEMENTDELETE</span><span class="p">,</span> … … 194 189 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">12</span><span class="p">)]</span> 195 190 196 <span class="p">[</span> <span class="n">wxID_SELECTPHASE</span><span class="p">,</span><span class="n">wxID_PWDHKLPLOT</span><span class="p">,</span><span class="n">wxID_PWD3DHKLPLOT</span><span class="p">,</span> 197 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi"> 3</span><span class="p">)]</span>191 <span class="p">[</span> <span class="n">wxID_SELECTPHASE</span><span class="p">,</span><span class="n">wxID_PWDHKLPLOT</span><span class="p">,</span><span class="n">wxID_PWD3DHKLPLOT</span><span class="p">,</span><span class="n">wxID_3DALLHKLPLOT</span><span class="p">,</span> 192 <span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">)]</span> 198 193 199 194 <span class="p">[</span> <span class="n">wxID_PDFCOPYCONTROLS</span><span class="p">,</span> <span class="n">wxID_PDFSAVECONTROLS</span><span class="p">,</span> <span class="n">wxID_PDFLOADCONTROLS</span><span class="p">,</span> … … 205 200 206 201 <span class="n">VERY_LIGHT_GREY</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Colour</span><span class="p">(</span><span class="mi">235</span><span class="p">,</span><span class="mi">235</span><span class="p">,</span><span class="mi">235</span><span class="p">)</span> 202 203 <span class="c"># Aliases for Classes/Functions moved to GSASIIctrls, all should be tracked down but leaving as a reminder</span> 204 <span class="c">#SingleFloatDialog = G2G.SingleFloatDialog</span> 205 <span class="c">#SingleStringDialog = G2G.SingleStringDialog</span> 206 <span class="c">#MultiStringDialog = G2G.MultiStringDialog</span> 207 <span class="c">#G2ColumnIDDialog = G2G.G2ColumnIDDialog</span> 208 <span class="c">#ItemSelector = G2G.ItemSelector</span> 209 <span class="c">#HorizontalLine = G2G.HorizontalLine</span> 210 <span class="c">#G2LoggedButton = G2G.G2LoggedButton</span> 211 <span class="c">#EnumSelector = G2G.EnumSelector</span> 212 <span class="c">#G2ChoiceButton = G2G.G2ChoiceButton</span> 213 <span class="c">#GSGrid = G2G.GSGrid</span> 214 <span class="c">#Table = G2G.Table</span> 215 <span class="c">#GridFractionEditor = G2G.GridFractionEditor</span> 216 <span class="c">#GSNoteBook = G2G.GSNoteBook</span> 217 218 <span class="c"># Should SGMessageBox, SymOpDialog, DisAglDialog be moved? </span> 219 207 220 <span class="c">################################################################################</span> 208 221 <span class="c">#### GSAS-II class definitions</span> … … 255 268 <span class="bp">self</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> 256 269 <span class="k">return</span> 257 258 259 </div></div> 260 <div class="viewcode-block" id="G2LoggedButton"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2LoggedButton">[docs]</a><span class="k">class</span> <span class="nc">G2LoggedButton</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">):</span> 261 <span class="sd">'''A version of wx.Button that creates logging events. Bindings are saved</span> 262 <span class="sd"> in the object, and are looked up rather than directly set with a bind.</span> 263 <span class="sd"> An index to these buttons is saved as log.ButtonBindingLookup</span> 264 <span class="sd"> :param wx.Panel parent: parent widget</span> 265 <span class="sd"> :param int id: Id for button</span> 266 <span class="sd"> :param str label: label for button</span> 267 <span class="sd"> :param str locationcode: a label used internally to uniquely indentify the button</span> 268 <span class="sd"> :param function handler: a routine to call when the button is pressed</span> 269 <span class="sd"> '''</span> 270 <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="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">''</span><span class="p">,</span><span class="n">locationcode</span><span class="o">=</span><span class="s">''</span><span class="p">,</span> 271 <span class="n">handler</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> 272 <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span><span class="nb">id</span><span class="p">,</span><span class="n">label</span><span class="p">,</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> 273 <span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">label</span> 274 <span class="bp">self</span><span class="o">.</span><span class="n">handler</span> <span class="o">=</span> <span class="n">handler</span> 275 <span class="bp">self</span><span class="o">.</span><span class="n">locationcode</span> <span class="o">=</span> <span class="n">locationcode</span> 276 <span class="n">key</span> <span class="o">=</span> <span class="n">locationcode</span> <span class="o">+</span> <span class="s">'+'</span> <span class="o">+</span> <span class="n">label</span> <span class="c"># hash code to find button</span> 277 <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">onPress</span><span class="p">)</span> 278 <span class="n">log</span><span class="o">.</span><span class="n">ButtonBindingLookup</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span> 279 <div class="viewcode-block" id="G2LoggedButton.onPress"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2LoggedButton.onPress">[docs]</a> <span class="k">def</span> <span class="nf">onPress</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span> 280 <span class="s">'create log event and call handler'</span> 281 <span class="n">log</span><span class="o">.</span><span class="n">MakeButtonLog</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">locationcode</span><span class="p">,</span><span class="bp">self</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">handler</span><span class="p">(</span><span class="n">event</span><span class="p">)</span> 283 284 <span class="c">################################################################################</span> 270 285 271 <span class="c">################################################################################</span></div></div> 286 <div class="viewcode-block" id="EnumSelector"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.EnumSelector">[docs]</a><span class="k">class</span> <span class="nc">EnumSelector</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">):</span>287 <span class="sd">'''A customized :class:`wxpython.ComboBox` that selects items from a list</span>288 <span class="sd"> of choices, but sets a dict (list) entry to the corresponding</span>289 <span class="sd"> entry from the input list of values.</span>290 291 <span class="sd"> :param wx.Panel parent: the parent to the :class:`~wxpython.ComboBox` (usually a</span>292 <span class="sd"> frame or panel)</span>293 <span class="sd"> :param dict dct: a dict (or list) to contain the value set</span>294 <span class="sd"> for the :class:`~wxpython.ComboBox`.</span>295 <span class="sd"> :param item: the dict key (or list index) where ``dct[item]`` will </span>296 <span class="sd"> be set to the value selected in the :class:`~wxpython.ComboBox`. Also, dct[item]</span>297 <span class="sd"> contains the starting value shown in the widget. If the value</span>298 <span class="sd"> does not match an entry in :data:`values`, the first value</span>299 <span class="sd"> in :data:`choices` is used as the default, but ``dct[item]`` is</span>300 <span class="sd"> not changed. </span>301 <span class="sd"> :param list choices: a list of choices to be displayed to the</span>302 <span class="sd"> user such as</span>303 <span class="sd"> ::</span>304 <span class="sd"> </span>305 <span class="sd"> ["default","option 1","option 2",]</span>306 307 <span class="sd"> Note that these options will correspond to the entries in </span>308 <span class="sd"> :data:`values` (if specified) item by item. </span>309 <span class="sd"> :param list values: a list of values that correspond to</span>310 <span class="sd"> the options in :data:`choices`, such as</span>311 <span class="sd"> ::</span>312 <span class="sd"> </span>313 <span class="sd"> [0,1,2]</span>314 <span class="sd"> </span>315 <span class="sd"> The default for :data:`values` is to use the same list as</span>316 <span class="sd"> specified for :data:`choices`.</span>317 <span class="sd"> :param (other): additional keyword arguments accepted by</span>318 <span class="sd"> :class:`~wxpython.ComboBox` can be specified.</span>319 <span class="sd"> '''</span>320 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">dct</span><span class="p">,</span><span class="n">item</span><span class="p">,</span><span class="n">choices</span><span class="p">,</span><span class="n">values</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="o">**</span><span class="n">kw</span><span class="p">):</span>321 <span class="k">if</span> <span class="n">values</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>322 <span class="n">values</span> <span class="o">=</span> <span class="n">choices</span>323 <span class="k">if</span> <span class="n">dct</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span>324 <span class="n">i</span> <span class="o">=</span> <span class="n">values</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">dct</span><span class="p">[</span><span class="n">item</span><span class="p">])</span>325 <span class="k">else</span><span class="p">:</span>326 <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>327 <span class="n">startval</span> <span class="o">=</span> <span class="n">choices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>328 <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</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="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">startval</span><span class="p">,</span>329 <span class="n">choices</span> <span class="o">=</span> <span class="n">choices</span><span class="p">,</span>330 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_DROPDOWN</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="p">,</span>331 <span class="o">**</span><span class="n">kw</span><span class="p">)</span>332 <span class="bp">self</span><span class="o">.</span><span class="n">choices</span> <span class="o">=</span> <span class="n">choices</span>333 <span class="bp">self</span><span class="o">.</span><span class="n">values</span> <span class="o">=</span> <span class="n">values</span>334 <span class="bp">self</span><span class="o">.</span><span class="n">dct</span> <span class="o">=</span> <span class="n">dct</span>335 <span class="bp">self</span><span class="o">.</span><span class="n">item</span> <span class="o">=</span> <span class="n">item</span>336 <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_COMBOBOX</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">onSelection</span><span class="p">)</span>337 <span class="k">def</span> <span class="nf">onSelection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>338 <span class="c"># respond to a selection by setting the enum value in the CIF dictionary</span>339 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">choices</span><span class="p">:</span> <span class="c"># should always be true!</span>340 <span class="bp">self</span><span class="o">.</span><span class="n">dct</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">choices</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())]</span>341 <span class="k">else</span><span class="p">:</span>342 <span class="bp">self</span><span class="o">.</span><span class="n">dct</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># unknown</span>343 344 <span class="c">################################################################################</span>345 <span class="c">################################################################################</span></div>346 <div class="viewcode-block" id="G2ChoiceButton"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2ChoiceButton">[docs]</a><span class="k">class</span> <span class="nc">G2ChoiceButton</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Choice</span><span class="p">):</span>347 <span class="sd">'''A customized version of a wx.Choice that automatically initializes</span>348 <span class="sd"> the control to match a supplied value and saves the choice directly</span>349 <span class="sd"> into an array or list. Optionally a function can be called each time a</span>350 <span class="sd"> choice is selected. The widget can be used with an array item that is set to </span>351 <span class="sd"> to the choice by number (``indLoc[indKey]``) or by string value</span>352 <span class="sd"> (``strLoc[strKey]``) or both. The initial value is taken from ``indLoc[indKey]``</span>353 <span class="sd"> if not None or ``strLoc[strKey]`` if not None. </span>354 355 <span class="sd"> :param wx.Panel parent: name of panel or frame that will be</span>356 <span class="sd"> the parent to the widget. Can be None.</span>357 <span class="sd"> :param list choiceList: a list or tuple of choices to offer the user.</span>358 <span class="sd"> :param dict/list indLoc: a dict or list with the initial value to be</span>359 <span class="sd"> placed in the Choice button. If this is None, this is ignored. </span>360 <span class="sd"> :param int/str indKey: the dict key or the list index for the value to be</span>361 <span class="sd"> edited by the Choice button. If indLoc is not None then this</span>362 <span class="sd"> must be specified and the ``indLoc[indKey]`` will be set. If the value</span>363 <span class="sd"> for ``indLoc[indKey]`` is not None, it should be an integer in</span>364 <span class="sd"> range(len(choiceList)). The Choice button will be initialized to the</span>365 <span class="sd"> choice corresponding to the value in this element if not None.</span>366 <span class="sd"> :param dict/list strLoc: a dict or list with the string value corresponding to</span>367 <span class="sd"> indLoc/indKey. Default (None) means that this is not used. </span>368 <span class="sd"> :param int/str strKey: the dict key or the list index for the string value </span>369 <span class="sd"> The ``strLoc[strKey]`` element must exist or strLoc must be None (default).</span>370 <span class="sd"> :param function onChoice: name of a function to call when the choice is made.</span>371 <span class="sd"> '''</span>372 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">choiceList</span><span class="p">,</span><span class="n">indLoc</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">indKey</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">strLoc</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">strKey</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>373 <span class="n">onChoice</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>374 <span class="n">wx</span><span class="o">.</span><span class="n">Choice</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="n">choices</span><span class="o">=</span><span class="n">choiceList</span><span class="p">,</span><span class="nb">id</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>375 <span class="bp">self</span><span class="o">.</span><span class="n">choiceList</span> <span class="o">=</span> <span class="n">choiceList</span>376 <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span> <span class="o">=</span> <span class="n">indLoc</span>377 <span class="bp">self</span><span class="o">.</span><span class="n">indKey</span> <span class="o">=</span> <span class="n">indKey</span>378 <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span> <span class="o">=</span> <span class="n">strLoc</span>379 <span class="bp">self</span><span class="o">.</span><span class="n">strKey</span> <span class="o">=</span> <span class="n">strKey</span>380 <span class="bp">self</span><span class="o">.</span><span class="n">onChoice</span> <span class="o">=</span> <span class="bp">None</span>381 <span class="bp">self</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span><span class="p">)</span>382 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>383 <span class="bp">self</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">])</span>384 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>385 <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetStringSelection</span><span class="p">()</span>386 <span class="n">log</span><span class="o">.</span><span class="n">LogVarChange</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">)</span>387 <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>388 <span class="k">try</span><span class="p">:</span>389 <span class="bp">self</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">choiceList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">]))</span>390 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>391 <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>392 <span class="n">log</span><span class="o">.</span><span class="n">LogVarChange</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">)</span>393 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>394 <span class="k">pass</span>395 <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHOICE</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_OnChoice</span><span class="p">)</span>396 <span class="c">#if self.strLoc is not None: # make sure strLoc gets initialized</span>397 <span class="c"># self._OnChoice(None) # note that onChoice will not be called</span>398 <span class="bp">self</span><span class="o">.</span><span class="n">onChoice</span> <span class="o">=</span> <span class="n">onChoice</span>399 <span class="k">def</span> <span class="nf">_OnChoice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>400 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>401 <span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>402 <span class="n">log</span><span class="o">.</span><span class="n">LogVarChange</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indLoc</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">indKey</span><span class="p">)</span>403 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>404 <span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetStringSelection</span><span class="p">()</span>405 <span class="n">log</span><span class="o">.</span><span class="n">LogVarChange</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">strLoc</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">strKey</span><span class="p">)</span>406 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">onChoice</span><span class="p">:</span>407 <span class="bp">self</span><span class="o">.</span><span class="n">onChoice</span><span class="p">()</span>408 409 <span class="c">################################################################################</span></div>410 272 <div class="viewcode-block" id="SymOpDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.SymOpDialog">[docs]</a><span class="k">class</span> <span class="nc">SymOpDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span> 411 273 <span class="sd">'''Class to select a symmetry operator</span> … … 627 489 <span class="bp">self</span><span class="o">.</span><span class="n">_default</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">default</span><span class="p">)</span> 628 490 <span class="bp">self</span><span class="o">.</span><span class="n">Draw</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> 629 </div></div> 630 <div class="viewcode-block" id="SingleFloatDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.SingleFloatDialog">[docs]</a><span class="k">class</span> <span class="nc">SingleFloatDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span> 631 <span class="s">'Dialog to obtain a single float value from user'</span> 632 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">title</span><span class="p">,</span><span class="n">prompt</span><span class="p">,</span><span class="n">value</span><span class="p">,</span><span class="n">limits</span><span class="o">=</span><span class="p">[</span><span class="mf">0.</span><span class="p">,</span><span class="mf">1.</span><span class="p">],</span><span class="n">format</span><span class="o">=</span><span class="s">'</span><span class="si">%.5g</span><span class="s">'</span><span class="p">):</span> 633 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> 634 <span class="n">pos</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DefaultPosition</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">DEFAULT_DIALOG_STYLE</span><span class="p">)</span> 635 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="c">#just a dummy - gets destroyed in Draw!</span> 636 <span class="bp">self</span><span class="o">.</span><span class="n">limits</span> <span class="o">=</span> <span class="n">limits</span> 637 <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">value</span> 638 <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">=</span> <span class="n">prompt</span> 639 <span class="bp">self</span><span class="o">.</span><span class="n">format</span> <span class="o">=</span> <span class="n">format</span> 640 <span class="bp">self</span><span class="o">.</span><span class="n">Draw</span><span class="p">()</span> 641 642 <span class="k">def</span> <span class="nf">Draw</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 643 644 <span class="k">def</span> <span class="nf">OnValItem</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 645 <span class="k">try</span><span class="p">:</span> 646 <span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">valItem</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 647 <span class="k">if</span> <span class="n">val</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">limits</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">or</span> <span class="n">val</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">limits</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span> 648 <span class="k">raise</span> <span class="ne">ValueError</span> 649 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 650 <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> 651 <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">val</span> 652 <span class="n">valItem</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">format</span><span class="o">%</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">))</span> 653 654 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 655 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> 656 <span class="n">mainSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span> 657 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">prompt</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">ALIGN_CENTER</span><span class="p">)</span> 658 <span class="n">valItem</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">format</span><span class="o">%</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span> 659 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">valItem</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">ALIGN_CENTER</span><span class="p">)</span> 660 <span class="n">valItem</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnValItem</span><span class="p">)</span> 661 <span class="n">valItem</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnValItem</span><span class="p">)</span> 662 <span class="n">OkBtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s">"Ok"</span><span class="p">)</span> 663 <span class="n">OkBtn</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnOk</span><span class="p">)</span> 664 <span class="n">CancelBtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s">'Cancel'</span><span class="p">)</span> 665 <span class="n">CancelBtn</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnCancel</span><span class="p">)</span> 666 <span class="n">btnSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span> 667 <span class="n">btnSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span><span class="mi">20</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> 668 <span class="n">btnSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">OkBtn</span><span class="p">)</span> 669 <span class="n">btnSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">CancelBtn</span><span class="p">)</span> 670 <span class="n">btnSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span><span class="mi">20</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> 671 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> 672 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">mainSizer</span><span class="p">)</span> 673 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span> 674 <span class="bp">self</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span> 675 676 <span class="k">def</span> <span class="nf">GetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 677 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> 678 679 <span class="k">def</span> <span class="nf">OnOk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span> 680 <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetParent</span><span class="p">()</span> 681 <span class="n">parent</span><span class="o">.</span><span class="n">Raise</span><span class="p">()</span> 682 <span class="bp">self</span><span class="o">.</span><span class="n">EndModal</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span> 683 684 <span class="k">def</span> <span class="nf">OnCancel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span> 685 <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetParent</span><span class="p">()</span> 686 <span class="n">parent</span><span class="o">.</span><span class="n">Raise</span><span class="p">()</span> 687 <span class="bp">self</span><span class="o">.</span><span class="n">EndModal</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span> 688 689 <span class="c">################################################################################</span></div> 690 <div class="viewcode-block" id="SingleStringDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.SingleStringDialog">[docs]</a><span class="k">class</span> <span class="nc">SingleStringDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span> 691 <span class="sd">'''Dialog to obtain a single string value from user</span> 692 <span class="sd"> </span> 693 <span class="sd"> :param wx.Frame parent: name of parent frame</span> 694 <span class="sd"> :param str title: title string for dialog</span> 695 <span class="sd"> :param str prompt: string to tell use what they are inputting</span> 696 <span class="sd"> :param str value: default input value, if any</span> 697 <span class="sd"> '''</span> 698 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">title</span><span class="p">,</span><span class="n">prompt</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="s">''</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)):</span> 699 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> 700 <span class="n">pos</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DefaultPosition</span><span class="p">,</span> 701 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="p">)</span> 702 <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">value</span> 703 <span class="bp">self</span><span class="o">.</span><span class="n">prompt</span> <span class="o">=</span> <span class="n">prompt</span> 704 <span class="bp">self</span><span class="o">.</span><span class="n">CenterOnParent</span><span class="p">()</span> 705 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> 706 <span class="n">mainSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span> 707 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">prompt</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">ALIGN_CENTER</span><span class="p">)</span> 708 <span class="bp">self</span><span class="o">.</span><span class="n">valItem</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">value</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">)</span> 709 <span class="n">mainSizer</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">valItem</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">ALIGN_CENTER</span><span class="p">)</span> 710 <span class="n">btnsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StdDialogButtonSizer</span><span class="p">()</span> 711 <span class="n">OKbtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span> 712 <span class="n">OKbtn</span><span class="o">.</span><span class="n">SetDefault</span><span class="p">()</span> 713 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">OKbtn</span><span class="p">)</span> 714 <span class="n">btn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span> 715 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">btn</span><span class="p">)</span> 716 <span class="n">btnsizer</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span> 717 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnsizer</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">ALIGN_CENTER</span><span class="p">)</span> 718 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">mainSizer</span><span class="p">)</span> 719 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span> 720 <span class="bp">self</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span> 721 722 <div class="viewcode-block" id="SingleStringDialog.Show"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.SingleStringDialog.Show">[docs]</a> <span class="k">def</span> <span class="nf">Show</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 723 <span class="sd">'''Use this method after creating the dialog to post it</span> 724 <span class="sd"> :returns: True if the user pressed OK; False if the User pressed Cancel</span> 725 <span class="sd"> '''</span> 726 <span class="k">if</span> <span class="bp">self</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> 727 <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">valItem</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> 728 <span class="k">return</span> <span class="bp">True</span> 729 <span class="k">else</span><span class="p">:</span> 730 <span class="k">return</span> <span class="bp">False</span> 731 </div> 732 <div class="viewcode-block" id="SingleStringDialog.GetValue"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.SingleStringDialog.GetValue">[docs]</a> <span class="k">def</span> <span class="nf">GetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 733 <span class="sd">'''Use this method to get the value entered by the user</span> 734 <span class="sd"> :returns: string entered by user</span> 735 <span class="sd"> '''</span> 736 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> 737 491 738 492 <span class="c">################################################################################</span></div></div> 739 <div class="viewcode-block" id="MultiStringDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.MultiStringDialog">[docs]</a><span class="k">class</span> <span class="nc">MultiStringDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>740 <span class="sd">'''Dialog to obtain a multi string values from user</span>741 <span class="sd"> </span>742 <span class="sd"> :param wx.Frame parent: name of parent frame</span>743 <span class="sd"> :param str title: title string for dialog</span>744 <span class="sd"> :param str prompts: strings to tell use what they are inputting</span>745 <span class="sd"> :param str values: default input values, if any</span>746 <span class="sd"> '''</span>747 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">title</span><span class="p">,</span><span class="n">prompts</span><span class="p">,</span><span class="n">values</span><span class="o">=</span><span class="p">[]):</span> <span class="c">#,size=(200,-1)?</span>748 749 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">title</span><span class="p">,</span>750 <span class="n">pos</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DefaultPosition</span><span class="p">,</span>751 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="p">)</span>752 <span class="bp">self</span><span class="o">.</span><span class="n">values</span> <span class="o">=</span> <span class="n">values</span>753 <span class="bp">self</span><span class="o">.</span><span class="n">prompts</span> <span class="o">=</span> <span class="n">prompts</span>754 <span class="bp">self</span><span class="o">.</span><span class="n">CenterOnParent</span><span class="p">()</span>755 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>756 <span class="n">mainSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>757 <span class="n">promptSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>758 <span class="bp">self</span><span class="o">.</span><span class="n">Indx</span> <span class="o">=</span> <span class="p">{}</span>759 <span class="k">for</span> <span class="n">prompt</span><span class="p">,</span><span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">prompts</span><span class="p">,</span><span class="n">values</span><span class="p">):</span>760 <span class="n">promptSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">prompt</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>761 <span class="n">valItem</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="n">value</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>762 <span class="bp">self</span><span class="o">.</span><span class="n">Indx</span><span class="p">[</span><span class="n">valItem</span><span class="o">.</span><span class="n">GetId</span><span class="p">()]</span> <span class="o">=</span> <span class="n">prompt</span>763 <span class="n">valItem</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">newValue</span><span class="p">)</span>764 <span class="n">promptSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">valItem</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>765 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">promptSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>766 <span class="n">btnsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StdDialogButtonSizer</span><span class="p">()</span>767 <span class="n">OKbtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>768 <span class="n">OKbtn</span><span class="o">.</span><span class="n">SetDefault</span><span class="p">()</span>769 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">OKbtn</span><span class="p">)</span>770 <span class="n">btn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span>771 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">btn</span><span class="p">)</span>772 <span class="n">btnsizer</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span>773 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnsizer</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">ALIGN_CENTER</span><span class="p">)</span>774 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">mainSizer</span><span class="p">)</span>775 <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span>776 <span class="bp">self</span><span class="o">.</span><span class="n">Fit</span><span class="p">()</span>777 778 <span class="k">def</span> <span class="nf">newValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>779 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>780 <span class="n">item</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">()]</span>781 <span class="nb">id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prompts</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>782 <span class="bp">self</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>783 784 <div class="viewcode-block" id="MultiStringDialog.Show"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.MultiStringDialog.Show">[docs]</a> <span class="k">def</span> <span class="nf">Show</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>785 <span class="sd">'''Use this method after creating the dialog to post it</span>786 <span class="sd"> :returns: True if the user pressed OK; False if the User pressed Cancel</span>787 <span class="sd"> '''</span>788 <span class="k">if</span> <span class="bp">self</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>789 <span class="k">return</span> <span class="bp">True</span>790 <span class="k">else</span><span class="p">:</span>791 <span class="k">return</span> <span class="bp">False</span>792 </div>793 <div class="viewcode-block" id="MultiStringDialog.GetValues"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.MultiStringDialog.GetValues">[docs]</a> <span class="k">def</span> <span class="nf">GetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>794 <span class="sd">'''Use this method to get the value entered by the user</span>795 <span class="sd"> :returns: string entered by user</span>796 <span class="sd"> '''</span>797 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">values</span>798 799 <span class="c">################################################################################</span>800 </div></div>801 <div class="viewcode-block" id="G2MultiChoiceDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2MultiChoiceDialog">[docs]</a><span class="k">class</span> <span class="nc">G2MultiChoiceDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>802 <span class="sd">'''A dialog similar to MultiChoiceDialog except that buttons are</span>803 <span class="sd"> added to set all choices and to toggle all choices.</span>804 805 <span class="sd"> :param wx.Frame ParentFrame: reference to parent frame</span>806 <span class="sd"> :param str title: heading above list of choices</span>807 <span class="sd"> :param str header: Title to place on window frame </span>808 <span class="sd"> :param list ChoiceList: a list of choices where one will be selected</span>809 <span class="sd"> :param bool toggle: If True (default) the toggle and select all buttons</span>810 <span class="sd"> are displayed</span>811 <span class="sd"> :param bool monoFont: If False (default), use a variable-spaced font;</span>812 <span class="sd"> if True use a equally-spaced font.</span>813 <span class="sd"> :param bool filterBox: If True (default) an input widget is placed on</span>814 <span class="sd"> the window and only entries matching the entered text are shown.</span>815 <span class="sd"> :param kw: optional keyword parameters for the wx.Dialog may</span>816 <span class="sd"> be included such as size [which defaults to `(320,310)`] and</span>817 <span class="sd"> style (which defaults to `wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.CENTRE| wx.OK | wx.CANCEL`);</span>818 <span class="sd"> note that `wx.OK` and `wx.CANCEL` controls</span>819 <span class="sd"> the presence of the eponymous buttons in the dialog.</span>820 <span class="sd"> :returns: the name of the created dialog </span>821 <span class="sd"> '''</span>822 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">,</span> <span class="n">toggle</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>823 <span class="n">monoFont</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">filterBox</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>824 <span class="c"># process keyword parameters, notably style</span>825 <span class="n">options</span> <span class="o">=</span> <span class="p">{</span><span class="s">'size'</span><span class="p">:(</span><span class="mi">320</span><span class="p">,</span><span class="mi">310</span><span class="p">),</span> <span class="c"># default Frame keywords</span>826 <span class="s">'style'</span><span class="p">:</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CENTRE</span><span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">,</span>827 <span class="p">}</span>828 <span class="n">options</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kw</span><span class="p">)</span>829 <span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span> <span class="o">=</span> <span class="n">ChoiceList</span> <span class="c"># list of choices (list of str values)</span>830 <span class="bp">self</span><span class="o">.</span><span class="n">Selections</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">ChoiceList</span><span class="p">)</span> <span class="o">*</span> <span class="p">[</span><span class="bp">False</span><span class="p">,]</span> <span class="c"># selection status for each choice (list of bools)</span>831 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="nb">range</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">ChoiceList</span><span class="p">))</span> <span class="c"># list of the choice numbers that have been filtered (list of int indices)</span>832 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span><span class="p">:</span>833 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">True</span>834 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span>835 <span class="k">else</span><span class="p">:</span>836 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">False</span>837 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">:</span>838 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">True</span>839 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span>840 <span class="k">else</span><span class="p">:</span>841 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">False</span>842 <span class="c"># create the dialog frame</span>843 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">header</span><span class="p">,</span><span class="o">**</span><span class="n">options</span><span class="p">)</span>844 <span class="c"># fill the dialog</span>845 <span class="n">Sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>846 <span class="n">topSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>847 <span class="n">topSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span>848 <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">title</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">35</span><span class="p">)),</span>849 <span class="mi">1</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">WACV</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>850 <span class="k">if</span> <span class="n">filterBox</span><span class="p">:</span>851 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Timer</span><span class="p">()</span>852 <span class="bp">self</span><span class="o">.</span><span class="n">timer</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_TIMER</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">Filter</span><span class="p">)</span>853 <span class="n">topSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="s">'Name </span><span class="se">\n</span><span class="s">Filter: '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">WACV</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>854 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>855 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</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_CHAR</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">onChar</span><span class="p">)</span>856 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">Filter</span><span class="p">)</span>857 <span class="n">topSizer</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">filterBox</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">WACV</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>858 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">topSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span><span class="mi">8</span><span class="p">)</span>859 <span class="bp">self</span><span class="o">.</span><span class="n">trigger</span> <span class="o">=</span> <span class="bp">False</span>860 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckListBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span> <span class="p">(</span><span class="mi">30</span><span class="p">,</span><span class="mi">30</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">DefaultSize</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">)</span>861 <span class="bp">self</span><span class="o">.</span><span class="n">clb</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_CHECKLISTBOX</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">OnCheck</span><span class="p">)</span>862 <span class="k">if</span> <span class="n">monoFont</span><span class="p">:</span>863 <span class="n">font1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Font</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">GetFont</span><span class="p">()</span><span class="o">.</span><span class="n">GetPointSize</span><span class="p">(),</span>864 <span class="n">wx</span><span class="o">.</span><span class="n">MODERN</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NORMAL</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NORMAL</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>865 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">SetFont</span><span class="p">(</span><span class="n">font1</span><span class="p">)</span>866 <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">clb</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>867 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">))</span>868 <span class="c"># set/toggle buttons</span>869 <span class="k">if</span> <span class="n">toggle</span><span class="p">:</span>870 <span class="n">bSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>871 <span class="n">setBut</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="s">'Set All'</span><span class="p">)</span>872 <span class="n">setBut</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">_SetAll</span><span class="p">)</span>873 <span class="n">bSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">setBut</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">ALIGN_CENTER</span><span class="p">)</span>874 <span class="n">bSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>875 <span class="n">togBut</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="s">'Toggle All'</span><span class="p">)</span>876 <span class="n">togBut</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">_ToggleAll</span><span class="p">)</span>877 <span class="n">bSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">togBut</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">ALIGN_CENTER</span><span class="p">)</span>878 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">bSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span><span class="mi">12</span><span class="p">)</span>879 <span class="c"># OK/Cancel buttons</span>880 <span class="n">btnsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StdDialogButtonSizer</span><span class="p">()</span>881 <span class="k">if</span> <span class="n">useOK</span><span class="p">:</span>882 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>883 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">SetDefault</span><span class="p">()</span>884 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="p">)</span>885 <span class="k">if</span> <span class="n">useCANCEL</span><span class="p">:</span>886 <span class="n">btn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span>887 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">btn</span><span class="p">)</span>888 <span class="n">btnsizer</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span>889 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>890 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnsizer</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">ALIGN_RIGHT</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>891 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>892 <span class="c"># OK done, let's get outa here</span>893 <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">Sizer</span><span class="p">)</span>894 <span class="bp">self</span><span class="o">.</span><span class="n">CenterOnParent</span><span class="p">()</span>895 896 <div class="viewcode-block" id="G2MultiChoiceDialog.GetSelections"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2MultiChoiceDialog.GetSelections">[docs]</a> <span class="k">def</span> <span class="nf">GetSelections</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>897 <span class="s">'Returns a list of the indices for the selected choices'</span>898 <span class="c"># update self.Selections with settings for displayed items</span>899 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">)):</span>900 <span class="bp">self</span><span class="o">.</span><span class="n">Selections</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>901 <span class="c"># return all selections, shown or hidden</span>902 <span class="k">return</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Selections</span><span class="p">))</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Selections</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span>903 </div>904 <div class="viewcode-block" id="G2MultiChoiceDialog.SetSelections"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2MultiChoiceDialog.SetSelections">[docs]</a> <span class="k">def</span> <span class="nf">SetSelections</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">selList</span><span class="p">):</span>905 <span class="sd">'''Sets the selection indices in selList as selected. Resets any previous</span>906 <span class="sd"> selections for compatibility with wx.MultiChoiceDialog. Note that</span>907 <span class="sd"> the state for only the filtered items is shown.</span>908 909 <span class="sd"> :param list selList: indices of items to be selected. These indices</span>910 <span class="sd"> are referenced to the order in self.ChoiceList</span>911 <span class="sd"> '''</span>912 <span class="bp">self</span><span class="o">.</span><span class="n">Selections</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">ChoiceList</span><span class="p">)</span> <span class="o">*</span> <span class="p">[</span><span class="bp">False</span><span class="p">,]</span> <span class="c"># reset selections</span>913 <span class="k">for</span> <span class="n">sel</span> <span class="ow">in</span> <span class="n">selList</span><span class="p">:</span>914 <span class="bp">self</span><span class="o">.</span><span class="n">Selections</span><span class="p">[</span><span class="n">sel</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span>915 <span class="bp">self</span><span class="o">.</span><span class="n">_ShowSelections</span><span class="p">()</span>916 </div>917 <span class="k">def</span> <span class="nf">_ShowSelections</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>918 <span class="s">'Show the selection state for displayed items'</span>919 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">SetChecked</span><span class="p">(</span>920 <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">))</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Selections</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">[</span><span class="n">i</span><span class="p">]]]</span>921 <span class="p">)</span> <span class="c"># Note anything previously checked will be cleared.</span>922 923 <span class="k">def</span> <span class="nf">_SetAll</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>924 <span class="s">'Set all viewed choices on'</span>925 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">SetChecked</span><span class="p">(</span><span class="nb">range</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">filterlist</span><span class="p">)))</span>926 927 <span class="k">def</span> <span class="nf">_ToggleAll</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>928 <span class="s">'flip the state of all viewed choices'</span>929 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">)):</span>930 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">Check</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">(</span><span class="n">i</span><span class="p">))</span>931 932 <div class="viewcode-block" id="G2MultiChoiceDialog.onChar"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2MultiChoiceDialog.onChar">[docs]</a> <span class="k">def</span> <span class="nf">onChar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>933 <span class="s">'for keyboard events. self.trigger is used in self.OnCheck below'</span>934 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>935 <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">GetKeyCode</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">WXK_SHIFT</span><span class="p">:</span>936 <span class="bp">self</span><span class="o">.</span><span class="n">trigger</span> <span class="o">=</span> <span class="bp">True</span>937 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span>938 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span>939 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Start</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="n">oneShot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>940 <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>941 </div>942 <div class="viewcode-block" id="G2MultiChoiceDialog.OnCheck"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2MultiChoiceDialog.OnCheck">[docs]</a> <span class="k">def</span> <span class="nf">OnCheck</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>943 <span class="sd">'''for CheckListBox events; if Shift key down this sets all unset </span>944 <span class="sd"> entries below the selected one'''</span>945 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">trigger</span><span class="p">:</span>946 <span class="nb">id</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>947 <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">GetString</span><span class="p">(</span><span class="nb">id</span><span class="p">)</span>948 <span class="n">iB</span> <span class="o">=</span> <span class="nb">id</span><span class="o">-</span><span class="mi">1</span>949 <span class="k">if</span> <span class="n">iB</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>950 <span class="k">return</span>951 <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">(</span><span class="n">iB</span><span class="p">):</span>952 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">Check</span><span class="p">(</span><span class="n">iB</span><span class="p">)</span>953 <span class="n">iB</span> <span class="o">-=</span> <span class="mi">1</span>954 <span class="k">if</span> <span class="n">iB</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>955 <span class="k">break</span>956 <span class="bp">self</span><span class="o">.</span><span class="n">trigger</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">trigger</span>957 </div>958 <span class="k">def</span> <span class="nf">Filter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>959 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span>960 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span>961 <span class="bp">self</span><span class="o">.</span><span class="n">GetSelections</span><span class="p">()</span> <span class="c"># record current selections</span>962 <span class="n">txt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>963 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>964 965 <span class="bp">self</span><span class="o">.</span><span class="n">Update</span><span class="p">()</span>966 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="p">[]</span>967 <span class="k">if</span> <span class="n">txt</span><span class="p">:</span>968 <span class="n">txt</span> <span class="o">=</span> <span class="n">txt</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>969 <span class="n">ChoiceList</span> <span class="o">=</span> <span class="p">[]</span>970 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span><span class="p">):</span>971 <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>972 <span class="n">ChoiceList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>973 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>974 <span class="k">else</span><span class="p">:</span>975 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="nb">range</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">ChoiceList</span><span class="p">))</span>976 <span class="n">ChoiceList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span>977 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">AppendItems</span><span class="p">(</span><span class="n">ChoiceList</span><span class="p">)</span>978 <span class="bp">self</span><span class="o">.</span><span class="n">_ShowSelections</span><span class="p">()</span>979 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>980 981 <span class="c">################################################################################</span>982 </div>983 <div class="viewcode-block" id="G2SingleChoiceDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2SingleChoiceDialog">[docs]</a><span class="k">class</span> <span class="nc">G2SingleChoiceDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>984 <span class="sd">'''A dialog similar to wx.SingleChoiceDialog except that a filter can be</span>985 <span class="sd"> added.</span>986 987 <span class="sd"> :param wx.Frame ParentFrame: reference to parent frame</span>988 <span class="sd"> :param str title: heading above list of choices</span>989 <span class="sd"> :param str header: Title to place on window frame </span>990 <span class="sd"> :param list ChoiceList: a list of choices where one will be selected</span>991 <span class="sd"> :param bool monoFont: If False (default), use a variable-spaced font;</span>992 <span class="sd"> if True use a equally-spaced font.</span>993 <span class="sd"> :param bool filterBox: If True (default) an input widget is placed on</span>994 <span class="sd"> the window and only entries matching the entered text are shown.</span>995 <span class="sd"> :param kw: optional keyword parameters for the wx.Dialog may</span>996 <span class="sd"> be included such as size [which defaults to `(320,310)`] and</span>997 <span class="sd"> style (which defaults to ``wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.CENTRE | wx.OK | wx.CANCEL``);</span>998 <span class="sd"> note that ``wx.OK`` and ``wx.CANCEL`` controls</span>999 <span class="sd"> the presence of the eponymous buttons in the dialog.</span>1000 <span class="sd"> :returns: the name of the created dialog</span>1001 <span class="sd"> '''</span>1002 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">,</span>1003 <span class="n">monoFont</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">filterBox</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>1004 <span class="c"># process keyword parameters, notably style</span>1005 <span class="n">options</span> <span class="o">=</span> <span class="p">{</span><span class="s">'size'</span><span class="p">:(</span><span class="mi">320</span><span class="p">,</span><span class="mi">310</span><span class="p">),</span> <span class="c"># default Frame keywords</span>1006 <span class="s">'style'</span><span class="p">:</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CENTRE</span><span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">,</span>1007 <span class="p">}</span>1008 <span class="n">options</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kw</span><span class="p">)</span>1009 <span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span> <span class="o">=</span> <span class="n">ChoiceList</span>1010 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="nb">range</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">ChoiceList</span><span class="p">))</span>1011 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span><span class="p">:</span>1012 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">True</span>1013 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span>1014 <span class="k">else</span><span class="p">:</span>1015 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">False</span>1016 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">:</span>1017 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">True</span>1018 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span>1019 <span class="k">else</span><span class="p">:</span>1020 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">False</span>1021 <span class="c"># create the dialog frame</span>1022 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">header</span><span class="p">,</span><span class="o">**</span><span class="n">options</span><span class="p">)</span>1023 <span class="c"># fill the dialog</span>1024 <span class="n">Sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>1025 <span class="n">topSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>1026 <span class="n">topSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span>1027 <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">title</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">35</span><span class="p">)),</span>1028 <span class="mi">1</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">WACV</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>1029 <span class="k">if</span> <span class="n">filterBox</span><span class="p">:</span>1030 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Timer</span><span class="p">()</span>1031 <span class="bp">self</span><span class="o">.</span><span class="n">timer</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_TIMER</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">Filter</span><span class="p">)</span>1032 <span class="n">topSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="s">'Filter: '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>1033 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>1034 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>1035 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</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_CHAR</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">onChar</span><span class="p">)</span>1036 <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">Filter</span><span class="p">)</span>1037 <span class="n">topSizer</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">filterBox</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>1038 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">topSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span><span class="mi">8</span><span class="p">)</span>1039 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ListBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span> <span class="p">(</span><span class="mi">30</span><span class="p">,</span><span class="mi">30</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">DefaultSize</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">)</span>1040 <span class="bp">self</span><span class="o">.</span><span class="n">clb</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_LEFT_DCLICK</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">onDoubleClick</span><span class="p">)</span>1041 <span class="k">if</span> <span class="n">monoFont</span><span class="p">:</span>1042 <span class="n">font1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Font</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">GetFont</span><span class="p">()</span><span class="o">.</span><span class="n">GetPointSize</span><span class="p">(),</span>1043 <span class="n">wx</span><span class="o">.</span><span class="n">MODERN</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NORMAL</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">NORMAL</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>1044 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">SetFont</span><span class="p">(</span><span class="n">font1</span><span class="p">)</span>1045 <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">clb</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>1046 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">))</span>1047 <span class="c"># OK/Cancel buttons</span>1048 <span class="n">btnsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StdDialogButtonSizer</span><span class="p">()</span>1049 <span class="k">if</span> <span class="n">useOK</span><span class="p">:</span>1050 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>1051 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">SetDefault</span><span class="p">()</span>1052 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="p">)</span>1053 <span class="k">if</span> <span class="n">useCANCEL</span><span class="p">:</span>1054 <span class="n">btn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span>1055 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">btn</span><span class="p">)</span>1056 <span class="n">btnsizer</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span>1057 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>1058 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnsizer</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">ALIGN_RIGHT</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>1059 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>1060 <span class="c"># OK done, let's get outa here</span>1061 <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">Sizer</span><span class="p">)</span>1062 <div class="viewcode-block" id="G2SingleChoiceDialog.GetSelection"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2SingleChoiceDialog.GetSelection">[docs]</a> <span class="k">def</span> <span class="nf">GetSelection</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>1063 <span class="s">'Returns the index of the selected choice'</span>1064 <span class="n">i</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>1065 <span class="k">if</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">i</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">filterlist</span><span class="p">):</span>1066 <span class="k">return</span> <span class="n">wx</span><span class="o">.</span><span class="n">NOT_FOUND</span>1067 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span></div>1068 <span class="k">def</span> <span class="nf">onChar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>1069 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>1070 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span>1071 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span>1072 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Start</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="n">oneShot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>1073 <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>1074 <span class="k">def</span> <span class="nf">Filter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>1075 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">IsRunning</span><span class="p">():</span>1076 <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">Stop</span><span class="p">()</span>1077 <span class="n">txt</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filterBox</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>1078 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">Clear</span><span class="p">()</span>1079 <span class="bp">self</span><span class="o">.</span><span class="n">Update</span><span class="p">()</span>1080 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="p">[]</span>1081 <span class="k">if</span> <span class="n">txt</span><span class="p">:</span>1082 <span class="n">txt</span> <span class="o">=</span> <span class="n">txt</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>1083 <span class="n">ChoiceList</span> <span class="o">=</span> <span class="p">[]</span>1084 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span><span class="p">):</span>1085 <span class="k">if</span> <span class="n">item</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>1086 <span class="n">ChoiceList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>1087 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>1088 <span class="k">else</span><span class="p">:</span>1089 <span class="bp">self</span><span class="o">.</span><span class="n">filterlist</span> <span class="o">=</span> <span class="nb">range</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">ChoiceList</span><span class="p">))</span>1090 <span class="n">ChoiceList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span>1091 <span class="bp">self</span><span class="o">.</span><span class="n">clb</span><span class="o">.</span><span class="n">AppendItems</span><span class="p">(</span><span class="n">ChoiceList</span><span class="p">)</span>1092 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>1093 <span class="k">def</span> <span class="nf">onDoubleClick</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span>1094 <span class="bp">self</span><span class="o">.</span><span class="n">EndModal</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>1095 1096 <span class="c">################################################################################</span>1097 </div>1098 <div class="viewcode-block" id="G2ColumnIDDialog"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2ColumnIDDialog">[docs]</a><span class="k">class</span> <span class="nc">G2ColumnIDDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>1099 <span class="sd">'''A dialog for matching column data to desired items; some columns may be ignored.</span>1100 <span class="sd"> </span>1101 <span class="sd"> :param wx.Frame ParentFrame: reference to parent frame</span>1102 <span class="sd"> :param str title: heading above list of choices</span>1103 <span class="sd"> :param str header: Title to place on window frame </span>1104 <span class="sd"> :param list ChoiceList: a list of possible choices for the columns</span>1105 <span class="sd"> :param list ColumnData: lists of column data to be matched with ChoiceList</span>1106 <span class="sd"> :param bool monoFont: If False (default), use a variable-spaced font;</span>1107 <span class="sd"> if True use a equally-spaced font.</span>1108 <span class="sd"> :param kw: optional keyword parameters for the wx.Dialog may</span>1109 <span class="sd"> be included such as size [which defaults to `(320,310)`] and</span>1110 <span class="sd"> style (which defaults to ``wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.CENTRE | wx.OK | wx.CANCEL``);</span>1111 <span class="sd"> note that ``wx.OK`` and ``wx.CANCEL`` controls</span>1112 <span class="sd"> the presence of the eponymous buttons in the dialog.</span>1113 <span class="sd"> :returns: the name of the created dialog</span>1114 <span class="sd"> </span>1115 <span class="sd"> '''</span>1116 1117 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span><span class="n">Comments</span><span class="p">,</span><span class="n">ChoiceList</span><span class="p">,</span> <span class="n">ColumnData</span><span class="p">,</span>1118 <span class="n">monoFont</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>1119 1120 <span class="k">def</span> <span class="nf">OnOk</span><span class="p">(</span><span class="n">sevent</span><span class="p">):</span>1121 <span class="n">OK</span> <span class="o">=</span> <span class="bp">True</span>1122 <span class="n">selCols</span> <span class="o">=</span> <span class="p">[]</span>1123 <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sel</span><span class="p">:</span>1124 <span class="n">item</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>1125 <span class="k">if</span> <span class="n">item</span> <span class="o">!=</span> <span class="s">' '</span> <span class="ow">and</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">selCols</span><span class="p">:</span>1126 <span class="n">OK</span> <span class="o">=</span> <span class="bp">False</span>1127 <span class="k">break</span>1128 <span class="k">else</span><span class="p">:</span>1129 <span class="n">selCols</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>1130 <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetParent</span><span class="p">()</span>1131 <span class="k">if</span> <span class="ow">not</span> <span class="n">OK</span><span class="p">:</span>1132 <span class="n">parent</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span><span class="s">'Duplicate'</span><span class="p">,</span><span class="n">item</span><span class="o">+</span><span class="s">' selected more than once'</span><span class="p">)</span>1133 <span class="k">return</span>1134 <span class="n">parent</span><span class="o">.</span><span class="n">Raise</span><span class="p">()</span>1135 <span class="bp">self</span><span class="o">.</span><span class="n">EndModal</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>1136 1137 <span class="k">def</span> <span class="nf">OnModify</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>1138 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>1139 <span class="n">icol</span><span class="p">,</span><span class="n">colData</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">()]</span>1140 <span class="n">modify</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>1141 <span class="k">if</span> <span class="ow">not</span> <span class="n">modify</span><span class="p">:</span>1142 <span class="k">return</span>1143 <span class="k">print</span> <span class="s">'Modify column'</span><span class="p">,</span><span class="n">icol</span><span class="p">,</span><span class="s">' by'</span><span class="p">,</span> <span class="n">modify</span>1144 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span><span class="p">[</span><span class="n">icol</span><span class="p">]):</span>1145 <span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span><span class="p">[</span><span class="n">icol</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="n">item</span><span class="o">+</span><span class="n">modify</span><span class="p">))</span>1146 <span class="n">colData</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span><span class="p">[</span><span class="n">icol</span><span class="p">]))</span>1147 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">''</span><span class="p">)</span>1148 1149 <span class="c"># process keyword parameters, notably style</span>1150 <span class="n">options</span> <span class="o">=</span> <span class="p">{</span><span class="s">'size'</span><span class="p">:(</span><span class="mi">600</span><span class="p">,</span><span class="mi">310</span><span class="p">),</span> <span class="c"># default Frame keywords</span>1151 <span class="s">'style'</span><span class="p">:</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CENTRE</span><span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">,</span>1152 <span class="p">}</span>1153 <span class="n">options</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kw</span><span class="p">)</span>1154 <span class="bp">self</span><span class="o">.</span><span class="n">Comments</span> <span class="o">=</span> <span class="s">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">Comments</span><span class="p">)</span>1155 <span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span> <span class="o">=</span> <span class="n">ChoiceList</span>1156 <span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span> <span class="o">=</span> <span class="n">ColumnData</span>1157 <span class="n">nCol</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ColumnData</span><span class="p">)</span>1158 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span><span class="p">:</span>1159 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">True</span>1160 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">OK</span>1161 <span class="k">else</span><span class="p">:</span>1162 <span class="n">useOK</span> <span class="o">=</span> <span class="bp">False</span>1163 <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">&</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span><span class="p">:</span>1164 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">True</span>1165 <span class="n">options</span><span class="p">[</span><span class="s">'style'</span><span class="p">]</span> <span class="o">^=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CANCEL</span>1166 <span class="k">else</span><span class="p">:</span>1167 <span class="n">useCANCEL</span> <span class="o">=</span> <span class="bp">False</span>1168 <span class="c"># create the dialog frame</span>1169 <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ID_ANY</span><span class="p">,</span><span class="n">header</span><span class="p">,</span><span class="o">**</span><span class="n">options</span><span class="p">)</span>1170 <span class="n">panel</span> <span class="o">=</span> <span class="n">wxscroll</span><span class="o">.</span><span class="n">ScrolledPanel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>1171 <span class="c"># fill the dialog</span>1172 <span class="n">Sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>1173 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>1174 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="n">title</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1175 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Comments</span><span class="p">:</span>1176 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Header lines:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1177 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">Comments</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>1178 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_MULTILINE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_DONTWRAP</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">WACV</span><span class="p">,</span><span class="mi">8</span><span class="p">)</span>1179 <span class="n">columnsSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">nCol</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>1180 <span class="bp">self</span><span class="o">.</span><span class="n">sel</span> <span class="o">=</span> <span class="p">[]</span>1181 <span class="bp">self</span><span class="o">.</span><span class="n">mod</span> <span class="o">=</span> <span class="p">[]</span>1182 <span class="n">Indx</span> <span class="o">=</span> <span class="p">{}</span>1183 <span class="k">for</span> <span class="n">icol</span><span class="p">,</span><span class="n">col</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span><span class="p">):</span>1184 <span class="n">colSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>1185 <span class="n">colSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Column #</span><span class="si">%d</span><span class="s"> Select:'</span><span class="o">%</span><span class="p">(</span><span class="n">icol</span><span class="p">)),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1186 <span class="bp">self</span><span class="o">.</span><span class="n">sel</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="s">' '</span><span class="p">,</span><span class="n">choices</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">ChoiceList</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_READONLY</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CB_DROPDOWN</span><span class="p">))</span>1187 <span class="n">colSizer</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">sel</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>1188 <span class="n">colData</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span><span class="p">[</span><span class="n">icol</span><span class="p">]),</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">120</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>1189 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_MULTILINE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_DONTWRAP</span><span class="p">)</span>1190 <span class="n">colSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">colData</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1191 <span class="n">colSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Modify by:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1192 <span class="n">mod</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">120</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">value</span><span class="o">=</span><span class="s">''</span><span class="p">,</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span>1193 <span class="n">mod</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnModify</span><span class="p">)</span>1194 <span class="n">mod</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnModify</span><span class="p">)</span>1195 <span class="n">Indx</span><span class="p">[</span><span class="n">mod</span><span class="o">.</span><span class="n">GetId</span><span class="p">()]</span> <span class="o">=</span> <span class="p">[</span><span class="n">icol</span><span class="p">,</span><span class="n">colData</span><span class="p">]</span>1196 <span class="n">colSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1197 <span class="n">columnsSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">colSizer</span><span class="p">)</span>1198 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">columnsSizer</span><span class="p">)</span>1199 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' For modify by, enter arithmetic string eg. "-12345.67". "+","-","*","/","**" all allowed'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1200 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">))</span>1201 <span class="c"># OK/Cancel buttons</span>1202 <span class="n">btnsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StdDialogButtonSizer</span><span class="p">()</span>1203 <span class="k">if</span> <span class="n">useOK</span><span class="p">:</span>1204 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">)</span>1205 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">SetDefault</span><span class="p">()</span>1206 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="p">)</span>1207 <span class="bp">self</span><span class="o">.</span><span class="n">OKbtn</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="n">OnOk</span><span class="p">)</span>1208 <span class="k">if</span> <span class="n">useCANCEL</span><span class="p">:</span>1209 <span class="n">btn</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">panel</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">)</span>1210 <span class="n">btnsizer</span><span class="o">.</span><span class="n">AddButton</span><span class="p">(</span><span class="n">btn</span><span class="p">)</span>1211 <span class="n">btnsizer</span><span class="o">.</span><span class="n">Realize</span><span class="p">()</span>1212 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>1213 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnsizer</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">ALIGN_LEFT</span><span class="p">,</span><span class="mi">20</span><span class="p">)</span>1214 <span class="n">Sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">))</span>1215 <span class="c"># OK done, let's get outa here</span>1216 <span class="n">panel</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">Sizer</span><span class="p">)</span>1217 <span class="n">panel</span><span class="o">.</span><span class="n">SetAutoLayout</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>1218 <span class="n">panel</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>1219 <span class="n">Size</span> <span class="o">=</span> <span class="p">[</span><span class="mi">450</span><span class="p">,</span><span class="mi">375</span><span class="p">]</span>1220 <span class="n">panel</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span>1221 <span class="n">Size</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">Size</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+=</span> <span class="mi">25</span>1222 <span class="bp">self</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span>1223 1224 <div class="viewcode-block" id="G2ColumnIDDialog.GetSelection"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.G2ColumnIDDialog.GetSelection">[docs]</a> <span class="k">def</span> <span class="nf">GetSelection</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>1225 <span class="s">'Returns the selected sample parm for each column'</span>1226 <span class="n">selCols</span> <span class="o">=</span> <span class="p">[]</span>1227 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sel</span><span class="p">:</span>1228 <span class="n">selCols</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>1229 <span class="k">return</span> <span class="n">selCols</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">ColumnData</span>1230 1231 <span class="c">################################################################################</span>1232 </div></div>1233 <div class="viewcode-block" id="ItemSelector"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.ItemSelector">[docs]</a><span class="k">def</span> <span class="nf">ItemSelector</span><span class="p">(</span><span class="n">ChoiceList</span><span class="p">,</span> <span class="n">ParentFrame</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>1234 <span class="n">title</span><span class="o">=</span><span class="s">'Select an item'</span><span class="p">,</span>1235 <span class="n">size</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="s">'Item Selector'</span><span class="p">,</span>1236 <span class="n">useCancel</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">multiple</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>1237 <span class="sd">''' Provide a wx dialog to select a single item or multiple items from list of choices</span>1238 1239 <span class="sd"> :param list ChoiceList: a list of choices where one will be selected</span>1240 <span class="sd"> :param wx.Frame ParentFrame: Name of parent frame (default None)</span>1241 <span class="sd"> :param str title: heading above list of choices (default 'Select an item')</span>1242 <span class="sd"> :param wx.Size size: Size for dialog to be created (default None -- size as needed)</span>1243 <span class="sd"> :param str header: Title to place on window frame (default 'Item Selector')</span>1244 <span class="sd"> :param bool useCancel: If True (default) both the OK and Cancel buttons are offered</span>1245 <span class="sd"> :param bool multiple: If True then multiple items can be selected (default False)</span>1246 <span class="sd"> </span>1247 <span class="sd"> :returns: the selection index or None or a selection list if multiple is true</span>1248 <span class="sd"> '''</span>1249 <span class="k">if</span> <span class="n">multiple</span><span class="p">:</span>1250 <span class="k">if</span> <span class="n">useCancel</span><span class="p">:</span>1251 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2MultiChoiceDialog</span><span class="p">(</span>1252 <span class="n">ParentFrame</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">)</span>1253 <span class="k">else</span><span class="p">:</span>1254 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2MultiChoiceDialog</span><span class="p">(</span>1255 <span class="n">ParentFrame</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">,</span>1256 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">OK</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CENTRE</span><span class="p">)</span>1257 <span class="k">else</span><span class="p">:</span>1258 <span class="k">if</span> <span class="n">useCancel</span><span class="p">:</span>1259 <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">SingleChoiceDialog</span><span class="p">(</span>1260 <span class="n">ParentFrame</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">ChoiceList</span><span class="p">)</span>1261 <span class="k">else</span><span class="p">:</span>1262 <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">SingleChoiceDialog</span><span class="p">(</span>1263 <span class="n">ParentFrame</span><span class="p">,</span><span class="n">title</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span><span class="n">ChoiceList</span><span class="p">,</span>1264 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">DEFAULT_DIALOG_STYLE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RESIZE_BORDER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">OK</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CENTRE</span><span class="p">)</span>1265 <span class="k">if</span> <span class="n">size</span><span class="p">:</span> <span class="n">dlg</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>1266 <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>1267 <span class="k">if</span> <span class="n">multiple</span><span class="p">:</span>1268 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>1269 <span class="k">return</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetSelections</span><span class="p">()</span>1270 <span class="k">else</span><span class="p">:</span>1271 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>1272 <span class="k">return</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span>1273 <span class="k">else</span><span class="p">:</span>1274 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>1275 <span class="k">return</span> <span class="bp">None</span>1276 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>1277 1278 <span class="c">################################################################################</span></div>1279 <div class="viewcode-block" id="GridFractionEditor"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GridFractionEditor">[docs]</a><span class="k">class</span> <span class="nc">GridFractionEditor</span><span class="p">(</span><span class="n">wg</span><span class="o">.</span><span class="n">PyGridCellEditor</span><span class="p">):</span>1280 <span class="sd">'''A grid cell editor class that allows entry of values as fractions as well</span>1281 <span class="sd"> as sine and cosine values [as s() and c()]</span>1282 <span class="sd"> '''</span>1283 <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">grid</span><span class="p">):</span>1284 <span class="n">wg</span><span class="o">.</span><span class="n">PyGridCellEditor</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>1285 1286 <span class="k">def</span> <span class="nf">Create</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="p">,</span> <span class="n">evtHandler</span><span class="p">):</span>1287 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">""</span><span class="p">)</span>1288 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetInsertionPoint</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>1289 <span class="bp">self</span><span class="o">.</span><span class="n">SetControl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="p">)</span>1290 1291 <span class="k">if</span> <span class="n">evtHandler</span><span class="p">:</span>1292 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">PushEventHandler</span><span class="p">(</span><span class="n">evtHandler</span><span class="p">)</span>1293 1294 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</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_CHAR</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnChar</span><span class="p">)</span>1295 1296 <span class="k">def</span> <span class="nf">SetSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rect</span><span class="p">):</span>1297 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetDimensions</span><span class="p">(</span><span class="n">rect</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">width</span><span class="o">+</span><span class="mi">2</span><span class="p">,</span> <span class="n">rect</span><span class="o">.</span><span class="n">height</span><span class="o">+</span><span class="mi">2</span><span class="p">,</span>1298 <span class="n">wx</span><span class="o">.</span><span class="n">SIZE_ALLOW_MINUS_ONE</span><span class="p">)</span>1299 1300 <span class="k">def</span> <span class="nf">BeginEdit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">grid</span><span class="p">):</span>1301 <span class="bp">self</span><span class="o">.</span><span class="n">startValue</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">GetTable</span><span class="p">()</span><span class="o">.</span><span class="n">GetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">)</span>1302 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">startValue</span><span class="p">))</span>1303 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetInsertionPointEnd</span><span class="p">()</span>1304 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetFocus</span><span class="p">()</span>1305 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">GetLastPosition</span><span class="p">())</span>1306 1307 <span class="k">def</span> <span class="nf">EndEdit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">grid</span><span class="p">,</span> <span class="n">oldVal</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>1308 <span class="n">changed</span> <span class="o">=</span> <span class="bp">False</span>1309 1310 <span class="bp">self</span><span class="o">.</span><span class="n">nextval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">startValue</span>1311 <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>1312 <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">startValue</span><span class="p">:</span>1313 <span class="n">changed</span> <span class="o">=</span> <span class="bp">True</span>1314 <span class="n">neg</span> <span class="o">=</span> <span class="bp">False</span>1315 <span class="k">if</span> <span class="s">'-'</span> <span class="ow">in</span> <span class="n">val</span><span class="p">:</span>1316 <span class="n">neg</span> <span class="o">=</span> <span class="bp">True</span>1317 <span class="k">if</span> <span class="s">'/'</span> <span class="ow">in</span> <span class="n">val</span> <span class="ow">and</span> <span class="s">'.'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">val</span><span class="p">:</span>1318 <span class="n">val</span> <span class="o">+=</span> <span class="s">'.'</span>1319 <span class="k">elif</span> <span class="s">'s'</span> <span class="ow">in</span> <span class="n">val</span> <span class="ow">and</span> <span class="ow">not</span> <span class="s">'sind('</span> <span class="ow">in</span> <span class="n">val</span><span class="p">:</span>1320 <span class="k">if</span> <span class="n">neg</span><span class="p">:</span>1321 <span class="n">val</span> <span class="o">=</span> <span class="s">'-sind('</span><span class="o">+</span><span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">'-s'</span><span class="p">)</span><span class="o">+</span><span class="s">')'</span>1322 <span class="k">else</span><span class="p">:</span>1323 <span class="n">val</span> <span class="o">=</span> <span class="s">'sind('</span><span class="o">+</span><span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">'s'</span><span class="p">)</span><span class="o">+</span><span class="s">')'</span>1324 <span class="k">elif</span> <span class="s">'c'</span> <span class="ow">in</span> <span class="n">val</span> <span class="ow">and</span> <span class="ow">not</span> <span class="s">'cosd('</span> <span class="ow">in</span> <span class="n">val</span><span class="p">:</span>1325 <span class="k">if</span> <span class="n">neg</span><span class="p">:</span>1326 <span class="n">val</span> <span class="o">=</span> <span class="s">'-cosd('</span><span class="o">+</span><span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">'-c'</span><span class="p">)</span><span class="o">+</span><span class="s">')'</span>1327 <span class="k">else</span><span class="p">:</span>1328 <span class="n">val</span> <span class="o">=</span> <span class="s">'cosd('</span><span class="o">+</span><span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">'c'</span><span class="p">)</span><span class="o">+</span><span class="s">')'</span>1329 <span class="k">try</span><span class="p">:</span>1330 <span class="bp">self</span><span class="o">.</span><span class="n">nextval</span> <span class="o">=</span> <span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>1331 <span class="k">except</span> <span class="p">(</span><span class="ne">SyntaxError</span><span class="p">,</span><span class="ne">NameError</span><span class="p">,</span><span class="ne">ZeroDivisionError</span><span class="p">):</span>1332 <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">startValue</span>1333 <span class="k">return</span> <span class="bp">None</span>1334 1335 <span class="k">if</span> <span class="n">oldVal</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="c"># this arg appears in 2.9+; before, we should go ahead & change the table</span>1336 <span class="n">grid</span><span class="o">.</span><span class="n">GetTable</span><span class="p">()</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span> <span class="c"># update the table</span>1337 <span class="c"># otherwise self.ApplyEdit gets called</span>1338 1339 <span class="bp">self</span><span class="o">.</span><span class="n">startValue</span> <span class="o">=</span> <span class="s">''</span>1340 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">''</span><span class="p">)</span>1341 <span class="k">return</span> <span class="n">changed</span>1342 1343 <div class="viewcode-block" id="GridFractionEditor.ApplyEdit"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GridFractionEditor.ApplyEdit">[docs]</a> <span class="k">def</span> <span class="nf">ApplyEdit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">grid</span><span class="p">):</span>1344 <span class="sd">""" Called only in wx >= 2.9</span>1345 <span class="sd"> Save the value of the control into the grid if EndEdit() returns as True</span>1346 <span class="sd"> """</span>1347 <span class="n">grid</span><span class="o">.</span><span class="n">GetTable</span><span class="p">()</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">nextval</span><span class="p">)</span> <span class="c"># update the table</span>1348 </div>1349 <span class="k">def</span> <span class="nf">Reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>1350 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">startValue</span><span class="p">)</span>1351 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">SetInsertionPointEnd</span><span class="p">()</span>1352 1353 <span class="k">def</span> <span class="nf">Clone</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>1354 <span class="k">return</span> <span class="n">GridFractionEditor</span><span class="p">(</span><span class="n">grid</span><span class="p">)</span>1355 1356 <span class="k">def</span> <span class="nf">StartingKey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>1357 <span class="bp">self</span><span class="o">.</span><span class="n">OnChar</span><span class="p">(</span><span class="n">evt</span><span class="p">)</span>1358 <span class="k">if</span> <span class="n">evt</span><span class="o">.</span><span class="n">GetSkipped</span><span class="p">():</span>1359 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">EmulateKeyPress</span><span class="p">(</span><span class="n">evt</span><span class="p">)</span>1360 1361 <span class="k">def</span> <span class="nf">OnChar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>1362 <span class="n">key</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">GetKeyCode</span><span class="p">()</span>1363 <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="mi">15</span><span class="p">:</span>1364 <span class="k">return</span>1365 <span class="k">if</span> <span class="n">key</span> <span class="o">></span> <span class="mi">255</span><span class="p">:</span>1366 <span class="n">evt</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>1367 <span class="k">return</span>1368 <span class="n">char</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>1369 <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="s">'.+-/0123456789cosind()'</span><span class="p">:</span>1370 <span class="bp">self</span><span class="o">.</span><span class="n">_tc</span><span class="o">.</span><span class="n">WriteText</span><span class="p">(</span><span class="n">char</span><span class="p">)</span>1371 <span class="k">else</span><span class="p">:</span>1372 <span class="n">evt</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>1373 1374 <span class="c">################################################################################</span></div>1375 493 <div class="viewcode-block" id="ShowLSParms"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.ShowLSParms">[docs]</a><span class="k">class</span> <span class="nc">ShowLSParms</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span> 1376 494 <span class="sd">'''Create frame to show least-squares parameters</span> … … 1632 750 <span class="bp">self</span><span class="o">.</span><span class="n">SequentialFile</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_PLOTSEQSEL</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Plot selected'</span><span class="p">,</span> 1633 751 <span class="n">help</span><span class="o">=</span><span class="s">'Plot selected sequential refinement results'</span><span class="p">)</span> 752 <span class="bp">self</span><span class="o">.</span><span class="n">SequentialFile</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_AVESEQSEL</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Compute average'</span><span class="p">,</span> 753 <span class="n">help</span><span class="o">=</span><span class="s">'Compute average for selected parameter'</span><span class="p">)</span> 1634 754 <span class="bp">self</span><span class="o">.</span><span class="n">SequentialFile</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_ORGSEQSEL</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Reorganize'</span><span class="p">,</span> 1635 755 <span class="n">help</span><span class="o">=</span><span class="s">'Reorganize variables where variables change'</span><span class="p">)</span> … … 1688 808 <span class="bp">self</span><span class="o">.</span><span class="n">ErrorAnal</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_PWD3DHKLPLOT</span><span class="p">,</span><span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Plot 3D HKLs'</span><span class="p">,</span> 1689 809 <span class="n">help</span><span class="o">=</span><span class="s">'Plot HKLs from single crystal data in 3D'</span><span class="p">)</span> 810 <span class="bp">self</span><span class="o">.</span><span class="n">ErrorAnal</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_3DALLHKLPLOT</span><span class="p">,</span><span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Plot all 3D HKLs'</span><span class="p">,</span> 811 <span class="n">help</span><span class="o">=</span><span class="s">'Plot HKLs from all single crystal data in 3D'</span><span class="p">)</span> 1690 812 <span class="bp">self</span><span class="o">.</span><span class="n">ErrorAnal</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_PWDCOPY</span><span class="p">,</span><span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Copy params'</span><span class="p">,</span> 1691 813 <span class="n">help</span><span class="o">=</span><span class="s">'Copy of HKLF parameters'</span><span class="p">)</span> … … 1712 834 <span class="bp">self</span><span class="o">.</span><span class="n">BackEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_BACKFLAGCOPY</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Copy flags'</span><span class="p">,</span> 1713 835 <span class="n">help</span><span class="o">=</span><span class="s">'Copy background refinement flags to other histograms'</span><span class="p">)</span> 836 <span class="bp">self</span><span class="o">.</span><span class="n">BackEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_PEAKSMOVE</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Move peaks'</span><span class="p">,</span> 837 <span class="n">help</span><span class="o">=</span><span class="s">'Move background peaks to Peak List'</span><span class="p">)</span> 838 1714 839 <span class="bp">self</span><span class="o">.</span><span class="n">PostfillDataMenu</span><span class="p">()</span> 1715 840 … … 2007 1132 <span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s">''</span><span class="p">)</span> 2008 1133 <span class="bp">self</span><span class="o">.</span><span class="n">DataMenu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">menu</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s">'Edit'</span><span class="p">)</span> 1134 <span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_DATACOPY</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Copy data'</span><span class="p">,</span> 1135 <span class="n">help</span><span class="o">=</span><span class="s">'Copy phase data to other histograms'</span><span class="p">)</span> 1136 <span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_DATACOPYFLAGS</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Copy flags'</span><span class="p">,</span> 1137 <span class="n">help</span><span class="o">=</span><span class="s">'Copy phase data flags to other histograms'</span><span class="p">)</span> 1138 <span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_DATASELCOPY</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Copy selected data'</span><span class="p">,</span> 1139 <span class="n">help</span><span class="o">=</span><span class="s">'Copy selected phase data to other histograms'</span><span class="p">)</span> 2009 1140 <span class="bp">self</span><span class="o">.</span><span class="n">DataEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_PWDRADD</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Add powder histograms'</span><span class="p">,</span> 2010 1141 <span class="n">help</span><span class="o">=</span><span class="s">'Select new powder histograms to be used for this phase'</span><span class="p">)</span> … … 2162 1293 <span class="bp">self</span><span class="o">.</span><span class="n">TextureEdit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s">''</span><span class="p">)</span> 2163 1294 <span class="bp">self</span><span class="o">.</span><span class="n">TextureMenu</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">menu</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">TextureEdit</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s">'Texture'</span><span class="p">)</span> 2164 <span class="c"># self.TextureEdit.Append(id=wxID_REFINETEXTURE, kind=wx.ITEM_NORMAL,text='Refine texture', </span> 2165 <span class="c"># help='Refine the texture coefficients from sequential Pawley results')</span> 2166 <span class="c"># N.B. Binding is now commented out</span> 1295 <span class="bp">self</span><span class="o">.</span><span class="n">TextureEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_REFINETEXTURE</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Refine texture'</span><span class="p">,</span> 1296 <span class="n">help</span><span class="o">=</span><span class="s">'Refine the texture coefficients from sequential results'</span><span class="p">)</span> 2167 1297 <span class="bp">self</span><span class="o">.</span><span class="n">TextureEdit</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">wxID_CLEARTEXTURE</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">ITEM_NORMAL</span><span class="p">,</span><span class="n">text</span><span class="o">=</span><span class="s">'Clear texture'</span><span class="p">,</span> 2168 1298 <span class="n">help</span><span class="o">=</span><span class="s">'Clear the texture coefficients'</span> <span class="p">)</span> … … 2263 1393 <span class="bp">self</span><span class="o">.</span><span class="n">DestroyChildren</span><span class="p">()</span> 2264 1394 1395 2265 1396 <span class="c">################################################################################</span> 2266 <span class="c">##### GSNotebook</span> 2267 <span class="c">################################################################################ </span> 2268 </div> 2269 <div class="viewcode-block" id="GSNoteBook"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GSNoteBook">[docs]</a><span class="k">class</span> <span class="nc">GSNoteBook</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AuiNotebook</span><span class="p">):</span> 2270 <span class="sd">'''Notebook used in various locations; implemented with wx.aui extension</span> 2271 <span class="sd"> '''</span> 2272 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s">''</span><span class="p">,</span><span class="n">size</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> 2273 <span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AuiNotebook</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> 2274 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AUI_NB_TOP</span> <span class="o">|</span> 2275 <span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AUI_NB_SCROLL_BUTTONS</span><span class="p">)</span> 2276 <span class="k">if</span> <span class="n">size</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">size</span><span class="p">)</span> 2277 <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> 2278 <span class="bp">self</span><span class="o">.</span><span class="n">PageChangeHandler</span> <span class="o">=</span> <span class="bp">None</span> 2279 2280 <span class="k">def</span> <span class="nf">PageChangeEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="p">):</span> 2281 <span class="n">G2frame</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">G2frame</span> 2282 <span class="n">page</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span> 2283 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">PageChangeHandler</span><span class="p">:</span> 2284 <span class="k">if</span> <span class="n">log</span><span class="o">.</span><span class="n">LogInfo</span><span class="p">[</span><span class="s">'Logging'</span><span class="p">]:</span> 2285 <span class="n">log</span><span class="o">.</span><span class="n">MakeTabLog</span><span class="p">(</span> 2286 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetTitle</span><span class="p">(),</span> 2287 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">GetPageText</span><span class="p">(</span><span class="n">page</span><span class="p">)</span> 2288 <span class="p">)</span> 2289 <span class="bp">self</span><span class="o">.</span><span class="n">PageChangeHandler</span><span class="p">(</span><span class="n">event</span><span class="p">)</span> 2290 2291 <div class="viewcode-block" id="GSNoteBook.Bind"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GSNoteBook.Bind">[docs]</a> <span class="k">def</span> <span class="nf">Bind</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">eventtype</span><span class="p">,</span><span class="n">handler</span><span class="p">,</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> 2292 <span class="sd">'''Override the Bind() function so that page change events can be trapped</span> 2293 <span class="sd"> '''</span> 2294 <span class="k">if</span> <span class="n">eventtype</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">EVT_AUINOTEBOOK_PAGE_CHANGED</span><span class="p">:</span> 2295 <span class="bp">self</span><span class="o">.</span><span class="n">PageChangeHandler</span> <span class="o">=</span> <span class="n">handler</span> 2296 <span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AuiNotebook</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">eventtype</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">PageChangeEvent</span><span class="p">)</span> 2297 <span class="k">return</span> 2298 <span class="n">wx</span><span class="o">.</span><span class="n">aui</span><span class="o">.</span><span class="n">AuiNotebook</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">eventtype</span><span class="p">,</span><span class="n">handler</span><span class="p">,</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> 2299 </div> 2300 <span class="k">def</span> <span class="nf">Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2301 <span class="n">GSNoteBook</span><span class="o">.</span><span class="n">DeleteAllPages</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> 2302 2303 <span class="k">def</span> <span class="nf">FindPage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">name</span><span class="p">):</span> 2304 <span class="n">numPage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetPageCount</span><span class="p">()</span> 2305 <span class="k">for</span> <span class="n">page</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">numPage</span><span class="p">):</span> 2306 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetPageText</span><span class="p">(</span><span class="n">page</span><span class="p">)</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span> 2307 <span class="k">return</span> <span class="n">page</span> 2308 2309 <span class="k">def</span> <span class="nf">ChangeSelection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">page</span><span class="p">):</span> 2310 <span class="c"># in wx.Notebook ChangeSelection is like SetSelection, but it</span> 2311 <span class="c"># does not invoke the event related to pressing the tab button</span> 2312 <span class="c"># I don't see a way to do that in aui.</span> 2313 <span class="n">oldPage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span> 2314 <span class="bp">self</span><span class="o">.</span><span class="n">SetSelection</span><span class="p">(</span><span class="n">page</span><span class="p">)</span> 2315 <span class="k">return</span> <span class="n">oldPage</span> 2316 2317 <span class="c"># def __getattribute__(self,name):</span> 2318 <span class="c"># '''This method provides a way to print out a message every time</span> 2319 <span class="c"># that a method in a class is called -- to see what all the calls</span> 2320 <span class="c"># might be, or where they might be coming from.</span> 2321 <span class="c"># Cute trick for debugging!</span> 2322 <span class="c"># '''</span> 2323 <span class="c"># attr = object.__getattribute__(self, name)</span> 2324 <span class="c"># if hasattr(attr, '__call__'):</span> 2325 <span class="c"># def newfunc(*args, **kwargs):</span> 2326 <span class="c"># print('GSauiNoteBook calling %s' %attr.__name__)</span> 2327 <span class="c"># result = attr(*args, **kwargs)</span> 2328 <span class="c"># return result</span> 2329 <span class="c"># return newfunc</span> 2330 <span class="c"># else:</span> 2331 <span class="c"># return attr</span> 2332 2333 <span class="c">################################################################################</span> 2334 <span class="c">##### GSGrid</span> 2335 <span class="c">################################################################################ </span> 2336 </div> 2337 <div class="viewcode-block" id="GSGrid"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GSGrid">[docs]</a><span class="k">class</span> <span class="nc">GSGrid</span><span class="p">(</span><span class="n">wg</span><span class="o">.</span><span class="n">Grid</span><span class="p">):</span> 2338 <span class="sd">'''Basic wx.Grid implementation</span> 2339 <span class="sd"> '''</span> 2340 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s">''</span><span class="p">):</span> 2341 <span class="n">wg</span><span class="o">.</span><span class="n">Grid</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">parent</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> 2342 <span class="c">#self.SetSize(parent.GetClientSize())</span> 2343 <span class="c"># above removed to speed drawing of initial grid</span> 2344 <span class="c"># does not appear to be needed</span> 2345 2346 <span class="k">def</span> <span class="nf">Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2347 <span class="n">wg</span><span class="o">.</span><span class="n">Grid</span><span class="o">.</span><span class="n">ClearGrid</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> 2348 2349 <span class="k">def</span> <span class="nf">SetCellReadOnly</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">r</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">readonly</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span> 2350 <span class="bp">self</span><span class="o">.</span><span class="n">SetReadOnly</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">isReadOnly</span><span class="o">=</span><span class="n">readonly</span><span class="p">)</span> 2351 2352 <span class="k">def</span> <span class="nf">SetCellStyle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">r</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="s">"white"</span><span class="p">,</span><span class="n">readonly</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span> 2353 <span class="bp">self</span><span class="o">.</span><span class="n">SetCellBackgroundColour</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">color</span><span class="p">)</span> 2354 <span class="bp">self</span><span class="o">.</span><span class="n">SetReadOnly</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">isReadOnly</span><span class="o">=</span><span class="n">readonly</span><span class="p">)</span> 2355 2356 <span class="k">def</span> <span class="nf">GetSelection</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2357 <span class="c">#this is to satisfy structure drawing stuff in G2plt when focus changes</span> 2358 <span class="k">return</span> <span class="bp">None</span> 2359 2360 <div class="viewcode-block" id="GSGrid.InstallGridToolTip"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.GSGrid.InstallGridToolTip">[docs]</a> <span class="k">def</span> <span class="nf">InstallGridToolTip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rowcolhintcallback</span><span class="p">,</span> 2361 <span class="n">colLblCallback</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">rowLblCallback</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> 2362 <span class="sd">'''code to display a tooltip for each item on a grid</span> 2363 <span class="sd"> from http://wiki.wxpython.org/wxGrid%20ToolTips (buggy!), expanded to</span> 2364 <span class="sd"> column and row labels using hints from</span> 2365 <span class="sd"> https://groups.google.com/forum/#!topic/wxPython-users/bm8OARRVDCs</span> 2366 2367 <span class="sd"> :param function rowcolhintcallback: a routine that returns a text</span> 2368 <span class="sd"> string depending on the selected row and column, to be used in</span> 2369 <span class="sd"> explaining grid entries.</span> 2370 <span class="sd"> :param function colLblCallback: a routine that returns a text</span> 2371 <span class="sd"> string depending on the selected column, to be used in</span> 2372 <span class="sd"> explaining grid columns (if None, the default), column labels</span> 2373 <span class="sd"> do not get a tooltip.</span> 2374 <span class="sd"> :param function rowLblCallback: a routine that returns a text</span> 2375 <span class="sd"> string depending on the selected row, to be used in</span> 2376 <span class="sd"> explaining grid rows (if None, the default), row labels</span> 2377 <span class="sd"> do not get a tooltip.</span> 2378 <span class="sd"> '''</span> 2379 <span class="n">prev_rowcol</span> <span class="o">=</span> <span class="p">[</span><span class="bp">None</span><span class="p">,</span><span class="bp">None</span><span class="p">,</span><span class="bp">None</span><span class="p">]</span> 2380 <span class="k">def</span> <span class="nf">OnMouseMotion</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 2381 <span class="c"># event.GetRow() and event.GetCol() would be nice to have here,</span> 2382 <span class="c"># but as this is a mouse event, not a grid event, they are not</span> 2383 <span class="c"># available and we need to compute them by hand.</span> 2384 <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">CalcUnscrolledPosition</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">GetPosition</span><span class="p">())</span> 2385 <span class="n">row</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">YToRow</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 2386 <span class="n">col</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">XToCol</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> 2387 <span class="n">hinttext</span> <span class="o">=</span> <span class="s">''</span> 2388 <span class="n">win</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 2389 <span class="k">if</span> <span class="p">[</span><span class="n">row</span><span class="p">,</span><span class="n">col</span><span class="p">,</span><span class="n">win</span><span class="p">]</span> <span class="o">==</span> <span class="n">prev_rowcol</span><span class="p">:</span> <span class="c"># no change from last position</span> 2390 <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span> 2391 <span class="k">return</span> 2392 <span class="k">if</span> <span class="n">win</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetGridWindow</span><span class="p">()</span> <span class="ow">and</span> <span class="n">row</span> <span class="o">>=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">col</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> 2393 <span class="n">hinttext</span> <span class="o">=</span> <span class="n">rowcolhintcallback</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">)</span> 2394 <span class="k">elif</span> <span class="n">win</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetGridColLabelWindow</span><span class="p">()</span> <span class="ow">and</span> <span class="n">col</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> 2395 <span class="k">if</span> <span class="n">colLblCallback</span><span class="p">:</span> <span class="n">hinttext</span> <span class="o">=</span> <span class="n">colLblCallback</span><span class="p">(</span><span class="n">col</span><span class="p">)</span> 2396 <span class="k">elif</span> <span class="n">win</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetGridRowLabelWindow</span><span class="p">()</span> <span class="ow">and</span> <span class="n">row</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span> 2397 <span class="k">if</span> <span class="n">rowLblCallback</span><span class="p">:</span> <span class="n">hinttext</span> <span class="o">=</span> <span class="n">rowLblCallback</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> 2398 <span class="k">else</span><span class="p">:</span> <span class="c"># this should be the upper left corner, which is empty</span> 2399 <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span> 2400 <span class="k">return</span> 2401 <span class="k">if</span> <span class="n">hinttext</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="n">hinttext</span> <span class="o">=</span> <span class="s">''</span> 2402 <span class="n">win</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hinttext</span><span class="p">)</span> 2403 <span class="n">prev_rowcol</span><span class="p">[:]</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">,</span><span class="n">col</span><span class="p">,</span><span class="n">win</span><span class="p">]</span> 2404 <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span> 2405 2406 <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MOTION</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetGridWindow</span><span class="p">(),</span> <span class="n">OnMouseMotion</span><span class="p">)</span> 2407 <span class="k">if</span> <span class="n">colLblCallback</span><span class="p">:</span> <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MOTION</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetGridColLabelWindow</span><span class="p">(),</span> <span class="n">OnMouseMotion</span><span class="p">)</span> 2408 <span class="k">if</span> <span class="n">rowLblCallback</span><span class="p">:</span> <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MOTION</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetGridRowLabelWindow</span><span class="p">(),</span> <span class="n">OnMouseMotion</span><span class="p">)</span> 2409 2410 <span class="c">################################################################################</span> 2411 <span class="c">##### Table</span> 2412 <span class="c">################################################################################ </span> 2413 </div></div> 2414 <div class="viewcode-block" id="Table"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.Table">[docs]</a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">wg</span><span class="o">.</span><span class="n">PyGridTableBase</span><span class="p">):</span> 2415 <span class="sd">'''Basic data table for use with GSgrid</span> 2416 <span class="sd"> '''</span> 2417 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="p">[],</span> <span class="n">rowLabels</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">colLabels</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">types</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> 2418 <span class="n">wg</span><span class="o">.</span><span class="n">PyGridTableBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> 2419 <span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span> <span class="o">=</span> <span class="n">colLabels</span> 2420 <span class="bp">self</span><span class="o">.</span><span class="n">rowLabels</span> <span class="o">=</span> <span class="n">rowLabels</span> 2421 <span class="bp">self</span><span class="o">.</span><span class="n">dataTypes</span> <span class="o">=</span> <span class="n">types</span> 2422 <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span> 2423 2424 <span class="k">def</span> <span class="nf">AppendRows</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">numRows</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> 2425 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span> 2426 <span class="k">return</span> <span class="bp">True</span> 2427 2428 <span class="k">def</span> <span class="nf">CanGetValueAs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">typeName</span><span class="p">):</span> 2429 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataTypes</span><span class="p">:</span> 2430 <span class="n">colType</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataTypes</span><span class="p">[</span><span class="n">col</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">':'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> 2431 <span class="k">if</span> <span class="n">typeName</span> <span class="o">==</span> <span class="n">colType</span><span class="p">:</span> 2432 <span class="k">return</span> <span class="bp">True</span> 2433 <span class="k">else</span><span class="p">:</span> 2434 <span class="k">return</span> <span class="bp">False</span> 2435 <span class="k">else</span><span class="p">:</span> 2436 <span class="k">return</span> <span class="bp">False</span> 2437 2438 <span class="k">def</span> <span class="nf">CanSetValueAs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">typeName</span><span class="p">):</span> 2439 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CanGetValueAs</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">typeName</span><span class="p">)</span> 2440 2441 <span class="k">def</span> <span class="nf">DeleteRow</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">pos</span><span class="p">):</span> 2442 <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetData</span><span class="p">()</span> 2443 <span class="bp">self</span><span class="o">.</span><span class="n">SetData</span><span class="p">([])</span> 2444 <span class="n">new</span> <span class="o">=</span> <span class="p">[]</span> 2445 <span class="k">for</span> <span class="n">irow</span><span class="p">,</span><span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">data</span><span class="p">):</span> 2446 <span class="k">if</span> <span class="n">irow</span> <span class="o"><></span> <span class="n">pos</span><span class="p">:</span> 2447 <span class="n">new</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> 2448 <span class="bp">self</span><span class="o">.</span><span class="n">SetData</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> 2449 2450 <span class="k">def</span> <span class="nf">GetColLabelValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">col</span><span class="p">):</span> 2451 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span><span class="p">:</span> 2452 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span><span class="p">[</span><span class="n">col</span><span class="p">]</span> 2453 2454 <span class="k">def</span> <span class="nf">GetData</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2455 <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span> 2456 <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetNumberRows</span><span class="p">()):</span> 2457 <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetRowValues</span><span class="p">(</span><span class="n">row</span><span class="p">))</span> 2458 <span class="k">return</span> <span class="n">data</span> 2459 2460 <span class="k">def</span> <span class="nf">GetNumberCols</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2461 <span class="k">try</span><span class="p">:</span> 2462 <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span><span class="p">)</span> 2463 <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span> 2464 <span class="k">return</span> <span class="bp">None</span> 2465 2466 <span class="k">def</span> <span class="nf">GetNumberRows</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 2467 <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> 2468 2469 <span class="k">def</span> <span class="nf">GetRowLabelValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">):</span> 2470 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rowLabels</span><span class="p">:</span> 2471 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">rowLabels</span><span class="p">[</span><span class="n">row</span><span class="p">]</span> 2472 2473 <span class="k">def</span> <span class="nf">GetColValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">col</span><span class="p">):</span> 2474 <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span> 2475 <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetNumberRows</span><span class="p">()):</span> 2476 <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">))</span> 2477 <span class="k">return</span> <span class="n">data</span> 2478 2479 <span class="k">def</span> <span class="nf">GetRowValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">):</span> 2480 <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span> 2481 <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetNumberCols</span><span class="p">()):</span> 2482 <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">))</span> 2483 <span class="k">return</span> <span class="n">data</span> 2484 2485 <span class="k">def</span> <span class="nf">GetTypeName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">):</span> 2486 <span class="k">try</span><span class="p">:</span> 2487 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">return</span> <span class="bp">None</span> 2488 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataTypes</span><span class="p">[</span><span class="n">col</span><span class="p">]</span> 2489 <span class="k">except</span> <span class="p">(</span><span class="ne">TypeError</span><span class="p">,</span><span class="ne">IndexError</span><span class="p">):</span> 2490 <span class="k">return</span> <span class="bp">None</span> 2491 2492 <span class="k">def</span> <span class="nf">GetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">):</span> 2493 <span class="k">try</span><span class="p">:</span> 2494 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">return</span> <span class="s">""</span> 2495 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> 2496 <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> 2497 <span class="k">return</span> <span class="bp">None</span> 2498 2499 <span class="k">def</span> <span class="nf">InsertRows</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pos</span><span class="p">,</span> <span class="n">rows</span><span class="p">):</span> 2500 <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> 2501 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">pos</span><span class="p">,[])</span> 2502 <span class="n">pos</span> <span class="o">+=</span> <span class="mi">1</span> 2503 2504 <span class="k">def</span> <span class="nf">IsEmptyCell</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">row</span><span class="p">,</span><span class="n">col</span><span class="p">):</span> 2505 <span class="k">try</span><span class="p">:</span> 2506 <span class="k">return</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> 2507 <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> 2508 <span class="k">return</span> <span class="bp">True</span> 2509 2510 <span class="k">def</span> <span class="nf">OnKeyPress</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span> 2511 <span class="n">dellist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetSelectedRows</span><span class="p">()</span> 2512 <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">GetKeyCode</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">WXK_DELETE</span> <span class="ow">and</span> <span class="n">dellist</span><span class="p">:</span> 2513 <span class="n">grid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetView</span><span class="p">()</span> 2514 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">dellist</span><span class="p">:</span> <span class="n">grid</span><span class="o">.</span><span class="n">DeleteRow</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> 2515 2516 <span class="k">def</span> <span class="nf">SetColLabelValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">label</span><span class="p">):</span> 2517 <span class="n">numcols</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetNumberCols</span><span class="p">()</span> 2518 <span class="k">if</span> <span class="n">col</span> <span class="o">></span> <span class="n">numcols</span><span class="o">-</span><span class="mi">1</span><span class="p">:</span> 2519 <span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">label</span><span class="p">)</span> 2520 <span class="k">else</span><span class="p">:</span> 2521 <span class="bp">self</span><span class="o">.</span><span class="n">colLabels</span><span class="p">[</span><span class="n">col</span><span class="p">]</span><span class="o">=</span><span class="n">label</span> 2522 2523 <span class="k">def</span> <span class="nf">SetData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 2524 <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)):</span> 2525 <span class="bp">self</span><span class="o">.</span><span class="n">SetRowValues</span><span class="p">(</span><span class="n">row</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">])</span> 2526 2527 <span class="k">def</span> <span class="nf">SetRowLabelValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">label</span><span class="p">):</span> 2528 <span class="bp">self</span><span class="o">.</span><span class="n">rowLabels</span><span class="p">[</span><span class="n">row</span><span class="p">]</span><span class="o">=</span><span class="n">label</span> 2529 2530 <span class="k">def</span> <span class="nf">SetRowValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">row</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 2531 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span> 2532 2533 <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> 2534 <span class="k">def</span> <span class="nf">innerSetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> 2535 <span class="k">try</span><span class="p">:</span> 2536 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 2537 <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span> 2538 <span class="k">return</span> 2539 <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> 2540 <span class="k">print</span> <span class="n">row</span><span class="p">,</span><span class="n">col</span><span class="p">,</span><span class="n">value</span> 2541 <span class="c"># add a new row</span> 2542 <span class="k">if</span> <span class="n">row</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">GetNumberRows</span><span class="p">():</span> 2543 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="s">''</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetNumberCols</span><span class="p">())</span> 2544 <span class="k">elif</span> <span class="n">col</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">GetNumberCols</span><span class="p">():</span> 2545 <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">GetNumberRows</span><span class="p">):</span> 2546 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">''</span><span class="p">)</span> 2547 <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> 2548 <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 2549 <span class="n">innerSetValue</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> 2550 2551 <span class="c">################################################################################</span> 2552 <span class="c">##### Notebook</span> 2553 <span class="c">################################################################################ </span> 2554 </div> 1397 <span class="c">##### Notebook Tree Item editor</span> 1398 <span class="c">################################################################################ </span></div> 2555 1399 <div class="viewcode-block" id="UpdateNotebook"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.UpdateNotebook">[docs]</a><span class="k">def</span> <span class="nf">UpdateNotebook</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 2556 1400 <span class="sd">'''Called when the data tree notebook entry is selected. Allows for</span> … … 2576 1420 2577 1421 <span class="c">################################################################################</span> 2578 <span class="c">##### Controls</span> 2579 <span class="c">################################################################################ </span> 2580 </div> 1422 <span class="c">##### Controls Tree Item editor</span> 1423 <span class="c">################################################################################ </span></div> 2581 1424 <div class="viewcode-block" id="UpdateControls"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.UpdateControls">[docs]</a><span class="k">def</span> <span class="nf">UpdateControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 2582 1425 <span class="sd">'''Edit overall GSAS-II controls in main Controls data tree entry</span> … … 2589 1432 <span class="n">data</span><span class="p">[</span><span class="s">'shift factor'</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.</span> 2590 1433 <span class="n">data</span><span class="p">[</span><span class="s">'max cyc'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span> 2591 <span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span> 2592 <span class="n">data</span><span class="p">[</span><span class="s">'minF/sig'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span> 1434 <span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span> 2593 1435 <span class="k">if</span> <span class="s">'shift factor'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 2594 1436 <span class="n">data</span><span class="p">[</span><span class="s">'shift factor'</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.</span> … … 2596 1438 <span class="n">data</span><span class="p">[</span><span class="s">'max cyc'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span> 2597 1439 <span class="k">if</span> <span class="s">'F**2'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 2598 <span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span> 2599 <span class="n">data</span><span class="p">[</span><span class="s">'minF/sig'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span> 1440 <span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span> 2600 1441 <span class="k">if</span> <span class="s">'Author'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 2601 1442 <span class="n">data</span><span class="p">[</span><span class="s">'Author'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'no name'</span> … … 2609 1450 <span class="n">data</span><span class="p">[</span><span class="s">'Copy2Next'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span> 2610 1451 <span class="k">if</span> <span class="s">'Reverse Seq'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 2611 <span class="n">data</span><span class="p">[</span><span class="s">'Reverse Seq'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span> 1452 <span class="n">data</span><span class="p">[</span><span class="s">'Reverse Seq'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span> 1453 <span class="k">if</span> <span class="s">'UsrReject'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 1454 <span class="n">data</span><span class="p">[</span><span class="s">'UsrReject'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s">'minF/sig'</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="s">'MinExt'</span><span class="p">:</span><span class="mf">0.01</span><span class="p">,</span><span class="s">'MaxDF/F'</span><span class="p">:</span><span class="mf">20.</span><span class="p">,</span><span class="s">'MaxD'</span><span class="p">:</span><span class="mf">500.</span><span class="p">,</span><span class="s">'MinD'</span><span class="p">:</span><span class="mf">0.05</span><span class="p">}</span> 2612 1455 2613 1456 … … 2617 1460 2618 1461 <span class="k">def</span> <span class="nf">OnSelectData</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 2619 <span class="n">choices</span> <span class="o">=</span> <span class="n">GetPatternTreeDataNames</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,[</span><span class="s">'PWDR'</span><span class="p">, ])</span>1462 <span class="n">choices</span> <span class="o">=</span> <span class="n">GetPatternTreeDataNames</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,[</span><span class="s">'PWDR'</span><span class="p">,</span><span class="s">'HKLF'</span><span class="p">,])</span> 2620 1463 <span class="n">sel</span> <span class="o">=</span> <span class="p">[]</span> 2621 <span class="k">if</span> <span class="s">'Seq Data'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 2622 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'Seq Data'</span><span class="p">]:</span> 2623 <span class="n">sel</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">choices</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">item</span><span class="p">))</span> 2624 <span class="n">sel</span> <span class="o">=</span> <span class="p">[</span><span class="n">choices</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'Seq Data'</span><span class="p">]]</span> 2625 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2MultiChoiceDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> <span class="s">'Sequential refinement'</span><span class="p">,</span> 2626 <span class="s">'Select dataset to include'</span><span class="p">,</span> 2627 <span class="n">choices</span><span class="p">)</span> 1464 <span class="k">try</span><span class="p">:</span> 1465 <span class="k">if</span> <span class="s">'Seq Data'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 1466 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'Seq Data'</span><span class="p">]:</span> 1467 <span class="n">sel</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">choices</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">item</span><span class="p">))</span> 1468 <span class="n">sel</span> <span class="o">=</span> <span class="p">[</span><span class="n">choices</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'Seq Data'</span><span class="p">]]</span> 1469 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> <span class="c">#data changed somehow - start fresh</span> 1470 <span class="n">sel</span> <span class="o">=</span> <span class="p">[]</span> 1471 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">G2MultiChoiceDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> <span class="s">'Sequential refinement'</span><span class="p">,</span> 1472 <span class="s">'Select dataset to include'</span><span class="p">,</span><span class="n">choices</span><span class="p">)</span> 2628 1473 <span class="n">dlg</span><span class="o">.</span><span class="n">SetSelections</span><span class="p">(</span><span class="n">sel</span><span class="p">)</span> 2629 1474 <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span> … … 2650 1495 <span class="n">SeqData</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Seq Data'</span><span class="p">,[])</span> 2651 1496 <span class="k">if</span> <span class="ow">not</span> <span class="n">SeqData</span><span class="p">:</span> 2652 <span class="n">lbl</span> <span class="o">=</span> <span class="s">' (no powderdata selected)'</span>1497 <span class="n">lbl</span> <span class="o">=</span> <span class="s">' (no data selected)'</span> 2653 1498 <span class="k">else</span><span class="p">:</span> 2654 1499 <span class="n">lbl</span> <span class="o">=</span> <span class="s">' ('</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">SeqData</span><span class="p">))</span><span class="o">+</span><span class="s">' dataset(s) selected)'</span> … … 2699 1544 <span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">fsqRef</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> 2700 1545 2701 <span class="k">def</span> <span class="nf">OnMinSig</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1546 <span class="k">def</span> <span class="nf">OnUsrRej</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1547 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1548 <span class="n">item</span><span class="p">,</span><span class="n">limits</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="p">]</span> 2702 1549 <span class="k">try</span><span class="p">:</span> 2703 <span class="n">value</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n"> minSig</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="mf">0.</span><span class="p">),</span><span class="mf">5.</span><span class="p">)</span>1550 <span class="n">value</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="n">limits</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span><span class="n">limits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> 2704 1551 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 2705 <span class="n">value</span> <span class="o">=</span> <span class=" mf">1.0</span>2706 <span class="n">data</span><span class="p">[</span><span class="s">' minF/sig'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>2707 <span class="n"> minSig</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>1552 <span class="n">value</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'UsrReject'</span><span class="p">][</span><span class="n">item</span><span class="p">]</span> 1553 <span class="n">data</span><span class="p">[</span><span class="s">'UsrReject'</span><span class="p">][</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 1554 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">value</span><span class="p">))</span> 2708 1555 2709 1556 <span class="n">LSSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="n">cols</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span><span class="n">vgap</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="n">hgap</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span> … … 2721 1568 <span class="n">Cnvrg</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnConvergence</span><span class="p">)</span> 2722 1569 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Cnvrg</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1570 <span class="n">Indx</span> <span class="o">=</span> <span class="p">{}</span> 2723 1571 <span class="k">if</span> <span class="s">'Hessian'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'deriv type'</span><span class="p">]:</span> 2724 1572 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Max cycles: '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> … … 2736 1584 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Factr</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 2737 1585 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">Sngl</span><span class="p">:</span> 2738 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">),)</span> 2739 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">),)</span> 1586 <span class="n">userReject</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'UsrReject'</span><span class="p">]</span> 1587 <span class="n">usrRej</span> <span class="o">=</span> <span class="p">{</span><span class="s">'minF/sig'</span><span class="p">:[</span><span class="s">' Min obs/sig (0-5): '</span><span class="p">,[</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">],</span> <span class="p">],</span><span class="s">'MinExt'</span><span class="p">:[</span><span class="s">' Min extinct. (0-.9): '</span><span class="p">,[</span><span class="mi">0</span><span class="p">,</span><span class="o">.</span><span class="mi">9</span><span class="p">],],</span> 1588 <span class="s">'MaxDF/F'</span><span class="p">:[</span><span class="s">' Max delt-F/sig (3-1000): '</span><span class="p">,[</span><span class="mf">3.</span><span class="p">,</span><span class="mf">1000.</span><span class="p">],],</span><span class="s">'MaxD'</span><span class="p">:[</span><span class="s">' Max d-spacing (3-500): '</span><span class="p">,[</span><span class="mi">3</span><span class="p">,</span><span class="mi">500</span><span class="p">],],</span> 1589 <span class="s">'MinD'</span><span class="p">:[</span><span class="s">' Min d-spacing (0.1-1.0): '</span><span class="p">,[</span><span class="mf">0.1</span><span class="p">,</span><span class="mf">1.0</span><span class="p">],]}</span> 1590 2740 1591 <span class="n">fsqRef</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'Refine HKLF as F^2? '</span><span class="p">)</span> 2741 1592 <span class="n">fsqRef</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">])</span> 2742 1593 <span class="n">fsqRef</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_CHECKBOX</span><span class="p">,</span><span class="n">OnFsqRef</span><span class="p">)</span> 2743 1594 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">fsqRef</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 2744 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'Min obs/sig (0-5): '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 2745 <span class="n">minSig</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'minF/sig'</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span> 2746 <span class="n">minSig</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnMinSig</span><span class="p">)</span> 2747 <span class="n">minSig</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnMinSig</span><span class="p">)</span> 2748 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">minSig</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1595 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">),)</span> 1596 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">usrRej</span><span class="p">:</span> 1597 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="n">usrRej</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="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1598 <span class="n">usrrej</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">userReject</span><span class="p">[</span><span class="n">item</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">)</span> 1599 <span class="n">Indx</span><span class="p">[</span><span class="n">usrrej</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">item</span><span class="p">,</span><span class="n">usrRej</span><span class="p">[</span><span class="n">item</span><span class="p">][</span><span class="mi">1</span><span class="p">]]</span> 1600 <span class="n">usrrej</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span><span class="n">OnUsrRej</span><span class="p">)</span> 1601 <span class="n">usrrej</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnUsrRej</span><span class="p">)</span> 1602 <span class="n">LSSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">usrrej</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 2749 1603 <span class="k">return</span> <span class="n">LSSizer</span> 2750 1604 … … 2840 1694 <span class="k">else</span><span class="p">:</span> 2841 1695 <span class="n">sampleParmDict</span> <span class="o">=</span> <span class="p">{</span><span class="s">'Temperature'</span><span class="p">:[],</span><span class="s">'Pressure'</span><span class="p">:[],</span><span class="s">'Time'</span><span class="p">:[],</span> 2842 <span class="s">'FreePrm1'</span><span class="p">:[],</span><span class="s">'FreePrm2'</span><span class="p">:[],</span><span class="s">'FreePrm3'</span><span class="p">:[],}</span> 1696 <span class="s">'FreePrm1'</span><span class="p">:[],</span><span class="s">'FreePrm2'</span><span class="p">:[],</span><span class="s">'FreePrm3'</span><span class="p">:[],</span><span class="s">'Omega'</span><span class="p">:[],</span> 1697 <span class="s">'Chi'</span><span class="p">:[],</span><span class="s">'Phi'</span><span class="p">:[],</span><span class="s">'Azimuth'</span><span class="p">:[],}</span> 2843 1698 <span class="n">Controls</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span> 2844 1699 <span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span> <span class="s">'Controls'</span><span class="p">))</span> … … 2901 1756 <span class="p">)</span> 2902 1757 1758 <span class="k">def</span> <span class="nf">OnAveSelSeq</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1759 <span class="s">'average the selected columns from menu command'</span> 1760 <span class="n">cols</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">GetSelectedCols</span><span class="p">())</span> <span class="c"># ignore selection order</span> 1761 <span class="k">if</span> <span class="n">cols</span><span class="p">:</span> 1762 <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">cols</span><span class="p">:</span> 1763 <span class="n">ave</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">GetColumnInfo</span><span class="p">(</span><span class="n">col</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span> 1764 <span class="n">sig</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">GetColumnInfo</span><span class="p">(</span><span class="n">col</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span> 1765 <span class="k">print</span> <span class="s">' Average for '</span><span class="o">+</span><span class="n">G2frame</span><span class="o">.</span><span class="n">SeqTable</span><span class="o">.</span><span class="n">GetColLabelValue</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">+</span><span class="s">': '</span><span class="o">+</span><span class="s">'</span><span class="si">%.6g</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">ave</span><span class="p">)</span><span class="o">+</span><span class="s">' +/- '</span><span class="o">+</span><span class="s">'</span><span class="si">%.6g</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">sig</span><span class="p">)</span> 1766 <span class="k">else</span><span class="p">:</span> 1767 <span class="n">G2frame</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span> 1768 <span class="s">'Select columns'</span><span class="p">,</span> 1769 <span class="s">'No columns selected in table. Click on column labels to select fields for averaging.'</span> 1770 <span class="p">)</span> 1771 2903 1772 <span class="k">def</span> <span class="nf">OnRenameSelSeq</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 2904 1773 <span class="n">cols</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">GetSelectedCols</span><span class="p">())</span> <span class="c"># ignore selection order</span> … … 2912 1781 <span class="s">'No columns selected in table. Click on column labels to select fields for rename.'</span><span class="p">)</span> 2913 1782 <span class="k">return</span> 2914 <span class="n">dlg</span> <span class="o">=</span> <span class="n"> MultiStringDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="s">'Set column names'</span><span class="p">,</span><span class="n">colNames</span><span class="p">,</span><span class="n">newNames</span><span class="p">)</span>1783 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">MultiStringDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="s">'Set column names'</span><span class="p">,</span><span class="n">colNames</span><span class="p">,</span><span class="n">newNames</span><span class="p">)</span> 2915 1784 <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">Show</span><span class="p">():</span> 2916 1785 <span class="n">newNames</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetValues</span><span class="p">()</span> … … 3044 1913 <span class="n">ncols</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">SeqTable</span><span class="o">.</span><span class="n">GetNumberCols</span><span class="p">()</span> 3045 1914 <span class="n">colNames</span> <span class="o">=</span> <span class="p">[</span><span class="n">G2frame</span><span class="o">.</span><span class="n">SeqTable</span><span class="o">.</span><span class="n">GetColLabelValue</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncols</span><span class="p">)]</span> 3046 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2 SingleChoiceDialog</span><span class="p">(</span>1915 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">G2SingleChoiceDialog</span><span class="p">(</span> 3047 1916 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> 3048 1917 <span class="s">'Select x-axis parameter for plot or Cancel for sequence number'</span><span class="p">,</span> … … 3070 1939 <span class="s">'Ask the user to select a pseudo var expression to delete'</span> 3071 1940 <span class="n">choices</span> <span class="o">=</span> <span class="n">Controls</span><span class="p">[</span><span class="s">'SeqPseudoVars'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> 3072 <span class="n">selected</span> <span class="o">=</span> <span class="n"> ItemSelector</span><span class="p">(</span>1941 <span class="n">selected</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ItemSelector</span><span class="p">(</span> 3073 1942 <span class="n">choices</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> 3074 1943 <span class="n">multiple</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> … … 3087 1956 <span class="n">selected</span> <span class="o">=</span> <span class="mi">0</span> 3088 1957 <span class="k">else</span><span class="p">:</span> 3089 <span class="n">selected</span> <span class="o">=</span> <span class="n"> ItemSelector</span><span class="p">(</span>1958 <span class="n">selected</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ItemSelector</span><span class="p">(</span> 3090 1959 <span class="n">choices</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> 3091 1960 <span class="n">multiple</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> … … 3325 2194 <span class="s">'Ask the user to select function to delete'</span> 3326 2195 <span class="n">txtlst</span> <span class="o">=</span> <span class="p">[</span><span class="n">obj</span><span class="o">.</span><span class="n">GetDepVar</span><span class="p">()</span><span class="o">+</span><span class="s">' = '</span><span class="o">+</span><span class="n">obj</span><span class="o">.</span><span class="n">expression</span> <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">Controls</span><span class="p">[</span><span class="s">'SeqParFitEqList'</span><span class="p">]]</span> 3327 <span class="n">selected</span> <span class="o">=</span> <span class="n"> ItemSelector</span><span class="p">(</span>2196 <span class="n">selected</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ItemSelector</span><span class="p">(</span> 3328 2197 <span class="n">txtlst</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> 3329 2198 <span class="n">multiple</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> … … 3341 2210 <span class="n">selected</span> <span class="o">=</span> <span class="mi">0</span> 3342 2211 <span class="k">else</span><span class="p">:</span> 3343 <span class="n">selected</span> <span class="o">=</span> <span class="n"> ItemSelector</span><span class="p">(</span>2212 <span class="n">selected</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ItemSelector</span><span class="p">(</span> 3344 2213 <span class="n">txtlst</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> 3345 2214 <span class="n">multiple</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> … … 3393 2262 <span class="n">selected</span> <span class="o">=</span> <span class="mi">0</span> 3394 2263 <span class="k">else</span><span class="p">:</span> 3395 <span class="n">selected</span> <span class="o">=</span> <span class="n"> ItemSelector</span><span class="p">(</span>2264 <span class="n">selected</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ItemSelector</span><span class="p">(</span> 3396 2265 <span class="n">txtlst</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span> 3397 2266 <span class="n">multiple</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> … … 3442 2311 <span class="n">var</span> <span class="o">=</span> <span class="n">colLabels</span><span class="p">[</span><span class="n">col</span><span class="p">]</span> 3443 2312 <span class="n">lbl</span> <span class="o">=</span> <span class="n">variableLabels</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">var</span><span class="p">,</span><span class="n">G2obj</span><span class="o">.</span><span class="n">fmtVarDescr</span><span class="p">(</span><span class="n">var</span><span class="p">))</span> 3444 <span class="n">dlg</span> <span class="o">=</span> <span class="n"> SingleStringDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span><span class="s">'Set variable label'</span><span class="p">,</span>2313 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">SingleStringDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">,</span><span class="s">'Set variable label'</span><span class="p">,</span> 3445 2314 <span class="s">'Set a new name for variable '</span><span class="o">+</span><span class="n">var</span><span class="p">,</span><span class="n">lbl</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> 3446 2315 <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">Show</span><span class="p">():</span> … … 3544 2413 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnSaveSeqCSV</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_SAVESEQCSV</span><span class="p">)</span> 3545 2414 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnPlotSelSeq</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_PLOTSEQSEL</span><span class="p">)</span> 2415 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnAveSelSeq</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_AVESEQSEL</span><span class="p">)</span> 3546 2416 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnReOrgSelSeq</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_ORGSEQSEL</span><span class="p">)</span> 3547 2417 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">AddNewPseudoVar</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxADDSEQVAR</span><span class="p">)</span> … … 3782 2652 <span class="n">depVarDict</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">var</span><span class="p">:</span><span class="n">val</span> <span class="k">for</span> <span class="n">var</span><span class="p">,</span><span class="n">val</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'newCellDict'</span><span class="p">,{})</span><span class="o">.</span><span class="n">values</span><span class="p">()})</span> 3783 2653 3784 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">G SGrid</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span>3785 <span class="n">G2frame</span><span class="o">.</span><span class="n">SeqTable</span> <span class="o">=</span> <span class="n"> Table</span><span class="p">(</span>2654 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">GSGrid</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span> 2655 <span class="n">G2frame</span><span class="o">.</span><span class="n">SeqTable</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">Table</span><span class="p">(</span> 3786 2656 <span class="p">[</span><span class="nb">list</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">colList</span><span class="p">)],</span> <span class="c"># convert from columns to rows</span> 3787 2657 <span class="n">colLabels</span><span class="o">=</span><span class="n">colLabels</span><span class="p">,</span><span class="n">rowLabels</span><span class="o">=</span><span class="n">histNames</span><span class="p">,</span><span class="n">types</span><span class="o">=</span><span class="n">Types</span><span class="p">)</span> … … 3873 2743 <span class="n">G2plt</span><span class="o">.</span><span class="n">Plot3DSngl</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">Data</span><span class="o">=</span><span class="n">controls</span><span class="p">,</span><span class="n">hklRef</span><span class="o">=</span><span class="n">refList</span><span class="p">,</span><span class="n">Title</span><span class="o">=</span><span class="n">phaseName</span><span class="p">)</span> 3874 2744 2745 <span class="k">def</span> <span class="nf">OnPlotAll3DHKL</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 2746 <span class="n">choices</span> <span class="o">=</span> <span class="n">GetPatternTreeDataNames</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,[</span><span class="s">'HKLF'</span><span class="p">,])</span> 2747 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">G2MultiChoiceDialog</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span> <span class="s">'Select reflection sets to plot'</span><span class="p">,</span> 2748 <span class="s">'Use data'</span><span class="p">,</span><span class="n">choices</span><span class="p">)</span> 2749 <span class="k">try</span><span class="p">:</span> 2750 <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span> 2751 <span class="n">refNames</span> <span class="o">=</span> <span class="p">[</span><span class="n">choices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetSelections</span><span class="p">()]</span> 2752 <span class="k">else</span><span class="p">:</span> 2753 <span class="k">return</span> 2754 <span class="k">finally</span><span class="p">:</span> 2755 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 2756 <span class="n">refList</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> 2757 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">refNames</span><span class="p">:</span> 2758 <span class="n">Id</span> <span class="o">=</span> <span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> 2759 <span class="n">reflData</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">Id</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> 2760 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">refList</span><span class="p">):</span> 2761 <span class="n">refList</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">refList</span><span class="p">,</span><span class="n">reflData</span><span class="p">[</span><span class="s">'RefList'</span><span class="p">]))</span> 2762 <span class="k">else</span><span class="p">:</span> 2763 <span class="n">refList</span> <span class="o">=</span> <span class="n">reflData</span><span class="p">[</span><span class="s">'RefList'</span><span class="p">]</span> 2764 2765 <span class="n">FoMax</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">Super</span><span class="p">])</span> 2766 <span class="n">Hmin</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">2</span><span class="p">]))])</span> 2767 <span class="n">Hmax</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">2</span><span class="p">]))])</span> 2768 <span class="n">Vpoint</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">])),</span><span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">refList</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">2</span><span class="p">]))]</span> 2769 <span class="n">controls</span> <span class="o">=</span> <span class="p">{</span><span class="s">'Type'</span> <span class="p">:</span> <span class="s">'Fosq'</span><span class="p">,</span><span class="s">'Iscale'</span> <span class="p">:</span> <span class="bp">False</span><span class="p">,</span><span class="s">'HKLmax'</span> <span class="p">:</span> <span class="n">Hmax</span><span class="p">,</span><span class="s">'HKLmin'</span> <span class="p">:</span> <span class="n">Hmin</span><span class="p">,</span> 2770 <span class="s">'FoMax'</span> <span class="p">:</span> <span class="n">FoMax</span><span class="p">,</span><span class="s">'Scale'</span> <span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span><span class="s">'Drawing'</span><span class="p">:{</span><span class="s">'viewPoint'</span><span class="p">:[</span><span class="n">Vpoint</span><span class="p">,[]],</span><span class="s">'default'</span><span class="p">:</span><span class="n">Vpoint</span><span class="p">[:],</span> 2771 <span class="s">'backColor'</span><span class="p">:[</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span><span class="s">'depthFog'</span><span class="p">:</span><span class="bp">False</span><span class="p">,</span><span class="s">'Zclip'</span><span class="p">:</span><span class="mf">10.0</span><span class="p">,</span><span class="s">'cameraPos'</span><span class="p">:</span><span class="mf">10.</span><span class="p">,</span><span class="s">'Zstep'</span><span class="p">:</span><span class="mf">0.05</span><span class="p">,</span> 2772 <span class="s">'Scale'</span><span class="p">:</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'oldxy'</span><span class="p">:[],</span><span class="s">'viewDir'</span><span class="p">:[</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">]},</span><span class="s">'Super'</span><span class="p">:</span><span class="n">Super</span><span class="p">,</span><span class="s">'SuperVec'</span><span class="p">:</span><span class="n">SuperVec</span><span class="p">}</span> 2773 <span class="n">G2plt</span><span class="o">.</span><span class="n">Plot3DSngl</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">Data</span><span class="o">=</span><span class="n">controls</span><span class="p">,</span><span class="n">hklRef</span><span class="o">=</span><span class="n">refList</span><span class="p">,</span><span class="n">Title</span><span class="o">=</span><span class="n">phaseName</span><span class="p">)</span> 2774 2775 3875 2776 <span class="k">def</span> <span class="nf">OnErrorAnalysis</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 3876 2777 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotDeltSig</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">kind</span><span class="p">)</span> … … 3918 2819 <span class="k">elif</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'HKLF'</span><span class="p">,]:</span> 3919 2820 <span class="n">SetDataMenuBar</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">HKLFMenu</span><span class="p">)</span> 3920 <span class="c"># G2frame.dataFrame.Bind(wx.EVT_MENU, OnErrorAnalysis, id=wxID_PWDANALYSIS)</span>2821 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnErrorAnalysis</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_PWDANALYSIS</span><span class="p">)</span> 3921 2822 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnPlot3DHKL</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_PWD3DHKLPLOT</span><span class="p">)</span> 2823 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnPlotAll3DHKL</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">wxID_3DALLHKLPLOT</span><span class="p">)</span> 3922 2824 <span class="c"># G2frame.dataFrame.Bind(wx.EVT_MENU, onCopySelectedItems, id=wxID_PWDCOPY)</span> 3923 2825 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span> … … 4030 2932 <span class="sd">'''Called from GSASII.OnPatternTreeSelChanged when a item is selected on the tree </span> 4031 2933 <span class="sd"> '''</span> 4032 4033 <span class="c"># print G2frame.PatternTree.GetItemText(item)</span> 2934 <span class="n">pickName</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 2935 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PickIdText</span> <span class="o">==</span> <span class="n">pickName</span><span class="p">:</span> 2936 <span class="k">return</span> 4034 2937 4035 2938 <span class="n">oldPage</span> <span class="o">=</span> <span class="bp">None</span> <span class="c"># will be set later if already on a Phase item</span> … … 4063 2966 4064 2967 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Raise</span><span class="p">()</span> 4065 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="mi">0</span> 2968 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span> 2969 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickIdText</span> <span class="o">=</span> <span class="bp">None</span> 4066 2970 <span class="n">parentID</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">root</span> 4067 2971 <span class="c">#for i in G2frame.ExportPattern: i.Enable(False)</span> … … 4071 2975 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">:</span> 4072 2976 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">item</span> 4073 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4074 2977 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Notebook'</span><span class="p">:</span> 4075 2978 <span class="n">SetDataMenuBar</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">DataNotebookMenu</span><span class="p">)</span> … … 4149 3052 <span class="n">value</span><span class="o">=</span><span class="s">'Select one phase to see its parameters'</span><span class="p">)</span> 4150 3053 <span class="k">elif</span> <span class="s">'I(Q)'</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">):</span> 4151 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4152 3054 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4153 3055 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">,</span><span class="s">'PDF Controls'</span><span class="p">))</span> … … 4155 3057 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotISFG</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">'I(Q)'</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> 4156 3058 <span class="k">elif</span> <span class="s">'S(Q)'</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">):</span> 4157 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4158 3059 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4159 3060 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">,</span><span class="s">'PDF Controls'</span><span class="p">))</span> … … 4161 3062 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotISFG</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">'S(Q)'</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> 4162 3063 <span class="k">elif</span> <span class="s">'F(Q)'</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">):</span> 4163 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4164 3064 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4165 3065 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">,</span><span class="s">'PDF Controls'</span><span class="p">))</span> … … 4167 3067 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotISFG</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">'F(Q)'</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> 4168 3068 <span class="k">elif</span> <span class="s">'G(R)'</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">):</span> 4169 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4170 3069 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4171 3070 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">,</span><span class="s">'PDF Controls'</span><span class="p">))</span> … … 4173 3072 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotISFG</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s">'G(R)'</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> 4174 3073 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">parentID</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Phases'</span><span class="p">:</span> 4175 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4176 3074 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4177 3075 <span class="n">G2phG</span><span class="o">.</span><span class="n">UpdatePhaseData</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">item</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">oldPage</span><span class="p">)</span> … … 4179 3077 <span class="n">SetDataMenuBar</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">DataCommentsMenu</span><span class="p">)</span> 4180 3078 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4181 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4182 3079 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4183 3080 <span class="n">UpdateComments</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 4184 3081 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Image Controls'</span><span class="p">:</span> 4185 3082 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">'Image Controls'</span><span class="p">)</span> 4186 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4187 3083 <span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4188 3084 <span class="n">masks</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span> … … 4193 3089 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Masks'</span><span class="p">:</span> 4194 3090 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">'Masks'</span><span class="p">)</span> 4195 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4196 3091 <span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4197 3092 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> … … 4200 3095 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Stress/Strain'</span><span class="p">:</span> 4201 3096 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">'Stress/Strain'</span><span class="p">)</span> 4202 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4203 3097 <span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4204 3098 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> … … 4209 3103 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4210 3104 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">ExportPDF</span><span class="p">:</span> <span class="n">i</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> 4211 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4212 3105 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4213 3106 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdatePDFGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> … … 4219 3112 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4220 3113 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">ExportPeakList</span><span class="p">:</span> <span class="n">i</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> 4221 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4222 3114 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4223 3115 <span class="c">#patch</span> … … 4230 3122 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Background'</span><span class="p">:</span> 4231 3123 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4232 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4233 3124 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4234 3125 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateBackground</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> … … 4237 3128 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4238 3129 <span class="n">datatype</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">)[:</span><span class="mi">4</span><span class="p">]</span> 4239 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4240 3130 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4241 3131 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateLimitsGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">datatype</span><span class="p">)</span> … … 4243 3133 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Instrument Parameters'</span><span class="p">:</span> 4244 3134 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4245 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4246 3135 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> 4247 3136 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateInstrumentGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> … … 4250 3139 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Models'</span><span class="p">:</span> 4251 3140 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4252 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4253 3141 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4254 3142 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateModelsGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> … … 4258 3146 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Substances'</span><span class="p">:</span> 4259 3147 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4260 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4261 3148 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4262 3149 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateSubstanceGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 4263 3150 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Sample Parameters'</span><span class="p">:</span> 4264 3151 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4265 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4266 3152 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4267 3153 <span class="n">datatype</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">)[</span><span class="mi">2</span><span class="p">][:</span><span class="mi">4</span><span class="p">]</span> … … 4279 3165 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4280 3166 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">ExportPeakList</span><span class="p">:</span> <span class="n">i</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span> 4281 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4282 3167 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4283 3168 <span class="c">#patch</span> … … 4293 3178 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Unit Cells List'</span><span class="p">:</span> 4294 3179 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4295 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4296 3180 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4297 3181 <span class="k">if</span> <span class="ow">not</span> <span class="n">data</span><span class="p">:</span> … … 4314 3198 <span class="k">elif</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="s">'Reflection Lists'</span><span class="p">:</span> <span class="c">#powder reflections</span> 4315 3199 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemParent</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4316 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span> <span class="o">=</span> <span class="n">item</span>4317 3200 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 4318 3201 <span class="n">G2frame</span><span class="o">.</span><span class="n">RefList</span> <span class="o">=</span> <span class="s">''</span> … … 4326 3209 <span class="n">data</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternId</span><span class="p">)</span> 4327 3210 <span class="n">G2pdG</span><span class="o">.</span><span class="n">UpdateReflectionGrid</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">HKLF</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">Name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> 3211 3212 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span><span class="p">:</span> 3213 <span class="n">G2frame</span><span class="o">.</span><span class="n">PickIdText</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">GetTreeItemsList</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PickId</span><span class="p">)</span> 4328 3214 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">Raise</span><span class="p">()</span> 4329 3215 </div> … … 4346 3232 <span class="k">else</span><span class="p">:</span> 4347 3233 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">SetMenuBar</span><span class="p">(</span><span class="n">menu</span><span class="p">)</span> 4348 </div>4349 <div class="viewcode-block" id="HorizontalLine"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.HorizontalLine">[docs]</a><span class="k">def</span> <span class="nf">HorizontalLine</span><span class="p">(</span><span class="n">sizer</span><span class="p">,</span><span class="n">parent</span><span class="p">):</span>4350 <span class="sd">'''Draws a horizontal line as wide as the window.</span>4351 <span class="sd"> This shows up on the Mac as a very thin line, no matter what I do</span>4352 <span class="sd"> '''</span>4353 <span class="n">line</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticLine</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</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">LI_HORIZONTAL</span><span class="p">)</span>4354 <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALIGN_CENTER</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>4355 3234 </div> 4356 3235 <div class="viewcode-block" id="HowDidIgetHere"><a class="viewcode-back" href="../GSASIIGUIr.html#GSASIIgrid.HowDidIgetHere">[docs]</a><span class="k">def</span> <span class="nf">HowDidIgetHere</span><span class="p">():</span>
Note: See TracChangeset
for help on using the changeset viewer.