Kaynağa Gözat

add refractiveindex.info as submodule

Konstantin Ladutenko 3 yıl önce
ebeveyn
işleme
63921447d4

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "guiapp/public/refractiveindex.info-database"]
+	path = guiapp/public/refractiveindex.info-database
+	url = git@github.com:kostyfisik/refractiveindex.info-database.git

+ 1 - 0
guiapp/public/refractiveindex.info-database

@@ -0,0 +1 @@
+Subproject commit 5ff2dfb92672ddec0779609be6e146a4da62ab08

+ 16 - 1
guiapp/src/components/GetSourceParameters.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="row items-baseline">
+
     <div class="col-xs-12 col-sm-auto text-weight-bold text-center q-px-md q-py-sm">
+      <q-tooltip v-if="isInfoMode"
+                 anchor="top middle"
+                 self="center middle"
+      >
+        current  source settings<br>
+      </q-tooltip>
       <div :style="flexRowTitleStyle"> {{rowTitle}} </div>
     </div>
     <div class="col-xs-grow col-sm">
@@ -11,6 +18,7 @@
             v-model:is-showing-help="isShowingHelpForInputWithUnits"
             :initial-expression="fromSource.toString()"
             :units="sourceUnits"
+            :is-info-mode="isInfoMode"
             title="from"
         /></div>
         <div class="col-auto"><input-with-units
@@ -18,9 +26,10 @@
             v-model:is-showing-help="isShowingHelpForInputWithUnits"
             :initial-expression="toSource.toString()"
             :units="sourceUnits"
+            :is-info-mode="isInfoMode"
             title="to"
         /></div>
-        <div class="col-auto">
+        <div v-if="!isInfoMode" class="col-auto">
           <input-with-units
             v-model:input-result="pointsSource"
             v-model:is-showing-help="isShowingHelpForInputWithUnits"
@@ -51,6 +60,12 @@ export default defineComponent({
 
   name: 'GetSourceParameters',
   components: {InputWithUnits,},
+  props: {
+    isInfoMode: {
+      type: Boolean,
+      default: false
+    },
+  },
 
   setup() {
     const isPointsToggle = ref(true)

+ 14 - 3
guiapp/src/components/InputWithUnits.vue

@@ -7,13 +7,19 @@
     >
       {{formatNumber(localTooltipText,inputWithUnitsTooltipDigits)}}
     </q-tooltip>
-    <q-tooltip v-if="isShowingHelp"
+    <q-tooltip v-if="isShowingHelp && !isInfoMode"
                v-model = "isShowingHelpLocal"
                anchor="bottom middle"
-               self="top middle"
+               self="center middle"
     >
       Input example: <b>{{ helpExpr }}</b><br>
     </q-tooltip>
+    <q-tooltip v-if="isInfoMode"
+               anchor="top middle"
+               self="center middle"
+    >
+      current settings<br>
+    </q-tooltip>
     <q-card
         bordered
         flat
@@ -30,6 +36,7 @@
           <q-select
               :model-value="localQSelectModel"
               :options="qSelectOptions"
+              :disable="isInfoMode"
               bg-color="white"
               dense
               fill-input
@@ -125,7 +132,11 @@ export default defineComponent({
     isError: {
       type: Boolean,
       default:false
-    }
+    },
+    isInfoMode: {
+      type: Boolean,
+      default: false
+    },
   },
   emits: [
     'update:input-result',

+ 38 - 29
guiapp/src/components/MaterialsSelector.vue

@@ -1,22 +1,32 @@
 <template>
   <div class="row items-baseline">
-    <div class="col-xs-12 col-sm-auto text-weight-bold text-center q-px-md q-py-sm">
-      <div :style="flexRowTitleStyle">
-        Host media
-      </div>
-    </div>
-    <div class="col-xs-grow col-sm">
-      <div class="row justify-xs-center justify-sm-start items-center">
-
-        <div class="col-auto" ><input-with-units
-            v-model:input-result="hostIndex"
-            v-model:is-showing-help="isShowingHelpForInputWithUnits"
-            :initial-expression="hostIndex.toString()"
-            title="Re(n)"
-            units=""
-        /></div>
-
-      </div>
+    <div class="col-xs-grow col-sm-auto q-px-sm">
+      <q-table
+          title="Activated materials"
+          title-class="text-h6"
+          :rows="rowsQ"
+          :columns="columnsQ"
+          hide-bottom
+          dense
+          flat
+          row-key="name"
+      >
+        <template #body="props">
+          <q-tr :props="props">
+            <q-th key="name" :props="props">
+              {{ props.row.name }}
+            </q-th>
+            <template v-for="(val, index) in props.row" :key="index" :props="props">
+              <q-td v-if="index!='name'">
+                <q-checkbox
+                    v-model="props.row[index]"
+                    dense
+                />
+              </q-td>
+            </template>
+          </q-tr>
+        </template>
+      </q-table>
     </div>
   </div>
 </template>
@@ -27,28 +37,27 @@ import {
   computed,
   } from 'vue'
 import { useStore } from 'src/store'
-import InputWithUnits from 'components/InputWithUnits.vue'
-import { flexRowTitleStyle } from 'components/config'
 
 export default defineComponent({
 
-  name: 'GetHostIndex',
-  components: {InputWithUnits,},
+  name: 'MaterialsSelector',
+  components: {},
 
   setup() {
     const $store = useStore()
 
-    const isShowingHelpForInputWithUnits = computed({
-      get: () => $store.state.guiRuntime.isShowingHelpForInputWithUnits,
-      set: val => $store.commit('guiRuntime/setIsShowingHelpForInputWithUnits', val)
+    const activatedMaterials = computed(() => $store.state.guiRuntime.activatedMaterials)
+    const columnsQ = computed(()=>{
+      return [
+        { name: 'name', label: '',  align: 'left', field: 'name', headerStyle:''},
+        { name: 'Qsca', label: 'Qsca',  align: 'left', field: 'Qsca', headerStyle:''},
+        { name: 'Qabs', label: 'Qabs',  align: 'left', field: 'Qabs', headerStyle:''},
+        { name: 'Qext', label: 'Qext',  align: 'left', field: 'Qext', headerStyle:''},
+      ]
     })
 
-    const hostIndex = computed({
-      get: () => $store.state.simulationSetup.gui.hostIndex,
-      set: val => $store.commit('simulationSetup/setHostIndex', val)
-    })
 
-    return { hostIndex, isShowingHelpForInputWithUnits, flexRowTitleStyle}
+    return { }
   },
 })
 </script>

+ 1 - 1
guiapp/src/components/config.ts

@@ -1,4 +1,4 @@
-export const flexRowTitleStyle = 'width:10em; margin: auto;'
+export const flexRowTitleStyle = 'width:10em; margin: auto; color:black;'
 export const basicSelectorWidthStyle = '6.5em'
 
 export const inputWithUnitsHistoryLength = 5

+ 1 - 1
guiapp/src/layouts/MainLayout.vue

@@ -12,7 +12,7 @@
           @click="toggleLeftDrawer"
         />
         <q-tabs align="right">
-          <q-route-tab to="/spectrum" label="Spectra" name="spectrum"/>
+          <q-route-tab to="/spectrum" label="Spectrum" name="spectrum"/>
           <q-route-tab to="/nearfield" label="Near-field" name="nearfield"/>
 <!--          <q-route-tab to="/farfield" label="Far-field" name="farfield"/>-->
         </q-tabs>

+ 4 - 1
guiapp/src/pages/Materials.vue

@@ -1,6 +1,8 @@
 <template>
   <q-page class="column q-px-md">
     <div class="q-ma-md"/>
+    <router-link to="/spectrum#GetSourceParametersHref"> <GetSourceParameters :is-info-mode="true"/> </router-link>
+    <div class="q-ma-xs"/>
     <MaterialsSelector/>
   </q-page>
 </template>
@@ -11,13 +13,14 @@ import {
 } from 'vue'
 
 import MaterialsSelector from 'components/MaterialsSelector.vue'
+import GetSourceParameters from 'components/GetSourceParameters.vue'
 // import { useStore } from 'src/store'
 
 
 export default defineComponent({
   name: 'PageIndex',
   components: {
-    MaterialsSelector
+    MaterialsSelector, GetSourceParameters
   },
 })
 </script>

+ 1 - 1
guiapp/src/pages/Spectrum.vue

@@ -4,7 +4,7 @@
     <GetHostIndex/>
     <div class="q-ma-xs"/>
     <GetUnits/>
-    <div class="q-ma-xs"/>
+    <div id="GetSourceParametersHref" class="q-ma-xs"/>
     <GetSourceParameters/>
     <div class="q-ma-xs"/>
     <GetParticleParameters/>

+ 12 - 1
guiapp/src/router/index.ts

@@ -23,7 +23,18 @@ export default route<StateInterface>(function (/* { store, ssrContext } */) {
     : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory);
 
   const Router = createRouter({
-    scrollBehavior: () => ({ left: 0, top: 0 }),
+    // scrollBehavior (to, from, savedPosition) {
+    //   return { x: 0, y: 0 }
+    // },
+    scrollBehavior: (to) => {
+      if (to.hash) {
+        return {
+          selector: to.hash
+          , offset: { x: 0, y: 10 }
+        }
+      }
+      return { left: 0, top: 0 }
+    },
     routes,
 
     // Leave this as is and make changes in quasar.conf.js instead!