]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/classic/view/animated-dataview.js
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / classic / view / animated-dataview.js
CommitLineData
6527f429
DM
1Ext.require([\r
2 'Ext.data.*',\r
3 'Ext.util.*',\r
4 'Ext.view.View',\r
5 'Ext.ux.DataView.Animated',\r
6 'Ext.XTemplate',\r
7 'Ext.panel.Panel',\r
8 'Ext.layout.container.Fit',\r
9 'Ext.toolbar.*',\r
10 'Ext.slider.Multi'\r
11]);\r
12\r
13Ext.onReady(function() {\r
14 //data to be loaded into the ArrayStore\r
15 var data = [\r
16 [true, false, 1, "LG KS360", 54, "240 x 320 pixels", "2 Megapixel", "Pink", "Slider", 359, 2.400000],\r
17 [true, true, 2, "Sony Ericsson C510a Cyber-shot", 180, "320 x 240 pixels", "3.2 Megapixel", "Future black", "Candy bar", 11, 0.000000],\r
18 [true, true, 3, "LG PRADA KE850", 155, "240 x 400 pixels", "2 Megapixel", "Black", "Candy bar", 113, 0.000000],\r
19 [true, true, 4, "Nokia N900 Smartphone 32 GB", 499, "800 x 480 pixels", "5 Megapixel", "( the image of the product displayed may be of a different color )", "Slider", 320, 3.500000],\r
20 [true, false, 5, "Motorola RAZR V3", 65, "96 x 80 pixels", "0.3 Megapixel", "Silver", "Folder type phone", 5, 2.200000],\r
21 [true, true, 6, "LG KC910 Renoir", 242, "240 x 400 pixels", "8 Megapixel", "Black", "Candy bar", 79, 0.000000],\r
22 [true, true, 7, "BlackBerry Curve 8520 BlackBerry", 299, "320 x 240 pixels", "2 Megapixel", "Frost", "Candy bar", 320, 2.640000],\r
23 [true, true, 8, "Sony Ericsson W580i Walkman", 120, "240 x 320 pixels", "2 Megapixel", "Urban gray", "Slider", 1, 0.000000],\r
24 [true, true, 9, "Nokia E63 Smartphone 110 MB", 170, "320 x 240 pixels", "2 Megapixel", "Ultramarine blue", "Candy bar", 319, 2.360000],\r
25 [true, true, 10, "Sony Ericsson W705a Walkman", 274, "320 x 240 pixels", "3.2 Megapixel", "Luxury silver", "Slider", 5, 0.000000],\r
26 [false, false, 11, "Nokia 5310 XpressMusic", 140, "320 x 240 pixels", "2 Megapixel", "Blue", "Candy bar", 344, 2.000000],\r
27 [false, true, 12, "Motorola SLVR L6i", 50, "128 x 160 pixels", "", "Black", "Candy bar", 38, 0.000000],\r
28 [false, true, 13, "T-Mobile Sidekick 3 Smartphone 64 MB", 75, "240 x 160 pixels", "1.3 Megapixel", "", "Sidekick", 115, 0.000000],\r
29 [false, true, 14, "Audiovox CDM8600", 5, "", "", "", "Folder type phone", 1, 0.000000],\r
30 [false, true, 15, "Nokia N85", 315, "320 x 240 pixels", "5 Megapixel", "Copper", "Dual slider", 143, 2.600000],\r
31 [false, true, 16, "Sony Ericsson XPERIA X1", 399, "800 x 480 pixels", "3.2 Megapixel", "Solid black", "Slider", 14, 0.000000],\r
32 [false, true, 17, "Motorola W377", 77, "128 x 160 pixels", "0.3 Megapixel", "", "Folder type phone", 35, 0.000000],\r
33 [true, true, 18, "LG Xenon GR500", 1, "240 x 400 pixels", "2 Megapixel", "Red", "Slider", 658, 2.800000],\r
34 [true, false, 19, "BlackBerry Curve 8900 BlackBerry", 349, "480 x 360 pixels", "3.2 Megapixel", "", "Candy bar", 21, 2.440000],\r
35 [true, false, 20, "Samsung SGH U600 Ultra Edition 10.9", 135, "240 x 320 pixels", "3.2 Megapixel", "", "Slider", 169, 2.200000]\r
36 ];\r
37\r
38 Ext.define('Mobile', {\r
39 extend: 'Ext.data.Model',\r
40 fields: [\r
41 {name: 'hasEmail', type: 'bool'},\r
42 {name: 'hasCamera', type: 'bool'},\r
43 {name: 'id', type: 'int'},\r
44 'name',\r
45 {name: 'price', type: 'int'},\r
46 'screen',\r
47 'camera',\r
48 'color',\r
49 'type',\r
50 {name: 'reviews', type: 'int'},\r
51 {name: 'screen-size', type: 'int'}\r
52 ]\r
53 });\r
54\r
55 var store = Ext.create('Ext.data.ArrayStore', {\r
56 model: 'Mobile',\r
57 sortInfo: {\r
58 field : 'name',\r
59 direction: 'ASC'\r
60 },\r
61 data: data\r
62 });\r
63\r
64 //filters the store based on the current slider values\r
65 function filterData(slider) {\r
66 var values = slider.getValues();\r
67\r
68 store.getFilters().replaceAll({\r
69 fn: function(record) {\r
70 return record.get('price') >= values[0] && record.get('price') <= values[1];\r
71 }\r
72 });\r
73\r
74 store.sort('name', 'ASC');\r
75 }\r
76\r
77 var dataview = Ext.create('Ext.view.View', {\r
78 store: store,\r
79 tpl : Ext.create('Ext.XTemplate',\r
80 '<tpl for=".">',\r
81 '<div class="phone">',\r
82 '<img width="64" height="64" src="images/phones/{[values.name.replace(/ /g, "-")]}.png" />',\r
83 '<strong>{name}</strong>',\r
84 '<span>{price:usMoney} ({reviews} Review{[values.reviews == 1 ? "" : "s"]})</span>',\r
85 '</div>',\r
86 '</tpl>'\r
87 ),\r
88\r
89 plugins : [\r
90 Ext.create('Ext.ux.DataView.Animated', {\r
91 duration : 550,\r
92 idProperty: 'id'\r
93 })\r
94 ],\r
95 id: 'phones',\r
96\r
97 itemSelector: 'div.phone',\r
98 overItemCls : 'phone-hover',\r
99 multiSelect : true,\r
100 scrollable : true\r
101 });\r
102\r
103 var phoneSlider = Ext.create('Ext.slider.Multi', {\r
104 hideLabel: true,\r
105 width : 300,\r
106 minValue : 0,\r
107 maxValue : 500,\r
108 values : [80, 320],\r
109\r
110 listeners: {\r
111 changecomplete: filterData\r
112 }\r
113 });\r
114\r
115 Ext.create('Ext.panel.Panel', {\r
116 title: 'Animated DataView',\r
117 layout: 'fit',\r
118 items : dataview,\r
119 height: 555,\r
120 width : 650,\r
121 tbar : [\r
122 'Filter phone price:',\r
123 ' ',\r
124 phoneSlider\r
125 ],\r
126 renderTo: 'docbody'\r
127 });\r
128\r
129 //perform initial filter\r
130 filterData(phoneSlider);\r
131});\r