changeset 1021:35682e8e1159

Merge from branch "Dev_main"
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Thu, 04 Jun 2015 09:45:32 +0100
parents d897f129ad4e (current diff) 5aa3178a8646 (diff)
children 0fdca5989285
files ape.js core.js example_eval/project.xml test_create/test_create.html
diffstat 1 files changed, 104 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/test_create/test_create.html	Wed Jun 03 15:07:23 2015 +0100
+++ b/test_create/test_create.html	Thu Jun 04 09:45:32 2015 +0100
@@ -147,14 +147,37 @@
 					audioHolder.appendChild(audioHolderPreTest);
 					audioHolder.appendChild(audioHolderPostTest);
 					
+					// Interface Nodes
+					
 					// audio-Elements
 					var audioElementsDOM = [];
 					var commentQuestionDOM = [];
+					var interfacesDOM = [];
 					for (var j=0; j<audioHolderDOM.childElementCount; j++) {
 						var child = audioHolderDOM.childNodes[j];
 						var name = child.getAttribute('name');
 						if (name == 'audio-element') {audioElementsDOM.push(child);}
 						else if (name == 'comment-question') {commentQuestionDOM.push(child);}
+						else if (name == 'interface-options') {interfacesDOM.push(child);}
+					}
+					
+					for (var j=0; j<interfacesDOM.length; j++) {
+						var interfaceNode = document.createElement('interface');
+						attribs = interfacesDOM[j].getElementsByClassName('attrib')[0].getElementsByTagName('input');
+						var title = document.createElement('title');
+						title.textContent = attribs[0].value;
+						interfaceNode.appendChild(title);
+						
+						
+						var markers = interfacesDOM[j].getElementsByClassName('head');
+						for (var k=0; k<markers.length; k++) {
+							var markerNode = document.createElement('scale');
+							attribs = markers[k].getElementsByClassName('attrib')[0].getElementsByTagName('input');
+							markerNode.textContent = attribs[0].value;
+							markerNode.setAttribute('position',attribs[1].value);
+							interfaceNode.appendChild(markerNode);
+						}
+						audioHolder.appendChild(interfaceNode);
 					}
 					
 					for (var j=0; j<audioElementsDOM.length; j++) {
@@ -380,6 +403,13 @@
 				};
 				node.appendChild(newCommentButton);
 				
+				var newInterface = document.createElement("button");
+				newInterface.textContent = "Add Interface";
+				newInterface.onclick = function() {
+					event.srcElement.parentElement.appendChild(interfaceNode());
+				};
+				node.appendChild(newInterface);
+				
 				var removeButton = document.createElement("button");
 				removeButton.textContent = "Remove Audio Holder";
 				removeButton.onclick = removeNode;
@@ -436,6 +466,61 @@
 				return node;
 			}
 			
+			function interfaceNode() {
+				var selectedInterface = document.getElementById('interface').value;
+				var node = document.createElement('div');
+				node.setAttribute('class','head');
+				node.setAttribute('name','interface-options');
+				var nodeTitle = document.createElement('h4');
+				nodeTitle.textContent = "Interface";
+				
+				var attributes = document.createElement('div');
+				attributes.setAttribute('class','attrib');
+				var title = attributePair('Title: ','text',false);
+				title[1].style.width = "500px";
+				
+				var addMarker = document.createElement('button');
+				addMarker.textContent = "Add Scale Marker";
+				addMarker.onclick = function() {
+					event.srcElement.parentElement.appendChild(newScaleMarker());
+				};
+				
+				title.forEach(function(item){attributes.appendChild(item);},false);
+				
+				var removeButton = document.createElement("button");
+				removeButton.textContent = "Remove Interface";
+				removeButton.onclick = removeNode;
+				
+				node.appendChild(nodeTitle);
+				node.appendChild(attributes);
+				node.appendChild(addMarker);
+				node.appendChild(removeButton);
+				return node;
+			}
+			
+			function newScaleMarker() {
+				var node = document.createElement('div');
+				node.setAttribute('class','head');
+				node.setAttribute('name','interface-options');
+				var nodeTitle = document.createElement('span');
+				nodeTitle.textContent = "Marker";
+				var attributes = document.createElement('div');
+				attributes.setAttribute('class','attrib');
+				var text = attributePair('Text: ','text',true);
+				var position = attributePair('Positon','number',true);
+				
+				text.forEach(function(item){attributes.appendChild(item);},false);
+				position.forEach(function(item){attributes.appendChild(item);},false);
+				
+				var removeButton = document.createElement("button");
+				removeButton.textContent = "Remove Marker";
+				removeButton.onclick = removeNode;
+				
+				node.appendChild(nodeTitle);
+				node.appendChild(attributes);
+				node.appendChild(removeButton);
+				return node;
+			}
 			
 			function handleDragOver(e) {
 				e.stopPropagation();
@@ -575,6 +660,25 @@
 							audioHolderDOM.children[3].appendChild(node);
 						}
 					}
+					// Process interface
+					var interfaceNodes = audioHolders[i].getElementsByTagName('interface');
+					for (var j=0; j<interfaceNodes.length; j++) {
+						var node = interfaceNode();
+						var child = interfaceNodes[j];
+						var attribs = node.getElementsByClassName('attrib')[0].getElementsByTagName('input');
+						attribs[0].value = child.getElementsByTagName('title')[0].textContent;
+						
+						var markers = child.getElementsByTagName('scale');
+						for (var k=0; k<markers.length; k++) {
+							var markerNode = newScaleMarker();
+							attribs = markerNode.getElementsByClassName('attrib')[0].getElementsByTagName('input');
+							attribs[0].value = markers[k].textContent;
+							attribs[1].value = markers[k].getAttribute('position');
+							node.appendChild(markerNode);
+						}
+						audioHolderDOM.appendChild(node);
+					}
+					
 					
 					// Process audio-element
 					var audioElements = audioHolders[i].getElementsByTagName('audioElements');