-/*\r
- * Ext JS Library 2.2.1\r
- * Copyright(c) 2006-2009, Ext JS, LLC.\r
- * licensing@extjs.com\r
- * \r
- * http://extjs.com/license\r
- */\r
-\r
-\r
-Ext.onReady(function(){\r
- Ext.QuickTips.init();\r
- Ext.form.Field.prototype.msgTarget = 'side';\r
- \r
- /* Language chooser combobox */\r
- var store = new Ext.data.SimpleStore({\r
- fields: ['code', 'language', 'charset'],\r
- data : Ext.exampledata.languages // from languages.js\r
- });\r
- var combo = new Ext.form.ComboBox({\r
- store: store,\r
- displayField:'language',\r
- typeAhead: true,\r
- mode: 'local',\r
- triggerAction: 'all',\r
- emptyText:'Select a language...',\r
- selectOnFocus:true,\r
- onSelect: function(record) {\r
- window.location.search = Ext.urlEncode({"lang":record.get("code"),"charset":record.get("charset")});\r
- }\r
- });\r
- combo.render('languages');\r
-\r
- // get the selected language code parameter from url (if exists)\r
- var params = Ext.urlDecode(window.location.search.substring(1));\r
- if (params.lang) {\r
- // check if there's really a language with that language code\r
- record = store.data.find(function(item, key) {\r
- if (item.data.code==params.lang){\r
- return true;\r
- }\r
- return false;\r
- });\r
- // if language was found in store assign it as current value in combobox\r
- if (record) {\r
- combo.setValue(record.data.language);\r
- }\r
- }\r
-\r
- /* Email field */\r
- var emailfield = new Ext.FormPanel({\r
- labelWidth: 100, // label settings here cascade unless overridden\r
- frame:true,\r
- title: 'Email Field',\r
- bodyStyle:'padding:5px 5px 0',\r
- width: 360,\r
- defaults: {width: 220},\r
- defaultType: 'textfield',\r
-\r
- items: [{\r
- fieldLabel: 'Email',\r
- name: 'email',\r
- vtype:'email'\r
- }\r
- ]\r
- });\r
- emailfield.render('emailfield');\r
-\r
- /* Datepicker */\r
- var datefield = new Ext.FormPanel({\r
- labelWidth: 100, // label settings here cascade unless overridden\r
- frame:true,\r
- title: 'Datepicker',\r
- bodyStyle:'padding:5px 5px 0',\r
- width: 360,\r
- defaults: {width: 220},\r
- defaultType: 'datefield',\r
-\r
- items: [{\r
- fieldLabel: 'Date',\r
- name: 'date'\r
- }\r
- ]\r
- });\r
- datefield.render('datefield');\r
- \r
- // shorthand alias\r
- var fm = Ext.form, Ed = Ext.grid.GridEditor;\r
- var monthArray = Date.monthNames.map(function (e) { return [e]; }); \r
- var ds = new Ext.data.Store({\r
- proxy: new Ext.data.PagingMemoryProxy(monthArray),\r
- reader: new Ext.data.ArrayReader({}, [\r
- {name: 'month'}\r
- ])\r
- });\r
- var cm = new Ext.grid.ColumnModel([{\r
- header: "Months of the year",\r
- dataIndex: 'month',\r
- editor: new Ed(new fm.TextField({\r
- allowBlank: false\r
- })),\r
- width: 240\r
- }]);\r
- cm.defaultSortable = true;\r
- var grid = new Ext.grid.GridPanel({\r
- el:'grid',\r
- width: 360,\r
- height: 203,\r
- title:'Month Browser',\r
- store: ds,\r
- cm: cm,\r
- sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),\r
-\r
- bbar: new Ext.PagingToolbar({\r
- pageSize: 6,\r
- store: ds,\r
- displayInfo: true\r
- })\r
- })\r
- grid.render();\r
-\r
- // trigger the data store load\r
- ds.load({params:{start:0, limit:6}}); \r
-});\r
+/*!
+ * Ext JS Library 3.2.0
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+MultiLangDemo = function() {
+ // get the selected language code parameter from url (if exists)
+ var params = Ext.urlDecode(window.location.search.substring(1));
+ Ext.form.Field.prototype.msgTarget = 'side';
+
+ return {
+ init: function() {
+ Ext.QuickTips.init();
+
+ /* Language chooser combobox */
+ var store = new Ext.data.ArrayStore({
+ fields: ['code', 'language', 'charset'],
+ data : Ext.exampledata.languages // from languages.js
+ });
+ var combo = new Ext.form.ComboBox({
+ renderTo: 'languages',
+ store: store,
+ displayField:'language',
+ typeAhead: true,
+ mode: 'local',
+ triggerAction: 'all',
+ emptyText: 'Select a language...',
+ selectOnFocus: true,
+ onSelect: function(record) {
+ window.location.search = Ext.urlEncode({"lang":record.get("code"),"charset":record.get("charset")});
+ }
+ });
+
+ if (params.lang) {
+ // check if there's really a language with that language code
+ record = store.data.find(function(item, key){
+ if (item.data.code == params.lang) {
+ return true;
+ }
+ return false;
+ });
+ // if language was found in store assign it as current value in combobox
+ if (record) {
+ combo.setValue(record.data.language);
+ }
+ }
+
+ if (params.lang) {
+ var url = String.format("../../src/locale/ext-lang-{0}.js", params.lang);
+
+ Ext.Ajax.request({
+ url: url,
+ success: this.onSuccess,
+ failure: this.onFailure,
+ scope: this
+ });
+ } else {
+ this.setupDemo();
+ }
+ },
+ onSuccess: function(response, opts) {
+ eval(response.responseText);
+ this.setupDemo();
+ },
+ onFailure: function() {
+ Ext.Msg.alert('Failure', 'Failed to load locale file.');
+ this.setupDemo();
+ },
+ setupDemo: function() {
+ /* Email field */
+ var emailfield = new Ext.FormPanel({
+ renderTo: 'emailfield',
+ labelWidth: 100, // label settings here cascade unless overridden
+ frame: true,
+ title: 'Email Field',
+ bodyStyle: 'padding:5px 5px 0',
+ width: 360,
+ defaults: {width: 220},
+ defaultType: 'textfield',
+
+ items: [{
+ fieldLabel: 'Email',
+ name: 'email',
+ vtype: 'email'
+ }]
+ });
+
+ /* Datepicker */
+ var datefield = new Ext.FormPanel({
+ renderTo: 'datefield',
+ labelWidth: 100, // label settings here cascade unless overridden
+ frame: true,
+ title: 'Datepicker',
+ bodyStyle: 'padding:5px 5px 0',
+ width: 360,
+ defaults: {width: 220},
+ defaultType: 'datefield',
+ items: [{
+ fieldLabel: 'Date',
+ name: 'date'
+ }]
+ });
+
+ // shorthand alias
+ var fm = Ext.form, Ed = Ext.grid.GridEditor;
+
+ var monthArray = Date.monthNames.map(function (e) { return [e]; });
+
+ var ds = new Ext.data.Store({
+ proxy: new Ext.ux.data.PagingMemoryProxy(monthArray),
+ reader: new Ext.data.ArrayReader({}, [
+ {name: 'month'}
+ ])
+ });
+
+ var cm = new Ext.grid.ColumnModel([{
+ header: "Months of the year",
+ dataIndex: 'month',
+ editor: new Ed(new fm.TextField({
+ allowBlank: false
+ })),
+ width: 240,
+ defaultSortable: true
+ }]);
+
+ var grid = new Ext.grid.GridPanel({
+ renderTo: 'grid',
+ width: 360,
+ height: 203,
+ title:'Month Browser',
+ store: ds,
+ cm: cm,
+ sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
+
+ bbar: new Ext.PagingToolbar({
+ pageSize: 6,
+ store: ds,
+ displayInfo: true
+ })
+ });
+
+ // trigger the data store load
+ ds.load({params:{start:0, limit:6}});
+ }
+ };
+
+}();
+Ext.onReady(MultiLangDemo.init, MultiLangDemo);
\ No newline at end of file