diff interfaces/AB.js @ 2607:342ef7948c47

#37. All interfaces use interfaceContext.getLabel to generate labels
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Mon, 14 Nov 2016 16:12:34 +0000
parents 1c8aac0ee5e9
children e3cf3c24149e
line wrap: on
line diff
--- a/interfaces/AB.js	Mon Nov 14 15:48:26 2016 +0000
+++ b/interfaces/AB.js	Mon Nov 14 16:12:34 2016 +0000
@@ -351,47 +351,12 @@
     this.comparators = [];
     this.selected = null;
 
+    var labelType = audioHolderObject.label;
+    if (labelType == "default") {
+        labelType = "capital";
+    }
+
     // First generate the Audio Objects for the Audio Engine
-    var label = audioHolderObject.labelStart;
-    if (label == "") {
-        switch (audioHolderObject.label) {
-            case "number":
-                label = "1";
-                break;
-            case "letter":
-                label = "a";
-                break;
-            case "none":
-                label = "";
-                break;
-            case "capital":
-            default:
-                label = "A";
-                break;
-        }
-    } else {
-        switch (audioHolderObject.label) {
-            case "number":
-                if (!isFinite(Number(label))) {
-                    label = "1";
-                }
-                break;
-            case "letter":
-                if (label.charCodeAt(0) < 97 || label.charCodeAt(0) > 122) {
-                    label = "a";
-                }
-                break;
-            case "none":
-                label = "";
-                break;
-            case "capital":
-            default:
-                if (label.charCodeAt(0) < 65 || label.charCodeAt(0) > 90) {
-                    label = "A";
-                }
-                break;
-        }
-    }
     for (var index = 0; index < audioHolderObject.audioElements.length; index++) {
         var element = audioHolderObject.audioElements[index];
         var audioObject = audioEngineContext.newTrack(element);
@@ -399,22 +364,8 @@
             var orNode = new interfaceContext.outsideReferenceDOM(audioObject, index, document.getElementById("outside-reference-holder"));
             audioObject.bindInterface(orNode);
         } else {
+            var label = interfaceContext.getLabel(labelType, index, audioHolderObject.labelStart);
             var node = new this.comparatorBox(audioObject, index, label);
-            switch (audioHolderObject.label) {
-                case "none":
-                    label = "";
-                    break;
-                case "number":
-                    label = (Number(label) + 1).toString(10);
-                    break;
-                case "letter":
-                    label = String.fromCharCode((label.charCodeAt(0) - 96) % 26 + 97);
-                    break;
-                case "capital":
-                default:
-                    label = String.fromCharCode((label.charCodeAt(0) - 64) % 26 + 65);
-                    break;
-            }
             audioObject.bindInterface(node);
             this.comparators.push(node);
             this.boxHolders.appendChild(node.box);