From a3db3a90b463338e10778ee1edcca9c06edbd763 Mon Sep 17 00:00:00 2001 From: Elena.Budnik <ebudnik@irap.omp.eu> Date: Tue, 29 Jan 2019 16:21:44 +0100 Subject: [PATCH] calcularor_restructuring --- generic_data/Functions/constants.xml | 56 ++++++++++++++++++++++++++++---------------------------- generic_data/Functions/functions.xml | 8 ++++++-- js/app/models/Constant.js | 1 + js/app/views/CalculatorUI.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------ 4 files changed, 90 insertions(+), 48 deletions(-) diff --git a/generic_data/Functions/constants.xml b/generic_data/Functions/constants.xml index a8dca04..008116a 100755 --- a/generic_data/Functions/constants.xml +++ b/generic_data/Functions/constants.xml @@ -1,31 +1,31 @@ <?xml version="1.0"?> <constants> - <constant info="astronomical unit" name="AU" units="m">1.49598e+11</constant> - <constant info="Boltzmann constant" name="k" units="J/K">1.38054e-23</constant> - <constant info="kelvin to electron-volt" name="K2eV" units="eV/K">8.622e-5</constant> - <constant info="electron-volt to kelvin" name="eV2K" units="K/eV">1.160e4</constant> - <constant info="proton mass" name="m_p" units="kg">1.67e-27</constant> - <constant info="electron mass" name="m_e" units="kg">9.1091e-31</constant> - <constant info="speed of light in vacuum" name="c" units="m/s">2.99792e+08</constant> - <constant info="elementary charge" name="q_e" units="C">1.6021e-19</constant> - <constant info='electric constant' name="epsilon_0" units="F/m">8.85416e-12</constant> - <constant info='magnetic constant' name="mu_0" units="H/m">1.25664e-06</constant> - <constant info="pi" name="pi">3.14159</constant> - <constant info="rad2deg" name="rad2deg" units="deg/rad">57.2958</constant> - <constant info="deg2rad" name="deg2rad" units="rad/deg">0.0174533</constant> - <constant info="gravitational constant" name="G" units="m3/kg/s2">6.674e-11</constant> - <constant info="acceleration of gravity at Earth" name="g" units="m/s2">9.81</constant> - <constant info="Planck constant" name="h" units="Js">6.626e-34</constant> - <constant info="Avogadro number" name="NA" units="1/mol">6.0221367e+23</constant> - <constant info="Mercury equatorial radius" name="Rme" units="m">2.4397e+06</constant> - <constant info="Venus equatorial radius" name="Rv" units="m">6.0518e+06</constant> - <constant info="Earth equatorial radius" name="Re" units="m">6.3712e+06</constant> - <constant info="Mars equatorial radius" name="Rma" units="m">3.3962e+06</constant> - <constant info="Jupiter equatorial radius" name="Rj" units="m">71.492e+06</constant> - <constant info="Saturn equatorial radius" name="Rs" units="m">60.268e+06</constant> - <constant info="Uranus equatorial radius" name="Ru" units="m">25.559+06</constant> - <constant info="Neptune equatorial radius" name="Rn" units="m">24.764+06</constant> - <constant info="Moon equatorial radius" name="Rmo" units="m">1.738e+06</constant> - <constant info="Pluto equatorial radius" name="Rpl" units="m">1.195e+06</constant> - <constant info="Sun equatorial radius" name="Rsun" units="m">6.95e+08</constant> + <constant info="astronomical unit" name="AU" units="m" kind="space">1.49598e+11</constant> + <constant info="Boltzmann constant" name="k" units="J/K" kind="physics">1.38054e-23</constant> + <constant info="kelvin to electron-volt" name="K2eV" units="eV/K" kind="units">8.622e-5</constant> + <constant info="electron-volt to kelvin" name="eV2K" units="K/eV" kind="units">1.160e4</constant> + <constant info="proton mass" name="m_p" units="kg" kind="physics">1.67e-27</constant> + <constant info="electron mass" name="m_e" units="kg" kind="physics">9.1091e-31</constant> + <constant info="speed of light in vacuum" name="c" units="m/s" kind="physics">2.99792e+08</constant> + <constant info="elementary charge" name="q_e" units="C" kind="physics">1.6021e-19</constant> + <constant info='electric constant' name="epsilon_0" units="F/m" kind="physics">8.85416e-12</constant> + <constant info='magnetic constant' name="mu_0" units="H/m" kind="physics">1.25664e-06</constant> + <constant info="pi" name="pi" kind="physics">3.14159</constant> + <constant info="rad2deg" name="rad2deg" units="deg/rad" kind="units">57.2958</constant> + <constant info="deg2rad" name="deg2rad" units="rad/deg" kind="units">0.0174533</constant> + <constant info="gravitational constant" name="G" units="m3/kg/s2" kind="physics">6.674e-11</constant> + <constant info="acceleration of gravity at Earth" name="g" units="m/s2" kind="physics">9.81</constant> + <constant info="Planck constant" name="h" units="Js" kind="physics">6.626e-34</constant> + <constant info="Avogadro number" name="NA" units="1/mol" kind="physics">6.0221367e+23</constant> + <constant info="Mercury equatorial radius" name="Rme" units="m" kind="space">2.4397e+06</constant> + <constant info="Venus equatorial radius" name="Rv" units="m" kind="space">6.0518e+06</constant> + <constant info="Earth equatorial radius" name="Re" units="m" kind="space" >6.3712e+06</constant> + <constant info="Mars equatorial radius" name="Rma" units="m" kind="space">3.3962e+06</constant> + <constant info="Jupiter equatorial radius" name="Rj" units="m" kind="space">71.492e+06</constant> + <constant info="Saturn equatorial radius" name="Rs" units="m" kind="space">60.268e+06</constant> + <constant info="Uranus equatorial radius" name="Ru" units="m" kind="space">25.559+06</constant> + <constant info="Neptune equatorial radius" name="Rn" units="m" kind="space">24.764+06</constant> + <constant info="Moon equatorial radius" name="Rmo" units="m" kind="space">1.738e+06</constant> + <constant info="Pluto equatorial radius" name="Rpl" units="m" kind="space">1.195e+06</constant> + <constant info="Sun equatorial radius" name="Rsun" units="m" kind="space">6.95e+08</constant> </constants> diff --git a/generic_data/Functions/functions.xml b/generic_data/Functions/functions.xml index f14c960..049cade 100644 --- a/generic_data/Functions/functions.xml +++ b/generic_data/Functions/functions.xml @@ -88,14 +88,18 @@ <prompt/> <info_brief>GSE to SM transformation</info_brief> </function>--> - <function name="cross(,)" params="2" kind="math"> + <function name="cross(,)" params="2" kind="vectors"> <info_brief>Cross product</info_brief> <new_kernel>cross</new_kernel> </function> - <function name="dot(,)" params="2" kind="math"> + <function name="dot(,)" params="2" kind="vectors"> <info_brief>Dot product</info_brief> <new_kernel>dot</new_kernel> </function> + <function name="module()" kind="vectors"> + <info_brief>Magnitude</info_brief> + <new_kernel>magnitude</new_kernel> + </function> <function name="abs()" kind="math"> <info_brief>Absolute value</info_brief> <new_kernel>abs</new_kernel> diff --git a/js/app/models/Constant.js b/js/app/models/Constant.js index 39b95e2..7c211d2 100644 --- a/js/app/models/Constant.js +++ b/js/app/models/Constant.js @@ -20,6 +20,7 @@ Ext.define('amdaModel.Constant', { fields : [ {name: 'name', mapping: '@name', type:'string'}, + {name: 'kind', mapping: '@kind', type: 'string', defaultValue: 'space'}, {name: 'info', mapping: '@info', type:'string'}, {name: 'units', mapping: '@units', type: 'string', defaultValue: ''}, {name: 'value', mapping: ' ', type: 'string'} diff --git a/js/app/views/CalculatorUI.js b/js/app/views/CalculatorUI.js index c8f75ed..687415a 100644 --- a/js/app/views/CalculatorUI.js +++ b/js/app/views/CalculatorUI.js @@ -15,6 +15,7 @@ */ var CalculatorData = ['1','2','3','4','5','6','7','8','9','0','(',')','[',']','+','-','*','/','^', '.','>','<', '&', '|']; +// var CalculatorData = ['1','2','3','4','5','6','7','8','9','0','(',')','[',']','+','-','*','/','^', '.','>','>=', '=', '<=', '<', '&', '|']; Ext.define('amdaUI.CalculatorUI', { extend: 'Ext.util.Observable', @@ -93,12 +94,12 @@ Ext.define('amdaUI.CalculatorUI', { scope : this, callback: function(records, operation, success) { - this.createConstantBtns(); + this.createAllConstantBtns(); } }); } else - this.createConstantBtns(); + this.createAllConstantBtns(); //load functions store if (!amdaUI.CalculatorUI.functionStore) @@ -148,8 +149,10 @@ Ext.define('amdaUI.CalculatorUI', { defaults: { xtype: 'button', columnWidth: .11}, items: this.getItems('Calculator') } , { - title: 'Constants', layout: 'column', - defaults: { xtype: 'button', columnWidth: .20}, + title: 'Constants', xtype:'tabpanel', //iconCls: 'tabs', + enableTabScroll: true, tabPosition: 'bottom', + defaults: { frame: true, border: false, plain: true, layout: 'column', autoScroll:true}, + activeTab: 0, id : 'calc_tab_const_id' }, { title: 'Functions', xtype:'tabpanel', //iconCls: 'tabs', @@ -337,14 +340,50 @@ Ext.define('amdaUI.CalculatorUI', { return btns; }, - createConstantBtns : function(){ + createAllFunctionBtns : function() + { + this.createFunctionBtns('MathFunctions','Simple Maths'); + this.createFunctionBtns('VectorFunctions','Vector Functions'); + this.createFunctionBtns('TimeFunctions','Statistics'); + this.createFunctionBtns('FunctionsSliding','Statistics/Sliding'); + this.createFunctionBtns('AmdaFunctions','Special'); + }, + + createAllConstantBtns : function() + { + this.createConstantBtns('Space','Planets Constants'); + this.createConstantBtns('Physics','Physics Constants'); + this.createConstantBtns('Units','Units Conversion'); + }, + + createConstantBtns : function(item, tabTitle) + { var constTab = this.win.query('#calc_tab_const_id'); - + if (constTab.length < 1) - return; - + return; + + switch (item) + { + case 'Space' : + amdaUI.CalculatorUI.constantStore.filter('kind','space'); + break; + case 'Physics' : + amdaUI.CalculatorUI.constantStore.filter('kind','physics'); + break; + case 'Units' : + amdaUI.CalculatorUI.constantStore.filter('kind','units'); + break; + } + + var crtTab = constTab[0].add( + { + title : tabTitle, + defaults: { xtype: 'button', columnWidth: .20} + }); + amdaUI.CalculatorUI.constantStore.each( function(c){ - constTab[0].add( + crtTab.add( { text: c.get('name'), tooltip: c.get('units') == '' ? c.get('info')+'<br/>'+c.get('value') : @@ -365,15 +404,10 @@ Ext.define('amdaUI.CalculatorUI', { } }); },this); - }, - - createAllFunctionBtns : function() - { - this.createFunctionBtns('MathFunctions','Simple Maths'); - this.createFunctionBtns('TimeFunctions','Statistics'); - this.createFunctionBtns('FunctionsSliding','Statistics/Sliding'); - this.createFunctionBtns('AmdaFunctions','Space Physics'); - }, + + //clear filter + amdaUI.CalculatorUI.constantStore.clearFilter(); + }, createFunctionBtns : function(item, tabTitle) { @@ -396,6 +430,9 @@ Ext.define('amdaUI.CalculatorUI', { case 'FunctionsSliding' : amdaUI.CalculatorUI.functionStore.filter('kind','sliding'); break; + case 'VectorFunctions' : + amdaUI.CalculatorUI.functionStore.filter('kind','vector'); + break; } var crtTab = funcTab[0].add( -- libgit2 0.21.2