X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..3789b528d8dd8aad4558e38e22d775bcab1cbd36:/examples/themes/themes.js
diff --git a/examples/themes/themes.js b/examples/themes/themes.js
new file mode 100644
index 00000000..786e5cee
--- /dev/null
+++ b/examples/themes/themes.js
@@ -0,0 +1,718 @@
+Ext.require([
+ 'Ext.window.Window',
+ 'Ext.panel.Panel',
+ 'Ext.toolbar.*',
+ 'Ext.container.Viewport',
+ 'Ext.form.*',
+ 'Ext.tab.*',
+ 'Ext.slider.*',
+ 'Ext.layout.*',
+ 'Ext.button.*',
+ 'Ext.grid.*',
+ 'Ext.data.*',
+ 'EXt.util.*'
+]);
+
+Ext.onReady(function() {
+ Ext.QuickTips.init();
+
+ var items = [];
+
+ /**
+ * Basic panel
+ */
+ items.push({
+ xtype: 'panel',
+
+ x: 50, y: 100,
+
+ width : 150,
+ height: 150,
+
+ title: 'Basic Panel',
+ animCollapse: true,
+ bodyPadding: 5,
+ html : 'Some content',
+ collapsible: true
+ });
+
+ /**
+ * Masked Panel
+ */
+ items.push({
+ xtype: 'panel',
+
+ x: 210, y: 100,
+
+ width : 150,
+ height: 150,
+
+ title: 'Masked Panel',
+
+ bodyPadding: 5,
+ html : 'Some content',
+ animCollapse: true,
+ collapsible: true,
+
+ listeners: {
+ render: function(p) {
+ p.body.mask('Loading...');
+ },
+ delay: 50
+ }
+ });
+
+ /**
+ * Framed Panel
+ */
+ items.push({
+ xtype: 'panel',
+
+ x: 370, y: 100,
+
+ width : 150,
+ height: 150,
+
+ title: 'Framed Panel',
+ animCollapse: true,
+
+ dockedItems: [{
+ dock: 'top',
+ xtype: 'toolbar',
+ items: [{
+ text: 'test'
+ }]
+ }, {
+ dock: 'right',
+ xtype: 'toolbar',
+ items: [{
+ text: 'test'
+ }]
+ }, {
+ dock: 'left',
+ xtype: 'toolbar',
+ items: [{
+ text: 'test'
+ }]
+ }],
+
+ html : 'Some content',
+ frame : true,
+ collapsible: true
+ });
+
+ /**
+ * Basic Window
+ */
+ Ext.createWidget('window', {
+ x: 530, y: 100,
+
+ width : 150,
+ height : 150,
+ minWidth: 150,
+
+ title: 'Window',
+
+ bodyPadding: 5,
+ html : 'Click Submit for Confirmation Msg.',
+
+ collapsible: true,
+ closable : false,
+ draggable : false,
+ resizable: false,
+ animCollapse: true,
+
+ tbar: [
+ {text: 'Toolbar'}
+ ],
+ buttons: [
+ {
+ text : 'Submit',
+ id : 'message_box',
+ handler: function() {
+ Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?');
+ }
+ }
+ ]
+ }).show();
+
+ /**
+ * Toolbar with a menu
+ */
+ var menu = Ext.createWidget('menu', {
+ items: [
+ {text: 'Menu item'},
+ {text: 'Check 1', checked: true},
+ {text: 'Check 2', checked: false},
+ '-',
+ {text: 'Option 1', checked: true, group: 'opts'},
+ {text: 'Option 2', checked: false, group: 'opts'},
+ '-',
+ {
+ text: 'Sub-items',
+ menu: Ext.createWidget('menu', {
+ items: [
+ {text: 'Item 1'},
+ {text: 'Item 2'}
+ ]
+ })
+ }
+ ]
+ });
+
+ items.push({
+ xtype: 'panel',
+
+ x: 690, y: 100,
+
+ width : 450,
+ height: 150,
+
+ title: 'Basic Panel With Toolbars',
+
+ tbar: [
+ 'Toolbar & Menus',
+ ' ',
+ '-',
+ {text: 'Button'},
+ {
+ text: 'Menu Button',
+ id : 'menu-btn',
+ menu: menu
+ },
+ {
+ xtype: 'splitbutton',
+ text : 'Split Button',
+ menu : Ext.createWidget('menu', {
+ items: [
+ {text: 'Item 1'},
+ {text: 'Item 2'}
+ ]
+ })
+ },
+ {
+ xtype : 'button',
+ enableToggle: true,
+ pressed : true,
+ text : 'Toggle Button'
+ }
+ ],
+ bbar: [
+ {text: 'Bottom Bar'}
+ ]
+ });
+
+ /**
+ * Form and form widgets
+ */
+ items.push({
+ xtype: 'form',
+
+ id : 'form-widgets',
+ title: 'Form Widgets',
+
+ x: 50, y: 260,
+
+ width : 630,
+ height: 700,
+ frame: true,
+
+ tools: [
+ {type:'toggle'},
+ {type:'close'},
+ {type:'minimize'},
+ {type:'maximize'},
+ {type:'restore'},
+ {type:'gear'},
+ {type:'pin'},
+ {type:'unpin'},
+ {type:'right'},
+ {type:'left'},
+ {type:'up'},
+ {type:'down'},
+ {type:'refresh'},
+ {type:'minus'},
+ {type:'plus'},
+ {type:'help'},
+ {type:'search'},
+ {type:'save'},
+ {type:'print'}
+ ],
+
+ bodyPadding: '10 20',
+
+ defaults: {
+ anchor : '98%',
+ msgTarget : 'side',
+ allowBlank: false
+ },
+
+ items: [
+ {
+ xtype: 'label',
+ text : 'Plain Label'
+ },
+ {
+ fieldLabel: 'TextField',
+ xtype : 'textfield',
+ name : 'someField',
+ emptyText : 'Enter a value'
+ },
+ {
+ fieldLabel: 'ComboBox',
+ xtype: 'combo',
+ store: ['Foo', 'Bar']
+ },
+ {
+ fieldLabel: 'DateField',
+ xtype : 'datefield',
+ name : 'date'
+ },
+ {
+ fieldLabel: 'TimeField',
+ name: 'time',
+ xtype: 'timefield'
+ },
+ {
+ fieldLabel: 'NumberField',
+ xtype : 'numberfield',
+ name : 'number',
+ emptyText : '(This field is optional)',
+ allowBlank: true
+ },
+ {
+ fieldLabel: 'TextArea',
+ xtype : 'textareafield',
+ name : 'message',
+ cls : 'x-form-valid',
+ value : 'This field is hard-coded to have the "valid" style (it will require some code changes to add/remove this style dynamically)'
+ },
+ {
+ fieldLabel: 'Checkboxes',
+ xtype: 'checkboxgroup',
+ columns: [100,100],
+ items: [{boxLabel: 'Foo', checked: true},{boxLabel: 'Bar'}]
+ },
+ {
+ fieldLabel: 'Radios',
+ xtype: 'radiogroup',
+ columns: [100,100],
+ items: [{boxLabel: 'Foo', checked: true, name: 'radios'},{boxLabel: 'Bar', name: 'radios'}]
+ },
+ {
+ hideLabel : true,
+ id : 'htmleditor',
+ xtype : 'htmleditor',
+ name : 'html',
+ enableColors: false,
+ value : 'Mouse over toolbar for tooltips.
The HTMLEditor IFrame requires a refresh between a stylesheet switch to get accurate colors.',
+ height : 110
+ },
+ {
+ xtype : 'fieldset',
+ title : 'Plain Fieldset'
+ },
+ {
+ xtype : 'fieldset',
+ title : 'Collapsible Fieldset',
+ collapsible: true
+ },
+ {
+ xtype : 'fieldset',
+ title : 'Checkbox Fieldset',
+ checkboxToggle: true
+ }
+ ],
+
+ buttons: [
+ {
+ text :'Toggle Enabled',
+ handler: function() {
+ this.up('form').items.each(function(item) {
+ item.setDisabled(!item.disabled);
+ });
+ }
+ },
+ {
+ text : 'Reset Form',
+ handler: function() {
+ Ext.getCmp('form-widgets').getForm().reset();
+ }
+ },
+ {
+ text : 'Validate',
+ handler: function() {
+ Ext.getCmp('form-widgets').getForm().isValid();
+ }
+ }
+ ]
+ });
+
+ /**
+ * Border layout
+ */
+ items.push({
+ xtype: 'panel',
+
+ width : 450,
+ height: 350,
+
+ x: 690, y: 260,
+
+ title : 'BorderLayout Panel',
+ layout: 'border',
+
+ defaults: {
+ collapsible: true,
+ split : true
+ },
+
+ items: [
+ {
+ title : 'North',
+ region : 'north',
+ html : 'North',
+ ctitle : 'North',
+ margins: '5 5 0 5',
+ height : 70
+ },
+ {
+ title : 'South',
+ region : 'south',
+ html : 'South',
+ collapseMode: 'mini',
+ margins : '0 5 5 5',
+ height : 70
+ },
+ {
+ title : 'West',
+ region : 'west',
+ html : 'West',
+ collapseMode: 'mini',
+ margins : '0 0 0 5',
+ width : 100
+ },
+ {
+ title : 'East',
+ region : 'east',
+ html : 'East',
+ margins: '0 5 0 0',
+ width : 100
+ },
+ {
+ title : 'Center',
+ region : 'center',
+ collapsible: false,
+ html : 'Center'
+ }
+ ]
+ });
+
+ /**
+ * Grid
+ */
+ var myData = [
+ ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
+ ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
+ ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
+ ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
+ ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
+ ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
+ ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
+ ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
+ ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
+ ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am']
+ ];
+
+ var store = Ext.create('Ext.data.ArrayStore', {
+ fields: [
+ {name: 'company'},
+ {name: 'price', type: 'float'},
+ {name: 'change', type: 'float'},
+ {name: 'pctChange', type: 'float'},
+ {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
+ ],
+ sorters: {
+ property : 'company',
+ direction: 'ASC'
+ },
+ data: myData,
+ pageSize: 8
+ });
+
+ var pagingBar = Ext.createWidget('pagingtoolbar', {
+ store : store,
+ displayInfo: true,
+ displayMsg : 'Displaying topics {0} - {1} of {2}'
+ });
+
+ items.push({
+ xtype: 'gridpanel',
+
+ height: 200,
+ width : 450,
+
+ x: 690, y: 620,
+
+ title: 'GridPanel',
+
+ store: store,
+
+ columns: [
+ {header: "Company", flex: 1, sortable: true, dataIndex: 'company'},
+ {header: "Price", width: 75, sortable: true, dataIndex: 'price'},
+ {header: "Change", width: 75, sortable: true, dataIndex: 'change'},
+ {header: "% Change", width: 75, sortable: true, dataIndex: 'pctChange'},
+ {header: "Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
+ ],
+ loadMask : true,
+
+ viewConfig: {
+ stripeRows: true
+ },
+
+ bbar: pagingBar,
+ tbar: [
+ {text: 'Toolbar'},
+ '->',
+ {
+ xtype: 'triggerfield',
+ trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger',
+ trigger2Cls: Ext.baseCSSPrefix + 'form-search-trigger'
+ }
+ ]
+ });
+
+ //=============================================================
+ // Accordion / Tree
+ //=============================================================
+ var tree = Ext.create('Ext.tree.Panel', {
+ title: 'TreePanel',
+ root: {
+ text: 'Root Node',
+ expanded: true,
+ children: [{
+ text: 'Item 1',
+ leaf: true
+ }, {
+ text: 'Item 2',
+ leaf: true
+ }, {
+ text: 'Folder',
+ children: [{
+ text: 'Item 3',
+ leaf: true
+ }]
+ }]
+ }
+ });
+
+ var accConfig = {
+ title : 'Accordion and TreePanel',
+ layout: 'accordion',
+
+ x: 690, y: 830,
+
+ width : 450,
+ height: 240,
+
+ bodyStyle: {
+ 'background-color': '#eee'
+ },
+
+ items: [
+ tree, {
+ title: 'Item 2',
+ html: 'Some content'
+ }, {
+ title: 'Item 3',
+ html : 'Some content'
+ }
+ ]
+ };
+
+ items.push(accConfig);
+
+ /**
+ * Tabs
+ */
+ var tabCfg = {
+ xtype: 'tabpanel',
+
+ width : 310,
+ height: 150,
+
+ activeTab: 0,
+
+ defaults: {
+ bodyStyle: 'padding:10px;'
+ },
+
+ items: [
+ {
+ title: 'Tab 1',
+ html : 'Free-standing tab panel'
+ },
+ {
+ title : 'Tab 2',
+ closable: true
+ },
+ {
+ title : 'Tab 3',
+ closable: true
+ }
+ ]
+ };
+
+ items.push(Ext.applyIf({
+ x: 50, y: 970,
+
+ enableTabScroll: true,
+
+ items: [
+ {
+ title: 'Tab 1',
+ html : 'Tab panel for display in a border layout'
+ },
+ {
+ title : 'Tab 2',
+ closable: true
+ },
+ {
+ title : 'Tab 3',
+ closable: true
+ },
+ {
+ title : 'Tab 4',
+ closable: true
+ },
+ {
+ title : 'Tab 5',
+ closable: true
+ },
+ {
+ title : 'Tab 6',
+ closable: true
+ }
+ ]
+ }, tabCfg));
+
+ items.push(Ext.apply({
+ plain: true,
+ x : 370, y: 970
+ }, tabCfg));
+
+ /**
+ * DatePicker
+ */
+ items.push({
+ xtype: 'panel',
+
+ x: 50, y: 1130,
+
+ border: false,
+ width : 180,
+
+ items: {
+ xtype: 'datepicker'
+ }
+ });
+
+ //=============================================================
+ // Resizable
+ //=============================================================
+ var rszEl = Ext.getBody().createChild({
+ style: 'background: transparent;',
+ html: '