Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

// vim: ts=4:sw=4:nu:fdc=4:nospell
/**
 * Ext.ux.LangSelectCombo - Combo pre-configured for language selection
 * 
 * @author    Ing. Jozef Sakáloš <jsakalos@aariadne.com>
 * @copyright (c) 2008, by Ing. Jozef Sakáloš
 * @date      21. March 2008
 * @version   $Id: Ext.ux.LangSelectCombo.js 112 2008-03-28 21:11:17Z jozo $
 */

/*global Ext */

/**
 * @class Ext.ux.LangSelectCombo
 * @extends Ext.ux.IconCombo
 */

Ext.ux.LangSelectCombo = Ext.extend(Ext.ux.IconCombo, {
        selectLangText:'Select Language'
        ,lazyRender:true
        ,lazyInit:true
        ,langVariable:'locale'
        ,typeAhead:true
        ,initComponent:function() {
                var langCode = Ext.state.Manager.getProvider() ? Ext.state.Manager.get(this.langVariable) : 'en_US'
                langCode = langCode ? langCode : 'en_US'
                Ext.apply(this, {
                        store:new Ext.data.SimpleStore({
                                id:0
                                ,fields:[
                                         {name:'langCode', type:'string'}
                                        ,{name:'langName', type:'string'}
                                        ,{name:'langCls', type:'string'}
                                ]
                                ,data:[
                                         ['cs_CZ', 'Český', 'ux-flag-cz']
                                        ,['de_DE', 'Deutsch', 'ux-flag-de']
                                        ,['en_US', 'English', 'ux-flag-us']
                                        ,['ru_RU', 'Russian', 'ux-flag-ru']
                                        ,['sk_SK', 'Slovenský', 'ux-flag-sk']
                                        ,['es_ES', 'Spanish', 'ux-flag-es']
                                        ,['tr_TR', 'Turkish', 'ux-flag-tr']
                                ]
                        })
                        ,valueField:'langCode'
                        ,displayField:'langName'
                        ,iconClsField:'langCls'
                        ,triggerAction:'all'
                        ,mode:'local'
                        ,forceSelection:true
                        ,value:langCode

                }) // eo apply

                // call parent
                Ext.ux.LangSelectCombo.superclass.initComponent.apply(this, arguments);

        } // eo function initComponent

        ,onSelect:function(record) {
                // call parent
                Ext.ux.LangSelectCombo.superclass.onSelect.apply(this, arguments);

                var langCode = record.get('langCode');
                // save state to state manager
                if(Ext.state.Manager.getProvider()) {
                        Ext.state.Manager.set(this.langVariable, langCode);
                }

                // reload page
                window.location.search = this.langVariable + '=' + langCode;

        } // eo function onSelect

}) // eo extend

// eof