/* --- Translations object -------------------------------------------------- */ var tree_icon="tree-btn.png"; var alignment_icon="align-btn.png"; function Translations(server,opts) { this.server=server; // Default values for options: this.options={ show_abstract: false, show_trees: false, show_grouped_translations: true, } // Apply supplied options if(opts) for(var o in opts) this.options[o]=opts[o]; this.main=empty("div"); this.menus=empty("span"); this.to_menu=empty_id("select","to_menu"); appendChildren(this.menus,[text(" To: "), this.to_menu]) this.to_menu.onchange=bind(this.get_translations,this); } Translations.prototype.change_grammar=function(grammar) { this.grammar=grammar; update_language_menu(this.to_menu,grammar); insertFirst(this.to_menu,option("All","All")); this.to_menu.value="All"; } Translations.prototype.clear=function() { this.main.innerHTML=""; } Translations.prototype.translateFrom=function(current) { this.current=current; this.get_translations(); } Translations.prototype.get_translations=function() { with(this) { var c=current; if(options.show_grouped_translations) server.translategroup({from:c.from,input:c.input}, bind(show_groupedtranslations,this)); else server.translate({from:c.from,input:c.input}, bind(show_translations,this)); } } Translations.prototype.tdt=function(tree_btn,txt) { with(this) { return options.show_trees ? tda([tree_btn,txt]) : td(txt); } } Translations.prototype.target_lang=function() { with(this) return langpart(to_menu.value,grammar.name); } Translations.prototype.show_translations=function(translationResults) { with(this) { var trans=main; //var to=target_lang(); // wrong var to=to_menu.value; var cnt=translationResults.length; //trans.translations=translations; trans.single_translation=[]; trans.innerHTML=""; /* trans.appendChild(wrap("h3",text(cnt<1 ? "No translations?" : cnt>1 ? ""+cnt+" translations:": "One translation:"))); */ for(p=0;p 1) tbody.appendChild(tr([td(text(lin[i].tree))])); } trans.appendChild(wrap("table",tbody)); } } } } function abstree_button(abs) { var i=button_img(tree_icon,"toggle_img(this)"); i.title="Click to display abstract syntax tree" i.other=server.current_grammar_url+"?command=abstrtree&tree="+encodeURIComponent(abs); return i; } function alignment_button(abs) { var i=button_img(alignment_icon,"toggle_img(this)"); i.title="Click to display word alignment" i.other=server.current_grammar_url+"?command=alignment&tree="+encodeURIComponent(abs); return i; } function parsetree_button(abs,lang) { var i=button_img(tree_icon,"toggle_img(this)"); i.title="Click to display parse tree" i.other=server.current_grammar_url +"?command=parsetree&from="+lang+"&tree="+encodeURIComponent(abs); return i; }