Commit a3db3a90b463338e10778ee1edcca9c06edbd763

Authored by Elena.Budnik
1 parent c05ca21a

calcularor_restructuring

generic_data/Functions/constants.xml
1 1 <?xml version="1.0"?>
2 2 <constants>
3   - <constant info="astronomical unit" name="AU" units="m">1.49598e+11</constant>
4   - <constant info="Boltzmann constant" name="k" units="J/K">1.38054e-23</constant>
5   - <constant info="kelvin to electron-volt" name="K2eV" units="eV/K">8.622e-5</constant>
6   - <constant info="electron-volt to kelvin" name="eV2K" units="K/eV">1.160e4</constant>
7   - <constant info="proton mass" name="m_p" units="kg">1.67e-27</constant>
8   - <constant info="electron mass" name="m_e" units="kg">9.1091e-31</constant>
9   - <constant info="speed of light in vacuum" name="c" units="m/s">2.99792e+08</constant>
10   - <constant info="elementary charge" name="q_e" units="C">1.6021e-19</constant>
11   - <constant info='electric constant' name="epsilon_0" units="F/m">8.85416e-12</constant>
12   - <constant info='magnetic constant' name="mu_0" units="H/m">1.25664e-06</constant>
13   - <constant info="pi" name="pi">3.14159</constant>
14   - <constant info="rad2deg" name="rad2deg" units="deg/rad">57.2958</constant>
15   - <constant info="deg2rad" name="deg2rad" units="rad/deg">0.0174533</constant>
16   - <constant info="gravitational constant" name="G" units="m3/kg/s2">6.674e-11</constant>
17   - <constant info="acceleration of gravity at Earth" name="g" units="m/s2">9.81</constant>
18   - <constant info="Planck constant" name="h" units="Js">6.626e-34</constant>
19   - <constant info="Avogadro number" name="NA" units="1/mol">6.0221367e+23</constant>
20   - <constant info="Mercury equatorial radius" name="Rme" units="m">2.4397e+06</constant>
21   - <constant info="Venus equatorial radius" name="Rv" units="m">6.0518e+06</constant>
22   - <constant info="Earth equatorial radius" name="Re" units="m">6.3712e+06</constant>
23   - <constant info="Mars equatorial radius" name="Rma" units="m">3.3962e+06</constant>
24   - <constant info="Jupiter equatorial radius" name="Rj" units="m">71.492e+06</constant>
25   - <constant info="Saturn equatorial radius" name="Rs" units="m">60.268e+06</constant>
26   - <constant info="Uranus equatorial radius" name="Ru" units="m">25.559+06</constant>
27   - <constant info="Neptune equatorial radius" name="Rn" units="m">24.764+06</constant>
28   - <constant info="Moon equatorial radius" name="Rmo" units="m">1.738e+06</constant>
29   - <constant info="Pluto equatorial radius" name="Rpl" units="m">1.195e+06</constant>
30   - <constant info="Sun equatorial radius" name="Rsun" units="m">6.95e+08</constant>
  3 + <constant info="astronomical unit" name="AU" units="m" kind="space">1.49598e+11</constant>
  4 + <constant info="Boltzmann constant" name="k" units="J/K" kind="physics">1.38054e-23</constant>
  5 + <constant info="kelvin to electron-volt" name="K2eV" units="eV/K" kind="units">8.622e-5</constant>
  6 + <constant info="electron-volt to kelvin" name="eV2K" units="K/eV" kind="units">1.160e4</constant>
  7 + <constant info="proton mass" name="m_p" units="kg" kind="physics">1.67e-27</constant>
  8 + <constant info="electron mass" name="m_e" units="kg" kind="physics">9.1091e-31</constant>
  9 + <constant info="speed of light in vacuum" name="c" units="m/s" kind="physics">2.99792e+08</constant>
  10 + <constant info="elementary charge" name="q_e" units="C" kind="physics">1.6021e-19</constant>
  11 + <constant info='electric constant' name="epsilon_0" units="F/m" kind="physics">8.85416e-12</constant>
  12 + <constant info='magnetic constant' name="mu_0" units="H/m" kind="physics">1.25664e-06</constant>
  13 + <constant info="pi" name="pi" kind="physics">3.14159</constant>
  14 + <constant info="rad2deg" name="rad2deg" units="deg/rad" kind="units">57.2958</constant>
  15 + <constant info="deg2rad" name="deg2rad" units="rad/deg" kind="units">0.0174533</constant>
  16 + <constant info="gravitational constant" name="G" units="m3/kg/s2" kind="physics">6.674e-11</constant>
  17 + <constant info="acceleration of gravity at Earth" name="g" units="m/s2" kind="physics">9.81</constant>
  18 + <constant info="Planck constant" name="h" units="Js" kind="physics">6.626e-34</constant>
  19 + <constant info="Avogadro number" name="NA" units="1/mol" kind="physics">6.0221367e+23</constant>
  20 + <constant info="Mercury equatorial radius" name="Rme" units="m" kind="space">2.4397e+06</constant>
  21 + <constant info="Venus equatorial radius" name="Rv" units="m" kind="space">6.0518e+06</constant>
  22 + <constant info="Earth equatorial radius" name="Re" units="m" kind="space" >6.3712e+06</constant>
  23 + <constant info="Mars equatorial radius" name="Rma" units="m" kind="space">3.3962e+06</constant>
  24 + <constant info="Jupiter equatorial radius" name="Rj" units="m" kind="space">71.492e+06</constant>
  25 + <constant info="Saturn equatorial radius" name="Rs" units="m" kind="space">60.268e+06</constant>
  26 + <constant info="Uranus equatorial radius" name="Ru" units="m" kind="space">25.559+06</constant>
  27 + <constant info="Neptune equatorial radius" name="Rn" units="m" kind="space">24.764+06</constant>
  28 + <constant info="Moon equatorial radius" name="Rmo" units="m" kind="space">1.738e+06</constant>
  29 + <constant info="Pluto equatorial radius" name="Rpl" units="m" kind="space">1.195e+06</constant>
  30 + <constant info="Sun equatorial radius" name="Rsun" units="m" kind="space">6.95e+08</constant>
31 31 </constants>
... ...
generic_data/Functions/functions.xml
... ... @@ -88,14 +88,18 @@
88 88 <prompt/>
89 89 <info_brief>GSE to SM transformation</info_brief>
90 90 </function>-->
91   - <function name="cross(,)" params="2" kind="math">
  91 + <function name="cross(,)" params="2" kind="vectors">
92 92 <info_brief>Cross product</info_brief>
93 93 <new_kernel>cross</new_kernel>
94 94 </function>
95   - <function name="dot(,)" params="2" kind="math">
  95 + <function name="dot(,)" params="2" kind="vectors">
96 96 <info_brief>Dot product</info_brief>
97 97 <new_kernel>dot</new_kernel>
98 98 </function>
  99 + <function name="module()" kind="vectors">
  100 + <info_brief>Magnitude</info_brief>
  101 + <new_kernel>magnitude</new_kernel>
  102 + </function>
99 103 <function name="abs()" kind="math">
100 104 <info_brief>Absolute value</info_brief>
101 105 <new_kernel>abs</new_kernel>
... ...
js/app/models/Constant.js
... ... @@ -20,6 +20,7 @@ Ext.define(&#39;amdaModel.Constant&#39;, {
20 20  
21 21 fields : [
22 22 {name: 'name', mapping: '@name', type:'string'},
  23 + {name: 'kind', mapping: '@kind', type: 'string', defaultValue: 'space'},
23 24 {name: 'info', mapping: '@info', type:'string'},
24 25 {name: 'units', mapping: '@units', type: 'string', defaultValue: ''},
25 26 {name: 'value', mapping: ' ', type: 'string'}
... ...
js/app/views/CalculatorUI.js
... ... @@ -15,6 +15,7 @@
15 15 */
16 16  
17 17 var CalculatorData = ['1','2','3','4','5','6','7','8','9','0','(',')','[',']','+','-','*','/','^', '.','>','<', '&', '|'];
  18 +// var CalculatorData = ['1','2','3','4','5','6','7','8','9','0','(',')','[',']','+','-','*','/','^', '.','>','>=', '=', '<=', '<', '&', '|'];
18 19  
19 20 Ext.define('amdaUI.CalculatorUI', {
20 21 extend: 'Ext.util.Observable',
... ... @@ -93,12 +94,12 @@ Ext.define(&#39;amdaUI.CalculatorUI&#39;, {
93 94 scope : this,
94 95 callback: function(records, operation, success)
95 96 {
96   - this.createConstantBtns();
  97 + this.createAllConstantBtns();
97 98 }
98 99 });
99 100 }
100 101 else
101   - this.createConstantBtns();
  102 + this.createAllConstantBtns();
102 103  
103 104 //load functions store
104 105 if (!amdaUI.CalculatorUI.functionStore)
... ... @@ -148,8 +149,10 @@ Ext.define(&#39;amdaUI.CalculatorUI&#39;, {
148 149 defaults: { xtype: 'button', columnWidth: .11},
149 150 items: this.getItems('Calculator')
150 151 } , {
151   - title: 'Constants', layout: 'column',
152   - defaults: { xtype: 'button', columnWidth: .20},
  152 + title: 'Constants', xtype:'tabpanel', //iconCls: 'tabs',
  153 + enableTabScroll: true, tabPosition: 'bottom',
  154 + defaults: { frame: true, border: false, plain: true, layout: 'column', autoScroll:true},
  155 + activeTab: 0,
153 156 id : 'calc_tab_const_id'
154 157 }, {
155 158 title: 'Functions', xtype:'tabpanel', //iconCls: 'tabs',
... ... @@ -337,14 +340,50 @@ Ext.define(&#39;amdaUI.CalculatorUI&#39;, {
337 340 return btns;
338 341 },
339 342  
340   - createConstantBtns : function(){
  343 + createAllFunctionBtns : function()
  344 + {
  345 + this.createFunctionBtns('MathFunctions','Simple Maths');
  346 + this.createFunctionBtns('VectorFunctions','Vector Functions');
  347 + this.createFunctionBtns('TimeFunctions','Statistics');
  348 + this.createFunctionBtns('FunctionsSliding','Statistics/Sliding');
  349 + this.createFunctionBtns('AmdaFunctions','Special');
  350 + },
  351 +
  352 + createAllConstantBtns : function()
  353 + {
  354 + this.createConstantBtns('Space','Planets Constants');
  355 + this.createConstantBtns('Physics','Physics Constants');
  356 + this.createConstantBtns('Units','Units Conversion');
  357 + },
  358 +
  359 + createConstantBtns : function(item, tabTitle)
  360 + {
341 361 var constTab = this.win.query('#calc_tab_const_id');
342   -
  362 +
343 363 if (constTab.length < 1)
344   - return;
345   -
  364 + return;
  365 +
  366 + switch (item)
  367 + {
  368 + case 'Space' :
  369 + amdaUI.CalculatorUI.constantStore.filter('kind','space');
  370 + break;
  371 + case 'Physics' :
  372 + amdaUI.CalculatorUI.constantStore.filter('kind','physics');
  373 + break;
  374 + case 'Units' :
  375 + amdaUI.CalculatorUI.constantStore.filter('kind','units');
  376 + break;
  377 + }
  378 +
  379 + var crtTab = constTab[0].add(
  380 + {
  381 + title : tabTitle,
  382 + defaults: { xtype: 'button', columnWidth: .20}
  383 + });
  384 +
346 385 amdaUI.CalculatorUI.constantStore.each( function(c){
347   - constTab[0].add(
  386 + crtTab.add(
348 387 {
349 388 text: c.get('name'),
350 389 tooltip: c.get('units') == '' ? c.get('info')+'<br/>'+c.get('value') :
... ... @@ -365,15 +404,10 @@ Ext.define(&#39;amdaUI.CalculatorUI&#39;, {
365 404 }
366 405 });
367 406 },this);
368   - },
369   -
370   - createAllFunctionBtns : function()
371   - {
372   - this.createFunctionBtns('MathFunctions','Simple Maths');
373   - this.createFunctionBtns('TimeFunctions','Statistics');
374   - this.createFunctionBtns('FunctionsSliding','Statistics/Sliding');
375   - this.createFunctionBtns('AmdaFunctions','Space Physics');
376   - },
  407 +
  408 + //clear filter
  409 + amdaUI.CalculatorUI.constantStore.clearFilter();
  410 + },
377 411  
378 412 createFunctionBtns : function(item, tabTitle)
379 413 {
... ... @@ -396,6 +430,9 @@ Ext.define(&#39;amdaUI.CalculatorUI&#39;, {
396 430 case 'FunctionsSliding' :
397 431 amdaUI.CalculatorUI.functionStore.filter('kind','sliding');
398 432 break;
  433 + case 'VectorFunctions' :
  434 + amdaUI.CalculatorUI.functionStore.filter('kind','vector');
  435 + break;
399 436 }
400 437  
401 438 var crtTab = funcTab[0].add(
... ...