| /******************************************************************************* |
| * Copyright (c) 2007 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Paul Colton (Aptana)- initial API and implementation |
| * Eclipse Foundation |
| * Kit Lo (IBM) - patch, bug 261739, Inconsistent use of language names |
| *******************************************************************************/ |
| |
| YAHOO.languageManager = { |
| getAjaxLanguages: function(selectedIn){ |
| var callback = |
| { |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| if(!o.responseText){ |
| return false; |
| } |
| var response = eval("("+o.responseText+")"); |
| var domNode = document.getElementById('language-area'); |
| if(!domNode){ |
| return false; |
| } |
| domNode.innerHTML = ""; |
| // YAHOO.log(o.responseText); |
| |
| for(var i = 0; i < response.length; i++){ |
| var proj = new language(response[i]); |
| domNode.appendChild(proj.createHTML()); |
| if(response[i]['current']){ |
| YAHOO.languageManager.updateSelected(proj); |
| } |
| } |
| |
| //start project |
| YAHOO.projectManager.getAjaxProject(); |
| }, |
| failure: function(o) { |
| YAHOO.log('failed!'); |
| } |
| } |
| //start spining; |
| var domNode = document.getElementById('language-area'); |
| YAHOO.spinable.attach(domNode); |
| YAHOO.util.Connect.asyncRequest('GET', "callback/getLanguages.php", callback, null); |
| }, |
| |
| getSelected: function(){ |
| return this.selected; |
| }, |
| |
| updateSelected: function(selec){ |
| if(this.selected){ |
| this.selected.unselect(); |
| } |
| this.selected = selec; |
| this.selected.selected(); |
| } |
| }; |
| |
| |
| |
| function language(dataIn){ |
| language.superclass.constructor.call(); |
| this.initSelectable(); |
| |
| this.languageId = dataIn['language_id']; |
| this.name = dataIn['name']; |
| this.iso = dataIn['iso_code']; |
| this.locale = dataIn['locale']; |
| } |
| |
| YAHOO.extend(language,selectable); |
| language.prototype.isSelected = function(){ |
| return (this == YAHOO.languageManager.selected); |
| } |
| |
| language.prototype.clicked = function(e){ |
| YAHOO.util.Event.stopEvent(e); |
| var callback = |
| { |
| start:function(eventType, args){ |
| }, |
| success: function(o) { |
| YAHOO.log("language success about to ajax!"); |
| YAHOO.projectManager.getAjaxProject(); |
| YAHOO.projectStringsManager.getAjaxProjectStrings(); |
| }, |
| failure: function(o) { |
| YAHOO.log('failed!'); |
| } |
| } |
| var target = YAHOO.util.Event.getTarget(e); |
| YAHOO.languageManager.updateSelected(this); |
| YAHOO.util.Connect.asyncRequest('POST', "callback/setCurrentLangue.php", callback, "lang="+this.languageId); |
| } |
| language.prototype.createHTML = function(){ |
| this.domElem = document.createElement("li"); |
| this.domElem.innerHTML = this.name; |
| if(this.locale){ |
| this.domElem.innerHTML += " ("+this.locale+")"; |
| } |
| this.addEvents(); |
| |
| return this.domElem; |
| } |