]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.require([\r |
2 | 'Ext.window.Window',\r | |
3 | 'Ext.panel.Panel',\r | |
4 | 'Ext.toolbar.*',\r | |
5 | 'Ext.tree.Panel',\r | |
6 | 'Ext.container.Viewport',\r | |
7 | 'Ext.container.ButtonGroup',\r | |
8 | 'Ext.form.*',\r | |
9 | 'Ext.tab.*',\r | |
10 | 'Ext.slider.*',\r | |
11 | 'Ext.layout.*',\r | |
12 | 'Ext.button.*',\r | |
13 | 'Ext.grid.*',\r | |
14 | 'Ext.data.*',\r | |
15 | 'Ext.util.*',\r | |
16 | \r | |
17 | 'Ext.perf.Monitor'\r | |
18 | ]);\r | |
19 | \r | |
20 | function hasOption (name) {\r | |
21 | return window.location.search.indexOf(name) >= 0;\r | |
22 | }\r | |
23 | \r | |
24 | var isTouchTheme;\r | |
25 | \r | |
26 | if (hasOption('diag')) {\r | |
27 | Ext.require([\r | |
28 | 'Ext.diag.layout.ContextItem',\r | |
29 | 'Ext.diag.layout.Context'\r | |
30 | ]);\r | |
31 | }\r | |
32 | \r | |
33 | function getBasicPanel () {\r | |
34 | return applySizing('basicPanel', {\r | |
35 | xtype: 'panel',\r | |
36 | title: 'Basic Panel',\r | |
37 | animCollapse: true,\r | |
38 | bodyPadding: 5,\r | |
39 | html: 'Some content'\r | |
40 | });\r | |
41 | }\r | |
42 | \r | |
43 | function getCollapsedPanel () {\r | |
44 | return applySizing('collapsedPanel', {\r | |
45 | xtype: 'panel',\r | |
46 | title: 'Collapsed Panel',\r | |
47 | animCollapse: true,\r | |
48 | bodyPadding: 5,\r | |
49 | html: 'Some content',\r | |
50 | collapsible: true,\r | |
51 | collapsed: true\r | |
52 | });\r | |
53 | }\r | |
54 | \r | |
55 | function getMaskedPanel () {\r | |
56 | return Ext.widget(applySizing('maskedPanel', {\r | |
57 | xtype: 'panel',\r | |
58 | title: 'Masked Panel',\r | |
59 | bodyPadding: 5,\r | |
60 | html: 'Some content',\r | |
61 | animCollapse: true,\r | |
62 | collapsible: true\r | |
63 | }));\r | |
64 | }\r | |
65 | \r | |
66 | function getFramedPanel () {\r | |
67 | return applySizing('framedPanel', {\r | |
68 | xtype: 'panel',\r | |
69 | title: 'Framed Panel',\r | |
70 | animCollapse: true,\r | |
71 | dockedItems: [{\r | |
72 | dock: 'top',\r | |
73 | xtype: 'toolbar',\r | |
74 | items: [{\r | |
75 | text: 'test'\r | |
76 | }]\r | |
77 | }, {\r | |
78 | dock: 'right',\r | |
79 | xtype: 'toolbar',\r | |
80 | items: [{\r | |
81 | text: 'test B'\r | |
82 | }]\r | |
83 | }, {\r | |
84 | dock: 'left',\r | |
85 | xtype: 'toolbar',\r | |
86 | items: [{\r | |
87 | text: 'test A'\r | |
88 | }]\r | |
89 | }],\r | |
90 | html : 'Some content',\r | |
91 | frame: true\r | |
92 | });\r | |
93 | }\r | |
94 | \r | |
95 | function getCollapsedFramedPanel () {\r | |
96 | return applySizing('collapsedFramedPanel', {\r | |
97 | xtype: 'panel',\r | |
98 | title: 'Collapsed Framed Panel',\r | |
99 | animCollapse: true,\r | |
100 | bodyPadding: 5,\r | |
101 | bodyBorder: true,\r | |
102 | html: 'Some content',\r | |
103 | frame: true,\r | |
104 | collapsible: true,\r | |
105 | collapsed: true\r | |
106 | });\r | |
107 | }\r | |
108 | \r | |
109 | function getPanelWithToolbars () {\r | |
110 | /**\r | |
111 | * Toolbar with a menu\r | |
112 | */\r | |
113 | return applySizing('panelWithToolbars', {\r | |
114 | xtype: 'panel',\r | |
115 | id: 'panelWithToolbars',\r | |
116 | title: 'Basic Panel With Toolbars',\r | |
117 | collapsible: true,\r | |
118 | tbar: {\r | |
119 | id: 'panelWithToolbars_tbar',\r | |
120 | items: [{\r | |
121 | xtype: 'buttongroup',\r | |
122 | title: 'Button Group',\r | |
123 | id: 'panelWithToolbars_btngroup',\r | |
124 | columns: 2,\r | |
125 | defaults: {\r | |
126 | scale: 'small'\r | |
127 | },\r | |
128 | items: [\r | |
129 | {\r | |
130 | xtype:'splitbutton',\r | |
131 | text: 'Menu Button',\r | |
132 | iconCls: 'add16',\r | |
133 | menu: [{text: 'Menu Button 1'}]\r | |
134 | },\r | |
135 | {\r | |
136 | xtype:'splitbutton',\r | |
137 | text: 'Cut',\r | |
138 | icon: '../shared/icons/fam/cross.gif',\r | |
139 | id: 'panelWithToolbars_splitbtn',\r | |
140 | menu: [{text: 'Cut Menu Item'}]\r | |
141 | }\r | |
142 | ]\r | |
143 | }]\r | |
144 | },\r | |
145 | bbar: {\r | |
146 | id: 'panelWithToolbars_bbar',\r | |
147 | items: [\r | |
148 | 'Toolbar',\r | |
149 | ' ',\r | |
150 | '-',\r | |
151 | isTouchTheme ? null : {text: 'Button'},\r | |
152 | {\r | |
153 | text: 'Menu' + (isTouchTheme ? ' Button' : ''),\r | |
154 | id : 'menu-btn',\r | |
155 | menu: [\r | |
156 | {text: 'Menu item'},\r | |
157 | {text: 'Check 1', checked: true},\r | |
158 | {text: 'Check 2', checked: false},\r | |
159 | '-',\r | |
160 | {text: 'Option 1', checked: true, group: 'opts'},\r | |
161 | {text: 'Option 2', checked: false, group: 'opts'},\r | |
162 | '-',\r | |
163 | {\r | |
164 | text: 'Sub-items',\r | |
165 | menu: Ext.widget('menu', {\r | |
166 | items: [\r | |
167 | {text: 'Item 1'},\r | |
168 | {text: 'Item 2'}\r | |
169 | ]\r | |
170 | })\r | |
171 | }\r | |
172 | ]\r | |
173 | },\r | |
174 | {\r | |
175 | xtype: 'splitbutton',\r | |
176 | text : 'Split Button',\r | |
177 | menu : Ext.widget('menu', {\r | |
178 | items: [\r | |
179 | {text: 'Item 1'},\r | |
180 | {text: 'Item 2'}\r | |
181 | ]\r | |
182 | })\r | |
183 | },\r | |
184 | {\r | |
185 | xtype : 'button',\r | |
186 | enableToggle: true,\r | |
187 | pressed : true,\r | |
188 | text : 'Toggle Button'\r | |
189 | }\r | |
190 | ]\r | |
191 | },\r | |
192 | lbar: {\r | |
193 | id: 'panelWithToolbars_lbar',\r | |
194 | items: [\r | |
195 | { text: 'Left' }\r | |
196 | ]\r | |
197 | },\r | |
198 | rbar: {\r | |
199 | id: 'panelWithToolbars_rbar',\r | |
200 | items: [\r | |
201 | { text: 'Right' }\r | |
202 | ]\r | |
203 | }\r | |
204 | });\r | |
205 | }\r | |
206 | \r | |
207 | function getFormWidgets () {\r | |
208 | return applySizing('formWidgets', {\r | |
209 | xtype: 'form',\r | |
210 | id : 'form-widgets',\r | |
211 | title: 'Form Widgets',\r | |
212 | frame: true,\r | |
213 | \r | |
214 | tools: [\r | |
215 | {type:'close'},\r | |
216 | {type:'minimize'},\r | |
217 | {type:'maximize'},\r | |
218 | {type:'restore'},\r | |
219 | {type:'gear'},\r | |
220 | {type:'pin'},\r | |
221 | {type:'unpin'},\r | |
222 | {type:'right'},\r | |
223 | {type:'left'},\r | |
224 | {type:'down'},\r | |
225 | {type:'refresh'},\r | |
226 | {type:'minus'},\r | |
227 | {type:'plus'},\r | |
228 | {type:'help'},\r | |
229 | {type:'search'},\r | |
230 | {type:'save'},\r | |
231 | {type:'print'}\r | |
232 | ],\r | |
233 | \r | |
234 | bodyPadding: '10 20',\r | |
235 | \r | |
236 | defaults: {\r | |
237 | anchor : '98%',\r | |
238 | msgTarget : 'side',\r | |
239 | allowBlank: false\r | |
240 | },\r | |
241 | \r | |
242 | items: [\r | |
243 | {\r | |
244 | xtype: 'label',\r | |
245 | text : 'Plain Label'\r | |
246 | },\r | |
247 | {\r | |
248 | fieldLabel: 'TextField',\r | |
249 | xtype : 'textfield',\r | |
250 | name : 'someField',\r | |
251 | emptyText : 'Enter a value'\r | |
252 | },\r | |
253 | {\r | |
254 | fieldLabel: 'ComboBox',\r | |
255 | xtype: 'combo',\r | |
256 | store: ['Foo', 'Bar']\r | |
257 | },\r | |
258 | {\r | |
259 | fieldLabel: 'DateField',\r | |
260 | xtype : 'datefield',\r | |
261 | name : 'date'\r | |
262 | },\r | |
263 | {\r | |
264 | fieldLabel: 'TimeField',\r | |
265 | name: 'time',\r | |
266 | xtype: 'timefield'\r | |
267 | },\r | |
268 | {\r | |
269 | fieldLabel: 'NumberField',\r | |
270 | xtype : 'numberfield',\r | |
271 | name : 'number',\r | |
272 | emptyText : '(This field is optional)',\r | |
273 | allowBlank: true\r | |
274 | },\r | |
275 | {\r | |
276 | fieldLabel: 'TextArea',\r | |
277 | xtype : 'textareafield',\r | |
278 | name : 'message',\r | |
279 | cls : 'x-form-valid',\r | |
280 | value : 'This field is hard-coded to have the "valid" style (it will require some code changes to add/remove this style dynamically)'\r | |
281 | },\r | |
282 | {\r | |
283 | fieldLabel: 'Checkboxes',\r | |
284 | xtype: 'checkboxgroup',\r | |
285 | columns: [100,100],\r | |
286 | items: [\r | |
287 | {boxLabel: 'Foo', checked: true,id:'fooChk',inputId:'fooChkInput'},\r | |
288 | {boxLabel: 'Bar'}\r | |
289 | ]\r | |
290 | },\r | |
291 | {\r | |
292 | fieldLabel: 'Radios',\r | |
293 | xtype: 'radiogroup',\r | |
294 | columns: [100,100],\r | |
295 | items: [{boxLabel: 'Foo', checked: true, name: 'radios'},{boxLabel: 'Bar', name: 'radios'}]\r | |
296 | },\r | |
297 | {\r | |
298 | hideLabel : true,\r | |
299 | id : 'htmleditor',\r | |
300 | xtype : 'htmleditor',\r | |
301 | name : 'html',\r | |
302 | enableColors: false,\r | |
303 | value : 'Mouse over toolbar for tooltips.<br /><br />The HTMLEditor IFrame requires a refresh between a stylesheet switch to get accurate colors.',\r | |
304 | height : 110\r | |
305 | },\r | |
306 | {\r | |
307 | xtype : 'fieldset',\r | |
308 | title : 'Plain Fieldset',\r | |
309 | items: [\r | |
310 | {\r | |
311 | hideLabel: true,\r | |
312 | xtype: 'radiogroup',\r | |
313 | items: [\r | |
314 | {boxLabel: 'Radio A', checked: true, name: 'radiogrp2'},\r | |
315 | {boxLabel: 'Radio B', name: 'radiogrp2'}\r | |
316 | ]\r | |
317 | }\r | |
318 | ]\r | |
319 | },\r | |
320 | {\r | |
321 | xtype : 'fieldset',\r | |
322 | title : 'Collapsible Fieldset',\r | |
323 | collapsible: true,\r | |
324 | items: [\r | |
325 | { xtype: 'checkbox', boxLabel: 'Checkbox 1' },\r | |
326 | { xtype: 'checkbox', boxLabel: 'Checkbox 2' }\r | |
327 | ]\r | |
328 | },\r | |
329 | {\r | |
330 | xtype : 'fieldset',\r | |
331 | title : 'Checkbox Fieldset',\r | |
332 | checkboxToggle: true,\r | |
333 | items: [\r | |
334 | { xtype: 'radio', boxLabel: 'Radio 1', name: 'radiongrp1' },\r | |
335 | { xtype: 'radio', boxLabel: 'Radio 2', name: 'radiongrp1' }\r | |
336 | ]\r | |
337 | }\r | |
338 | ],\r | |
339 | \r | |
340 | buttons: [\r | |
341 | {\r | |
342 | text :'Toggle Enabled',\r | |
343 | handler: function() {\r | |
344 | this.up('form').items.each(function(item) {\r | |
345 | item.setDisabled(!item.disabled);\r | |
346 | });\r | |
347 | }\r | |
348 | },\r | |
349 | {\r | |
350 | text : 'Reset Form',\r | |
351 | handler: function() {\r | |
352 | Ext.getCmp('form-widgets').getForm().reset();\r | |
353 | }\r | |
354 | },\r | |
355 | {\r | |
356 | text : 'Validate',\r | |
357 | handler: function() {\r | |
358 | Ext.getCmp('form-widgets').getForm().isValid();\r | |
359 | }\r | |
360 | }\r | |
361 | ]\r | |
362 | });\r | |
363 | }\r | |
364 | \r | |
365 | function getBorderLayout() {\r | |
366 | var padding = {\r | |
367 | classic: 5,\r | |
368 | gray: 5,\r | |
369 | triton: 10,\r | |
370 | 'neptune-touch': 16,\r | |
371 | 'crisp-touch': 16\r | |
372 | };\r | |
373 | \r | |
374 | return applySizing('borderLayout', {\r | |
375 | xtype: 'panel',\r | |
376 | title : 'BorderLayout Panel',\r | |
377 | layout: {\r | |
378 | type: 'border',\r | |
379 | padding: padding[Ext.themeName] || 8 // match padding to theme splitter size\r | |
380 | },\r | |
381 | collapsible: true,\r | |
382 | \r | |
383 | defaults: {\r | |
384 | collapsible: true,\r | |
385 | split : true\r | |
386 | },\r | |
387 | \r | |
388 | items: [\r | |
389 | {\r | |
390 | title : 'North',\r | |
391 | region : 'north',\r | |
392 | html : 'North',\r | |
393 | height : isTouchTheme ? 100 : 70\r | |
394 | },\r | |
395 | {\r | |
396 | title : 'South',\r | |
397 | region : 'south',\r | |
398 | html : 'South',\r | |
399 | collapseMode: 'mini',\r | |
400 | height : isTouchTheme ? 100 : 70\r | |
401 | },\r | |
402 | {\r | |
403 | title : 'West',\r | |
404 | region : 'west',\r | |
405 | html : 'West',\r | |
406 | collapseMode: 'mini',\r | |
407 | width : isTouchTheme ? 150 : 100\r | |
408 | },\r | |
409 | {\r | |
410 | title : 'East',\r | |
411 | region : 'east',\r | |
412 | html : 'East',\r | |
413 | width : isTouchTheme ? 150 : 100\r | |
414 | },\r | |
415 | {\r | |
416 | title : 'Center',\r | |
417 | region : 'center',\r | |
418 | collapsible: false,\r | |
419 | html : 'Center'\r | |
420 | }\r | |
421 | ]\r | |
422 | });\r | |
423 | }\r | |
424 | \r | |
425 | function getStore () {\r | |
426 | // Reverse order data should get sorted by the MemoryProxy\r | |
427 | var myData = [\r | |
428 | ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],\r | |
429 | ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],\r | |
430 | ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],\r | |
431 | ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],\r | |
432 | ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],\r | |
433 | ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],\r | |
434 | ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],\r | |
435 | ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],\r | |
436 | ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],\r | |
437 | ['3m Co',71.72,0.02,0.03,'9/1 12:00am']\r | |
438 | ];\r | |
439 | \r | |
440 | return Ext.create('Ext.data.ArrayStore', {\r | |
441 | fields: [\r | |
442 | {name: 'company'},\r | |
443 | {name: 'price', type: 'float', convert: null},\r | |
444 | {name: 'change', type: 'float', convert: null},\r | |
445 | {name: 'pctChange', type: 'float', convert: null},\r | |
446 | {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}\r | |
447 | ],\r | |
448 | sorters: {\r | |
449 | property : 'company',\r | |
450 | direction: 'ASC'\r | |
451 | },\r | |
452 | data: myData,\r | |
453 | pageSize: 8\r | |
454 | });\r | |
455 | }\r | |
456 | \r | |
457 | function getGrid () {\r | |
458 | var store = getStore(),\r | |
459 | pagingBar = Ext.widget('pagingtoolbar', {\r | |
460 | store : store,\r | |
461 | displayInfo: true,\r | |
462 | displayMsg : 'Displaying topics {0} - {1} of {2}'\r | |
463 | });\r | |
464 | \r | |
465 | return applySizing('grid', {\r | |
466 | xtype: 'gridpanel',\r | |
467 | title: 'GridPanel',\r | |
468 | collapsible: true,\r | |
469 | \r | |
470 | store: store,\r | |
471 | \r | |
472 | columns: [\r | |
473 | {header: "Company", flex: 1, sortable: true, dataIndex: 'company'},\r | |
474 | {header: "Price", width: 75, sortable: true, dataIndex: 'price'},\r | |
475 | {header: "Change", width: isTouchTheme ? 90 : 80, sortable: true, dataIndex: 'change'},\r | |
476 | {header: "% Change", width: isTouchTheme ? 105 : 95, sortable: true, dataIndex: 'pctChange'},\r | |
477 | {header: "Last Updated", width: isTouchTheme ? 130 : 110, sortable: true, xtype: 'datecolumn', dataIndex: 'lastChange'}\r | |
478 | ],\r | |
479 | loadMask: true,\r | |
480 | \r | |
481 | bbar: pagingBar,\r | |
482 | tbar: [\r | |
483 | {text: 'Toolbar'},\r | |
484 | '->',\r | |
485 | {\r | |
486 | xtype: 'triggerfield',\r | |
487 | trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger',\r | |
488 | trigger2Cls: Ext.baseCSSPrefix + 'form-search-trigger'\r | |
489 | }\r | |
490 | ]\r | |
491 | });\r | |
492 | }\r | |
493 | \r | |
494 | function getAccordion () {\r | |
495 | var tree = Ext.create('Ext.tree.Panel', {\r | |
496 | title: 'TreePanel',\r | |
497 | root: {\r | |
498 | text: 'Root Node',\r | |
499 | expanded: true,\r | |
500 | children: [{\r | |
501 | text: 'Item 1',\r | |
502 | leaf: true\r | |
503 | }, {\r | |
504 | text: 'Item 2',\r | |
505 | leaf: true\r | |
506 | }, {\r | |
507 | text: 'Folder',\r | |
508 | children: [{\r | |
509 | text: 'Item 3',\r | |
510 | leaf: true\r | |
511 | }]\r | |
512 | }]\r | |
513 | }\r | |
514 | });\r | |
515 | \r | |
516 | return applySizing('accordion', {\r | |
517 | title : 'Accordion and TreePanel',\r | |
518 | collapsible: true,\r | |
519 | layout: 'accordion',\r | |
520 | \r | |
521 | items: [\r | |
522 | tree, {\r | |
523 | title: 'Item 2',\r | |
524 | html: 'Some content'\r | |
525 | }, {\r | |
526 | title: 'Item 3',\r | |
527 | html : 'Some content'\r | |
528 | }\r | |
529 | ]\r | |
530 | });\r | |
531 | }\r | |
532 | \r | |
533 | function getTabs (config) {\r | |
534 | return Ext.apply({\r | |
535 | xtype: 'tabpanel',\r | |
536 | activeTab: 0,\r | |
537 | defaults: {\r | |
538 | bodyPadding: 10\r | |
539 | },\r | |
540 | \r | |
541 | items: [\r | |
542 | {\r | |
543 | title: 'Tab 1',\r | |
544 | html : 'Free-standing tab panel'\r | |
545 | },\r | |
546 | {\r | |
547 | title : 'Tab 2',\r | |
548 | closable: true\r | |
549 | },\r | |
550 | {\r | |
551 | title : 'Tab 3',\r | |
552 | closable: true\r | |
553 | }\r | |
554 | ]\r | |
555 | }, config);\r | |
556 | }\r | |
557 | \r | |
558 | function getScrollingTabs () {\r | |
559 | return applySizing('scrollingTabs', getTabs({\r | |
560 | enableTabScroll: true,\r | |
561 | plain: true,\r | |
562 | items: [\r | |
563 | {\r | |
564 | title: 'Tab 1',\r | |
565 | html : 'Tab panel 1 content'\r | |
566 | },\r | |
567 | {\r | |
568 | title: 'Tab 2',\r | |
569 | html : 'Tab panel 2 content',\r | |
570 | closable: true\r | |
571 | },\r | |
572 | {\r | |
573 | title: 'Tab 3',\r | |
574 | html : 'Tab panel 3 content',\r | |
575 | closable: true\r | |
576 | },\r | |
577 | {\r | |
578 | title: 'Tab 4',\r | |
579 | html : 'Tab panel 4 content',\r | |
580 | closable: true\r | |
581 | },\r | |
582 | {\r | |
583 | title: 'Tab 5',\r | |
584 | html : 'Tab panel 5 content',\r | |
585 | closable: true\r | |
586 | },\r | |
587 | {\r | |
588 | title: 'Tab 6',\r | |
589 | html : 'Tab panel 6 content',\r | |
590 | closable: true\r | |
591 | }\r | |
592 | ]\r | |
593 | }));\r | |
594 | }\r | |
595 | \r | |
596 | function getPlainTabs () {\r | |
597 | return applySizing('plainTabs', getTabs({\r | |
598 | plain: true\r | |
599 | }));\r | |
600 | }\r | |
601 | \r | |
602 | function getDatePicker () {\r | |
603 | return applySizing('datePicker', {\r | |
604 | xtype: 'panel',\r | |
605 | border: false,\r | |
606 | items: {\r | |
607 | xtype: 'datepicker'\r | |
608 | }\r | |
609 | });\r | |
610 | }\r | |
611 | \r | |
612 | function getProgressBar () {\r | |
613 | var progressbar = Ext.widget('progressbar', {\r | |
614 | value: 0.5\r | |
615 | });\r | |
616 | \r | |
617 | if (!hasOption('nopbar')) {\r | |
618 | setTimeout(function() {\r | |
619 | progressbar.wait({\r | |
620 | //animate: true,\r | |
621 | text: 'Progress text...'\r | |
622 | });\r | |
623 | }, 7000);\r | |
624 | }\r | |
625 | \r | |
626 | return applySizing('progressBar', {\r | |
627 | xtype: 'panel',\r | |
628 | title: 'ProgressBar / Slider',\r | |
629 | bodyPadding: isTouchTheme ? 10 : 5,\r | |
630 | layout: 'anchor',\r | |
631 | \r | |
632 | items: [\r | |
633 | progressbar,\r | |
634 | {\r | |
635 | xtype : 'slider',\r | |
636 | hideLabel: true,\r | |
637 | value : 50,\r | |
638 | margin : '5 0 0 0',\r | |
639 | anchor : '100%'\r | |
640 | },\r | |
641 | {\r | |
642 | xtype : 'slider',\r | |
643 | vertical: true,\r | |
644 | value : 50,\r | |
645 | height : isTouchTheme ? 200 : 100,\r | |
646 | margin : '5 0 0 0'\r | |
647 | }\r | |
648 | ]\r | |
649 | });\r | |
650 | }\r | |
651 | \r | |
652 | function getFramedGrid () {\r | |
653 | return applySizing('framedGrid', {\r | |
654 | xtype: 'grid',\r | |
655 | title: 'Framed Grid',\r | |
656 | collapsible: true,\r | |
657 | store: getStore(),\r | |
658 | multiSelect: true,\r | |
659 | emptyText: 'No images to display',\r | |
660 | frame: true,\r | |
661 | enableColumnMove: false,\r | |
662 | columns: [\r | |
663 | {header: "Company", flex: 1, sortable: true, dataIndex: 'company'},\r | |
664 | {header: "Price", width: isTouchTheme ? 90 : 75, sortable: true, dataIndex: 'price'},\r | |
665 | {header: "Change", width: isTouchTheme ? 90 : 75, sortable: true, dataIndex: 'change'}\r | |
666 | ]\r | |
667 | });\r | |
668 | }\r | |
669 | \r | |
670 | function getBasicWindow () {\r | |
671 | return Ext.widget('window', applySizing('basicWindow', {\r | |
672 | id: 'basicWindow',\r | |
673 | hidden: false,\r | |
674 | title: 'Window',\r | |
675 | bodyPadding: 5,\r | |
676 | html : 'Click Submit for Confirmation Msg.',\r | |
677 | collapsible: true,\r | |
678 | floating : false,\r | |
679 | closable : false,\r | |
680 | draggable : false,\r | |
681 | resizable: { handles: 's' },\r | |
682 | animCollapse: true,\r | |
683 | \r | |
684 | tbar: [\r | |
685 | {text: 'Toolbar'}\r | |
686 | ],\r | |
687 | buttons: [\r | |
688 | {\r | |
689 | text : 'Submit',\r | |
690 | id : 'message_box',\r | |
691 | handler: function() {\r | |
692 | Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?');\r | |
693 | }\r | |
694 | }\r | |
695 | ]\r | |
696 | }));\r | |
697 | }\r | |
698 | \r | |
699 | function getResizer() {\r | |
700 | return Ext.widget(applySizing('resizer', {\r | |
701 | xtype: 'component',\r | |
702 | style: 'background:transparent;overflow:hidden;',\r | |
703 | html: '<div style="margin:20px">Resizable handles</div>',\r | |
704 | resizable: {\r | |
705 | handles: 'all',\r | |
706 | pinned: true\r | |
707 | }\r | |
708 | }));\r | |
709 | }\r | |
710 | \r | |
711 | function addFormWindow () {\r | |
712 | Ext.widget('window', {\r | |
713 | x: 660, y: 1230,\r | |
714 | \r | |
715 | width : 450,\r | |
716 | // height : 360,\r | |
717 | minWidth: 450,\r | |
718 | \r | |
719 | title: 'Window',\r | |
720 | \r | |
721 | bodyPadding: '5 5 0 5',\r | |
722 | \r | |
723 | collapsible: true,\r | |
724 | closable : false,\r | |
725 | draggable : false,\r | |
726 | resizable: { handles: 's' },\r | |
727 | animCollapse: true,\r | |
728 | \r | |
729 | items: [\r | |
730 | {\r | |
731 | xtype : 'fieldset',\r | |
732 | title : 'Plain Fieldset',\r | |
733 | items: [\r | |
734 | {\r | |
735 | fieldLabel: 'TextField',\r | |
736 | xtype : 'textfield',\r | |
737 | name : 'someField',\r | |
738 | emptyText : 'Enter a value',\r | |
739 | anchor : '100%'\r | |
740 | },\r | |
741 | {\r | |
742 | fieldLabel: 'ComboBox',\r | |
743 | xtype : 'combo',\r | |
744 | store : ['Foo', 'Bar'],\r | |
745 | anchor : '100%'\r | |
746 | },\r | |
747 | {\r | |
748 | fieldLabel: 'DateField',\r | |
749 | xtype : 'datefield',\r | |
750 | name : 'date',\r | |
751 | anchor : '100%'\r | |
752 | },\r | |
753 | {\r | |
754 | fieldLabel: 'TimeField',\r | |
755 | name : 'time',\r | |
756 | xtype : 'timefield',\r | |
757 | anchor : '100%'\r | |
758 | },\r | |
759 | {\r | |
760 | fieldLabel: 'NumberField',\r | |
761 | xtype : 'numberfield',\r | |
762 | name : 'number',\r | |
763 | emptyText : '(This field is optional)',\r | |
764 | allowBlank: true,\r | |
765 | anchor : '100%'\r | |
766 | },\r | |
767 | {\r | |
768 | fieldLabel: 'TextArea',\r | |
769 | xtype : 'textareafield',\r | |
770 | name : 'message',\r | |
771 | cls : 'x-form-valid',\r | |
772 | value : 'This field is hard-coded to have the "valid" style (it will require some code changes to add/remove this style dynamically)',\r | |
773 | anchor : '100%'\r | |
774 | },\r | |
775 | {\r | |
776 | fieldLabel: 'Checkboxes',\r | |
777 | xtype: 'checkboxgroup',\r | |
778 | columns: [100,100],\r | |
779 | items: [\r | |
780 | {boxLabel: 'Foo', checked: true,id:'winFooChk',inputId:'winFooChkInput'},\r | |
781 | {boxLabel: 'Bar'}\r | |
782 | ]\r | |
783 | },\r | |
784 | {\r | |
785 | xtype: 'radiogroup',\r | |
786 | columns: [100,100],\r | |
787 | fieldLabel: 'Radio Group',\r | |
788 | items: [\r | |
789 | {boxLabel: 'Radio A', checked: true, name: 'radiogrp2'},\r | |
790 | {boxLabel: 'Radio B', name: 'radiogrp2'}\r | |
791 | ]\r | |
792 | }\r | |
793 | ]\r | |
794 | }\r | |
795 | ],\r | |
796 | \r | |
797 | buttons: [\r | |
798 | {\r | |
799 | text : 'Submit',\r | |
800 | handler: function() {\r | |
801 | Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?');\r | |
802 | }\r | |
803 | }\r | |
804 | ]\r | |
805 | }).show();\r | |
806 | }\r | |
807 | \r | |
808 | var sizing = {\r | |
809 | mainContainer: {\r | |
810 | classic: [1130, 1460],\r | |
811 | neptune: [1250, 1600],\r | |
812 | 'neptune-touch': [790, 4140]\r | |
813 | },\r | |
814 | basicPanel: {\r | |
815 | classic: [150, 90, 20, 20],\r | |
816 | neptune: [150, 130, 20, 20],\r | |
817 | 'neptune-touch': [250, 150, 0, 0]\r | |
818 | },\r | |
819 | collapsedPanel: {\r | |
820 | classic: [150, 70, 20, 120],\r | |
821 | neptune: [150, 120, 20, 160],\r | |
822 | 'neptune-touch': [250, 150, 0, 170]\r | |
823 | },\r | |
824 | maskedPanel: {\r | |
825 | classic: [130, 170, 180, 20],\r | |
826 | neptune: [130, 260, 180, 20],\r | |
827 | 'neptune-touch': [230, 320, 270, 0]\r | |
828 | },\r | |
829 | framedPanel: {\r | |
830 | classic: [170, 100, 320, 20],\r | |
831 | neptune: [200, 150, 320, 20],\r | |
832 | 'neptune-touch': [270, 150, 520, 0]\r | |
833 | },\r | |
834 | collapsedFramedPanel: {\r | |
835 | classic: [170, 60, 320, 130],\r | |
836 | neptune: [200, 100, 320, 180],\r | |
837 | 'neptune-touch': [270, 150, 520, 170]\r | |
838 | },\r | |
839 | basicWindow: {\r | |
840 | classic: [150, 170, 500, 20, {\r | |
841 | minWidth: 150,\r | |
842 | minHeight: 150,\r | |
843 | maxHeight: 170\r | |
844 | }],\r | |
845 | neptune: [150, 260, 530, 20, {\r | |
846 | minWidth: 150,\r | |
847 | minHeight: 200,\r | |
848 | maxHeight: 260\r | |
849 | }],\r | |
850 | 'neptune-touch': [250, 260, 0, 340, {\r | |
851 | minWidth: 150,\r | |
852 | minHeight: 200,\r | |
853 | maxHeight: 260\r | |
854 | }]\r | |
855 | },\r | |
856 | panelWithToolbars: {\r | |
857 | classic: [450, 170, 660, 20],\r | |
858 | neptune: [500, 260, 690, 20],\r | |
859 | 'neptune-touch': [520, 260, 270, 340]\r | |
860 | },\r | |
861 | formWidgets: {\r | |
862 | classic: [630, 750, 20, 200],\r | |
863 | neptune: [660, 750, 20, 290],\r | |
864 | triton: [660, 1000, 20, 290],\r | |
865 | 'neptune-touch': [790, 940, 0, 620]\r | |
866 | },\r | |
867 | borderLayout: {\r | |
868 | classic: [450, 350, 660, 200],\r | |
869 | neptune: [500, 350, 690, 290],\r | |
870 | 'neptune-touch': [790, 500, 0, 1580]\r | |
871 | },\r | |
872 | grid: {\r | |
873 | classic: [450, 200, 660, 560],\r | |
874 | neptune: [500, 200, 690, 650],\r | |
875 | triton: [500, 300, 690, 650],\r | |
876 | 'neptune-touch': [790, 400, 0, 2100]\r | |
877 | },\r | |
878 | accordion: {\r | |
879 | classic: [450, 240, 660, 770],\r | |
880 | neptune: [500, 240, 690, 860],\r | |
881 | triton: [500, 340, 690, 960],\r | |
882 | 'neptune-touch': [790, 340, 0, 2520]\r | |
883 | },\r | |
884 | scrollingTabs: {\r | |
885 | classic: [310, 150, 20, 960],\r | |
886 | neptune: [325, 150, 20, 1050],\r | |
887 | triton: [325, 150, 20, 1300],\r | |
888 | 'neptune-touch': [420, 200, 0, 2880]\r | |
889 | },\r | |
890 | plainTabs: {\r | |
891 | classic: [310, 150, 340, 960],\r | |
892 | neptune: [325, 150, 355, 1050],\r | |
893 | triton: [325, 150, 355, 1300],\r | |
894 | 'neptune-touch': [350, 200, 440, 2880]\r | |
895 | },\r | |
896 | datePicker: {\r | |
897 | classic: [180, undefined, 20, 1120],\r | |
898 | neptune: [212, undefined, 20, 1210],\r | |
899 | triton: [310, undefined, 20, 1460],\r | |
900 | 'neptune-touch': [282, undefined, 0, 3780]\r | |
901 | },\r | |
902 | progressBar: {\r | |
903 | classic: [450, 200, 660, 1020],\r | |
904 | neptune: [500, 200, 690, 1110],\r | |
905 | triton: [500, 220, 690, 1310],\r | |
906 | 'neptune-touch': [790, 340, 0, 3100]\r | |
907 | },\r | |
908 | framedGrid: {\r | |
909 | classic: [450, 180, 660, 1230],\r | |
910 | neptune: [500, 180, 690, 1320],\r | |
911 | triton: [500, 280, 690, 1540],\r | |
912 | 'neptune-touch': [790, 300, 0, 3460]\r | |
913 | },\r | |
914 | resizer: {\r | |
915 | classic: [440, 220, 210, 1120],\r | |
916 | neptune: [440, 220, 240, 1210],\r | |
917 | triton: [340, 220, 340, 1460],\r | |
918 | 'neptune-touch': [488, 314, 302, 3780]\r | |
919 | }\r | |
920 | };\r | |
921 | \r | |
922 | var theme;\r | |
923 | function getSizing(id) {\r | |
924 | var theme = Ext.themeName,\r | |
925 | info;\r | |
926 | \r | |
927 | if (theme == 'gray') {\r | |
928 | // same dimensions\r | |
929 | theme = 'classic';\r | |
930 | }\r | |
931 | \r | |
932 | info = sizing[id][theme];\r | |
933 | if (!info && theme === 'crisp') {\r | |
934 | // default to neptune for crisp\r | |
935 | info = sizing[id]['neptune'];\r | |
936 | }\r | |
937 | if (!info && theme === 'triton') {\r | |
938 | // default to neptune for triton\r | |
939 | info = sizing[id]['neptune'];\r | |
940 | }\r | |
941 | if (!info && theme === 'crisp-touch') {\r | |
942 | // default to neptune-touch for crisp\r | |
943 | info = sizing[id]['neptune-touch'];\r | |
944 | }\r | |
945 | \r | |
946 | return info;\r | |
947 | }\r | |
948 | \r | |
949 | function applySizing(id, config) {\r | |
950 | \r | |
951 | var info = getSizing(id),\r | |
952 | keys = ['width', 'height', 'x', 'y'],\r | |
953 | len = keys.length,\r | |
954 | i = 0,\r | |
955 | val;\r | |
956 | \r | |
957 | if (info) {\r | |
958 | for (; i < len; ++i) {\r | |
959 | val = info[i];\r | |
960 | if (val !== undefined) {\r | |
961 | config[keys[i]] = val;\r | |
962 | }\r | |
963 | }\r | |
964 | \r | |
965 | // Any other config options\r | |
966 | Ext.applyIf(config, info[len]);\r | |
967 | }\r | |
968 | \r | |
969 | return config;\r | |
970 | }\r | |
971 | \r | |
972 | function doThemes () {\r | |
973 | var time = Ext.perf.getTimestamp(),\r | |
974 | maskedPanel;\r | |
975 | \r | |
976 | var items = [\r | |
977 | getBasicPanel(),\r | |
978 | getCollapsedPanel(),\r | |
979 | maskedPanel = getMaskedPanel(),\r | |
980 | getFramedPanel(),\r | |
981 | getCollapsedFramedPanel(),\r | |
982 | getBasicWindow(),\r | |
983 | getPanelWithToolbars(),\r | |
984 | getFormWidgets(),\r | |
985 | getBorderLayout(),\r | |
986 | getGrid(),\r | |
987 | getAccordion(),\r | |
988 | getScrollingTabs(),\r | |
989 | getPlainTabs(),\r | |
990 | getDatePicker(),\r | |
991 | getProgressBar(),\r | |
992 | getFramedGrid(),\r | |
993 | getResizer(),\r | |
994 | 0 // end of list (makes commenting out any of the above easy\r | |
995 | ];\r | |
996 | items.pop(); // remove the 0 on the end\r | |
997 | \r | |
998 | mainContainer = Ext.create('Ext.container.Container', applySizing('mainContainer', {\r | |
999 | id: 'main-container',\r | |
1000 | renderTo: document.body,\r | |
1001 | layout: 'absolute',\r | |
1002 | items: items\r | |
1003 | }));\r | |
1004 | \r | |
1005 | //addFormWindow();\r | |
1006 | \r | |
1007 | setTimeout(function() {\r | |
1008 | // we may comment out the creation of this for testing\r | |
1009 | if (maskedPanel) {\r | |
1010 | maskedPanel.setLoading({\r | |
1011 | msg: 'Loading...',\r | |
1012 | useTargetEl: true\r | |
1013 | });\r | |
1014 | }\r | |
1015 | \r | |
1016 | if (!hasOption('notips')) {\r | |
1017 | Ext.QuickTips.init();\r | |
1018 | }\r | |
1019 | }, 2000);\r | |
1020 | \r | |
1021 | time = Ext.perf.getTimestamp() - time;\r | |
1022 | Ext.log('total time: ' + Math.round(time));\r | |
1023 | }\r | |
1024 | \r | |
1025 | Ext.onReady(function() {\r | |
1026 | isTouchTheme = Ext.themeName === 'neptune-touch' || Ext.themeName === 'crisp-touch';\r | |
1027 | if (!hasOption('perf')) {\r | |
1028 | if (hasOption('delay')) {\r | |
1029 | setTimeout(doThemes, 1000);\r | |
1030 | } else {\r | |
1031 | doThemes();\r | |
1032 | }\r | |
1033 | } else {\r | |
1034 | setTimeout(function () {\r | |
1035 | var a = document.createElement('a');\r | |
1036 | a.innerHTML = 'Page Analyzer';\r | |
1037 | a.style.position = "absolute";\r | |
1038 | a.style.left = "5px";\r | |
1039 | a.style.top = "5px";\r | |
1040 | a.href = 'javascript:void(window.open("../page-analyzer/page-analyzer.html","pageAn"))';\r | |
1041 | document.body.appendChild(a);\r | |
1042 | \r | |
1043 | Ext.Perf.setup();\r | |
1044 | Ext.Perf.monitor('onReady', doThemes);\r | |
1045 | Ext.Perf.report();\r | |
1046 | }, 1000);\r | |
1047 | }\r | |
1048 | });\r |