changeset 441:55e17af8a0ee

Small refactor.
author Lucas Thompson <dev@lucas.im>
date Mon, 26 Jun 2017 11:00:21 +0100
parents 8f658642d031
children 51a5df5569a4
files src/app/feature-extraction-menu/feature-extraction-menu.component.html src/app/feature-extraction-menu/feature-extraction-menu.component.ts
diffstat 2 files changed, 17 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/app/feature-extraction-menu/feature-extraction-menu.component.html	Mon Jun 26 01:55:11 2017 +0100
+++ b/src/app/feature-extraction-menu/feature-extraction-menu.component.html	Mon Jun 26 11:00:21 2017 +0100
@@ -7,9 +7,7 @@
       <md-list-item
         *ngFor="let output of extractor.outputs"
         (click)="extract(output)">
-        <md-icon md-list-icon>
-          {{output.iconName ? output.iconName : 'extension'}}
-        </md-icon>
+        <md-icon md-list-icon>{{getFeatureIconName(output)}}</md-icon>
         <h4 md-line>{{output.name}}</h4>
         <p md-line>{{output.combinedKey}}</p>
         <button md-icon-button
--- a/src/app/feature-extraction-menu/feature-extraction-menu.component.ts	Mon Jun 26 01:55:11 2017 +0100
+++ b/src/app/feature-extraction-menu/feature-extraction-menu.component.ts	Mon Jun 26 11:00:21 2017 +0100
@@ -11,14 +11,14 @@
 } from '../services/feature-extraction/feature-extraction.service';
 import {ListResponse} from 'piper';
 import {Subscription} from 'rxjs/Subscription';
-import {HigherLevelFeatureShape} from "../visualisations/FeatureUtilities";
+import {HigherLevelFeatureShape} from '../visualisations/FeatureUtilities';
 
 export interface ExtractorOutputInfo {
   extractorKey: string;
   combinedKey: string;
   outputId: string;
   name: string;
-  iconName?: string;
+  typeUri?: string;
 }
 
 interface ExtractorInfo {
@@ -41,14 +41,6 @@
   'http://purl.org/ontology/af/Pitch': 'tracks'
 };
 
-const featureIconMap = {
-  vector: 'show_chart',
-  matrix: 'grid_on',
-  tracks: 'multiline_chart',
-  instants: 'view_week',
-  notes: 'audiotrack',
-};
-
 @Component({
   selector: 'ugly-feature-extraction-menu',
   templateUrl: './feature-extraction-menu.component.html',
@@ -84,20 +76,16 @@
         const outputs: ExtractorOutputInfo[] =
           staticData.basicOutputInfo.map(output => {
             const combinedKey = `${staticData.key}:${output.identifier}`;
-            const hasTypeInfo = staticData.staticOutputInfo &&
+            const maybeTypeInfo = staticData.staticOutputInfo &&
               staticData.staticOutputInfo.get(output.identifier) &&
               staticData.staticOutputInfo.get(output.identifier).typeURI;
-            const getIcon = () => featureIconMap[crudeTypeUriMap[
-              staticData.staticOutputInfo.get(output.identifier).typeURI
-              ]];
-            const hasIcon = hasTypeInfo && getIcon();
             return Object.assign({
                 extractorKey: staticData.key,
                 combinedKey: combinedKey,
                 name: output.name,
                 outputId: output.identifier
               },
-              hasIcon ? {iconName: getIcon()} : {}
+              maybeTypeInfo ? {typeUri: maybeTypeInfo} : {}
             );
           });
         acc.push({name, outputs});
@@ -127,6 +115,18 @@
     this.piperService.updateAvailableLibraries();
   }
 
+  getFeatureIconName(outputInfo: ExtractorOutputInfo): string {
+    const featureIconMap = {
+      vector: 'show_chart',
+      matrix: 'grid_on',
+      tracks: 'multiline_chart',
+      instants: 'view_week',
+      notes: 'audiotrack',
+    };
+    const maybeIcon = featureIconMap[crudeTypeUriMap[outputInfo.typeUri]];
+    return maybeIcon ? maybeIcon : 'extension';
+  }
+
   ngOnDestroy(): void {
     this.librariesUpdatedSubscription.unsubscribe();
   }