Mercurial > hg > webaudioevaluationtool
changeset 632:9e4fb381944e Dev_main
Fix Bug #1669, #1594.
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Tue, 22 Mar 2016 11:21:45 +0000 |
parents | d63600ad574b |
children | 5b902e1f737c |
files | test_create/test_core.js |
diffstat | 1 files changed, 56 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/test_create/test_core.js Mon Mar 21 16:22:49 2016 +0000 +++ b/test_create/test_core.js Tue Mar 22 11:21:45 2016 +0000 @@ -1203,52 +1203,72 @@ default: break; } - - this.input = document.createElement('input'); - switch(this.dataType) - { - case "boolean": - this.input.type = "checkbox"; - break; - case "negativeInteger": - case "positiveInteger": - case "nonNegativeInteger": - case "nonPositiveInteger": - case "integer": - case "short": - case "byte": - this.input.step = 1; - case "decimal": - this.input.type = "number"; - this.input.min = minVar; - this.input.max = maxVar; - break; - default: - break; + + this.enumeration = schema.getAllElementsByTagName("xs:enumeration"); + if (this.enumeration.length == 0) { + this.input = document.createElement('input'); + switch(this.dataType) + { + case "boolean": + this.input.type = "checkbox"; + break; + case "negativeInteger": + case "positiveInteger": + case "nonNegativeInteger": + case "nonPositiveInteger": + case "integer": + case "short": + case "byte": + this.input.step = 1; + case "decimal": + this.input.type = "number"; + this.input.min = minVar; + this.input.max = maxVar; + break; + default: + break; + } + } else { + this.input = document.createElement("select"); + for (var i=0; i<this.enumeration.length; i++) + { + var option = document.createElement("option"); + var value = this.enumeration[i].getAttribute("value"); + option.setAttribute("value",value); + option.textContent = value; + this.input.appendChild(option); + } } var value; eval("value = node."+this.name) - if (value != undefined) + if (this.default != undefined && value == undefined) { + value = this.default; + } + if (this.input.type == "checkbox") { + this.input.checked = value; + } else { this.input.value = value; - } else if (this.default != undefined) - { - this.input.value = this.default; } this.handleEvent = function(event) { var value; - switch(this.input.type) + if (this.input.nodeName == "INPUT") { - case "checkbox": - value = event.currentTarget.checked; - break; - case "number": - value = Number(event.currentTarget.value); - break; - default: - value = event.currentTarget.value; - break; + switch(this.input.type) + { + case "checkbox": + value = event.currentTarget.checked; + break; + case "number": + value = Number(event.currentTarget.value); + break; + default: + value = event.currentTarget.value; + break; + } + } else if (this.input.nodeName == "SELECT") { + value = event.currentTarget.value; } eval("this.owner."+this.name+" = value"); }