summaryrefslogtreecommitdiff
path: root/src/www/js/wc.js
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2015-03-24 18:03:10 +0000
committerhallgren <hallgren@chalmers.se>2015-03-24 18:03:10 +0000
commit12f5dc9ecedf0ad74cc1303c63743b6647e4081e (patch)
tree0a1e772f8a93b77546faefe6830c94fad60cef0f /src/www/js/wc.js
parent6d72126ffced8aaee001d1c766dfce41935d9b6d (diff)
Wide Coverage Translation Demo: zoomable panable collapsible syntax trees
This is an experimental solution using JavaScript code from https://github.com/christos-c/tree-viewer, d3js.org and jquery.com.
Diffstat (limited to 'src/www/js/wc.js')
-rw-r--r--src/www/js/wc.js23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/www/js/wc.js b/src/www/js/wc.js
index 67fb742ca..31fc9a950 100644
--- a/src/www/js/wc.js
+++ b/src/www/js/wc.js
@@ -112,7 +112,7 @@ wc.translate=function() {
if(wc.e2) wc.e2.innerHTML=lins[0].text
}
function get_inflections() {
- var tree="MkDocument+%22%22+(Inflection"+wcls+" "+w+") %22%22"
+ var tree="MkDocument+%22%22+(Inflection"+wcls+"+"+w+")+%22%22"
var l=gftranslate.grammar+f.to.value
gftranslate.call("?command=c-linearize&to="+l+"&tree="+tree,show_inflections)
}
@@ -134,12 +134,12 @@ wc.translate=function() {
if(e) {
e.innerHTML=prob+"<br>"
if(r.tree) {
- wc.e2=empty_class("div","e2")
- var t=wrap("span",treetext(r.tree))
- e.appendChild(t)
+ wc.e2=node("div",{id:"tree-container","class":"e2"})
+ e.appendChild(wrap("span",treetext(r.tree)))
+ /*
var g=gftranslate.jsonurl
var u="format=svg&tree="+encodeURIComponent(r.tree)
- var from="&from="+gftranslate.grammar+f.to.value
+ var from="&from="+r.grammar+f.to.value
r.imgurls=[g+"?command=c-abstrtree&"+u,
g+"?command=c-parsetree&"+u+from]
if(!r.img) {
@@ -153,7 +153,9 @@ wc.translate=function() {
else if(r.img.src!=r.imgurls[r.img_ix]) // language change?
r.img.src=r.imgurls[r.img_ix]
wc.e2.appendChild(r.img)
+ */
e.appendChild(wc.e2)
+ d3Tree(wc.bracketsToD3(r.jsontree))
}
}
if(wc.p /*&& so.rs.length>1*/) show_picks()
@@ -351,6 +353,17 @@ wc.try_google=function() {
w.focus()
}
+wc.bracketsToD3=function(bs) {
+ if(bs.token) return {name:bs.token}
+ else if(bs.other) return {name:bs.other}
+ else if(bs.fun) {
+ var t={name:bs.fun}
+ if(bs.children/* && bs.children.length>0*/)
+ t.children=bs.children.map(wc.bracketsToD3)
+ return t
+ }
+ else return {name:"??"}
+}
// Update language selection menus with the languages supported by the grammar
function init_languages() {