Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / multiselect / multiselect-demo.js
index 01b000d..ff71012 100644 (file)
-/*!
- * Ext JS Library 3.0.3
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
-Ext.onReady(function(){\r
-\r
-    Ext.QuickTips.init();\r
-    Ext.form.Field.prototype.msgTarget = 'side';\r
-\r
-    /*\r
-     * Ext.ux.form.MultiSelect Example Code\r
-     */\r
-    var msForm = new Ext.form.FormPanel({\r
-        title: 'MultiSelect Test',\r
-        width: 700,\r
-        bodyStyle: 'padding:10px;',\r
-        renderTo: 'multiselect',\r
-        items:[{\r
-            xtype: 'multiselect',\r
-            fieldLabel: 'Multiselect<br />(Required)',\r
-            name: 'multiselect',\r
-            width: 250,\r
-            height: 200,\r
-            allowBlank:false,\r
-            store: [[123,'One Hundred Twenty Three'],\r
-                    ['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', 'Five'],\r
-                    ['6', 'Six'], ['7', 'Seven'], ['8', 'Eight'], ['9', 'Nine']],\r
-            tbar:[{\r
-                text: 'clear',\r
-                handler: function(){\r
-                       msForm.getForm().findField('multiselect').reset();\r
-                   }\r
-            }],\r
-            ddReorder: true\r
-        }],\r
-        tbar:[{\r
-            text: 'Options',\r
-            menu: [{\r
-                   text: 'Set Value (2,3)',\r
-                   handler: function(){\r
-                       msForm.getForm().findField('multiselect').setValue('2,3');\r
-                   }\r
-               },{\r
-                   text: 'Toggle Enabled',\r
-                   handler: function(){\r
-                       var m = msForm.getForm().findField('multiselect');\r
-                       if (!m.disabled) {\r
-                           m.disable();\r
-                       } else {\r
-                           m.enable();\r
-                       }\r
-                   }\r
-            }]\r
-        }],\r
-\r
-        buttons: [{\r
-            text: 'Save',\r
-            handler: function(){\r
-                if(msForm.getForm().isValid()){\r
-                       Ext.Msg.alert('Submitted Values', 'The following will be sent to the server: <br />'+\r
-                           msForm.getForm().getValues(true));\r
-                }\r
-            }\r
-        }]\r
-    });\r
-\r
-\r
-    var ds = new Ext.data.ArrayStore({\r
-        data: [[123,'One Hundred Twenty Three'],\r
-            ['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', 'Five'],\r
-            ['6', 'Six'], ['7', 'Seven'], ['8', 'Eight'], ['9', 'Nine']],\r
-        fields: ['value','text'],\r
-        sortInfo: {\r
-            field: 'value',\r
-            direction: 'ASC'\r
-        }\r
-    });\r
-\r
-    /*\r
-     * Ext.ux.form.ItemSelector Example Code\r
-     */\r
-    var isForm = new Ext.form.FormPanel({\r
-        title: 'ItemSelector Test',\r
-        width:700,\r
-        bodyStyle: 'padding:10px;',\r
-        renderTo: 'itemselector',\r
-        items:[{\r
-            xtype: 'itemselector',\r
-            name: 'itemselector',\r
-            fieldLabel: 'ItemSelector',\r
-               imagePath: '../ux/images/',\r
-            multiselects: [{\r
-                width: 250,\r
-                height: 200,\r
-                store: ds,\r
-                displayField: 'text',\r
-                valueField: 'value'\r
-            },{\r
-                width: 250,\r
-                height: 200,\r
-                store: [['10','Ten']],\r
-                tbar:[{\r
-                    text: 'clear',\r
-                    handler:function(){\r
-                           isForm.getForm().findField('itemselector').reset();\r
-                       }\r
-                }]\r
-            }]\r
-        }],\r
-\r
-        buttons: [{\r
-            text: 'Save',\r
-            handler: function(){\r
-                if(isForm.getForm().isValid()){\r
-                    Ext.Msg.alert('Submitted Values', 'The following will be sent to the server: <br />'+\r
-                        isForm.getForm().getValues(true));\r
-                }\r
-            }\r
-        }]\r
-    });\r
-\r
-});\r
+Ext.Loader.setConfig({enabled: true});
+Ext.Loader.setPath('Ext.ux', '../ux');
+Ext.require([
+    'Ext.form.Panel',
+    'Ext.ux.form.MultiSelect',
+    'Ext.ux.form.ItemSelector'
+]);
+
+Ext.onReady(function(){
+
+    /*
+     * Ext.ux.form.MultiSelect Example Code
+     */
+    var msForm = Ext.widget('form', {
+        title: 'MultiSelect Test',
+        width: 400,
+        bodyPadding: 10,
+        renderTo: 'multiselect',
+        items:[{
+            anchor: '100%',
+            xtype: 'multiselect',
+            msgTarget: 'side',
+            fieldLabel: 'Multiselect',
+            name: 'multiselect',
+
+            allowBlank: false,
+            // minSelections: 2,
+            // maxSelections: 3,
+
+            store: [[123,'One Hundred Twenty Three'],
+                    ['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', 'Five'],
+                    ['6', 'Six'], ['7', 'Seven'], ['8', 'Eight'], ['9', 'Nine']],
+
+            value: ['3', '4', '6'],
+
+            ddReorder: true
+        }],
+
+        tbar:[{
+            text: 'Options',
+            menu: [{
+                text: 'Set value (2,3)',
+                handler: function(){
+                    msForm.getForm().findField('multiselect').setValue(['2', '3']);
+                }
+            },{
+                text: 'Toggle enabled',
+                handler: function(){
+                    var m = msForm.getForm().findField('multiselect');
+                    if (!m.disabled) {
+                        m.disable();
+                    } else {
+                        m.enable();
+                    }
+                }
+            },{
+                text: 'Toggle delimiter',
+                handler: function() {
+                    var m = msForm.getForm().findField('multiselect');
+                    if (m.delimiter) {
+                        m.delimiter = null;
+                        Ext.Msg.alert('Delimiter Changed', 'The delimiter is now set to <b>null</b>. Click Save to ' +
+                                      'see that values are now submitted as separate parameters.');
+                    } else {
+                        m.delimiter = ',';
+                        Ext.Msg.alert('Delimiter Changed', 'The delimiter is now set to <b>","</b>. Click Save to ' +
+                                      'see that values are now submitted as a single parameter separated by the delimiter.');
+                    }
+                }
+            }]
+        }],
+
+        buttons: [{
+            text: 'Clear',
+            handler: function(){
+                var field = msForm.getForm().findField('multiselect');
+                if (!field.readOnly && !field.disabled) {
+                    field.clearValue();
+                }
+            }
+        }, {
+            text: 'Reset',
+            handler: function() {
+                msForm.getForm().reset();
+            }
+        }, {
+            text: 'Save',
+            handler: function(){
+                if(msForm.getForm().isValid()){
+                    Ext.Msg.alert('Submitted Values', 'The following will be sent to the server: <br />'+
+                        msForm.getForm().getValues(true));
+                }
+            }
+        }]
+    });
+
+
+    var ds = Ext.create('Ext.data.ArrayStore', {
+        data: [[123,'One Hundred Twenty Three'],
+            ['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', 'Five'],
+            ['6', 'Six'], ['7', 'Seven'], ['8', 'Eight'], ['9', 'Nine']],
+        fields: ['value','text'],
+        sortInfo: {
+            field: 'value',
+            direction: 'ASC'
+        }
+    });
+
+    /*
+     * Ext.ux.form.ItemSelector Example Code
+     */
+    var isForm = Ext.widget('form', {
+        title: 'ItemSelector Test',
+        width: 700,
+        bodyPadding: 10,
+        renderTo: 'itemselector',
+
+        tbar:[{
+            text: 'Options',
+            menu: [{
+                text: 'Set value (2,3)',
+                handler: function(){
+                    isForm.getForm().findField('itemselector').setValue(['2', '3']);
+                }
+            },{
+                text: 'Toggle enabled',
+                handler: function(){
+                    var m = isForm.getForm().findField('itemselector');
+                    if (!m.disabled) {
+                        m.disable();
+                    } else {
+                        m.enable();
+                    }
+                }
+            },{
+                text: 'Toggle delimiter',
+                handler: function() {
+                    var m = isForm.getForm().findField('itemselector');
+                    if (m.delimiter) {
+                        m.delimiter = null;
+                        Ext.Msg.alert('Delimiter Changed', 'The delimiter is now set to <b>null</b>. Click Save to ' +
+                                      'see that values are now submitted as separate parameters.');
+                    } else {
+                        m.delimiter = ',';
+                        Ext.Msg.alert('Delimiter Changed', 'The delimiter is now set to <b>","</b>. Click Save to ' +
+                                      'see that values are now submitted as a single parameter separated by the delimiter.');
+                    }
+                }
+            }]
+        }],
+
+        items:[{
+            xtype: 'itemselector',
+            name: 'itemselector',
+            anchor: '100%',
+            fieldLabel: 'ItemSelector',
+            imagePath: '../ux/images/',
+
+            store: ds,
+            displayField: 'text',
+            valueField: 'value',
+            value: ['3', '4', '6'],
+
+            allowBlank: false,
+            // minSelections: 2,
+            // maxSelections: 3,
+            msgTarget: 'side'
+        }],
+
+        buttons: [{
+            text: 'Clear',
+            handler: function(){
+                var field = isForm.getForm().findField('itemselector');
+                if (!field.readOnly && !field.disabled) {
+                    field.clearValue();
+                }
+            }
+        }, {
+            text: 'Reset',
+            handler: function() {
+                isForm.getForm().reset();
+            }
+        }, {
+            text: 'Save',
+            handler: function(){
+                if(isForm.getForm().isValid()){
+                    Ext.Msg.alert('Submitted Values', 'The following will be sent to the server: <br />'+
+                        isForm.getForm().getValues(true));
+                }
+            }
+        }]
+    });
+
+});