]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/kitchensink/modern/src/view/chart/LineWithRenderer.js
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / kitchensink / modern / src / view / chart / LineWithRenderer.js
CommitLineData
6527f429
DM
1/**\r
2 * Demonstrates how to use Ext.chart.series.Line with a renderer function\r
3 */\r
4Ext.define('KitchenSink.view.chart.LineWithRenderer', {\r
5 extend: 'Ext.Panel',\r
6 requires: [\r
7 'Ext.chart.CartesianChart', \r
8 'Ext.chart.series.Line', \r
9 'Ext.chart.axis.Numeric', \r
10 'Ext.draw.modifier.Highlight',\r
11 'Ext.chart.axis.Time', \r
12 'Ext.chart.interactions.ItemHighlight'\r
13 ],\r
14\r
15 layout: 'fit',\r
16 items: [{\r
17 xtype: 'toolbar',\r
18 docked: 'top',\r
19 cls: 'charttoolbar',\r
20 items: [{\r
21 xtype: 'spacer'\r
22 }, {\r
23 iconCls: 'x-fa fa-refresh',\r
24 text: 'Refresh',\r
25 handler: function(a, b, c, d, e) {\r
26 Ext.getStore('Pie').generateData(10);\r
27 }\r
28 }]\r
29 }, {\r
30 xtype: 'cartesian',\r
31 store: 'Pie',\r
32 background: 'white',\r
33 series: [{\r
34 type: 'line',\r
35 xField: 'name',\r
36 yField: 'g1',\r
37 style: {\r
38 strokeStyle: 'powderblue',\r
39 fillStyle: 'aliceblue',\r
40 lineWidth: 4\r
41 },\r
42 marker: {\r
43 type: 'circle',\r
44 fillStyle: 'yellow',\r
45 radius: 10\r
46 },\r
47 renderer: function(sprite, config, rendererData, index) {\r
48 var store = rendererData.store,\r
49 storeItems = store.getData().items,\r
50 currentRecord = storeItems[index],\r
51 previousRecord = (index > 0 ? storeItems[index - 1] : currentRecord),\r
52 current = currentRecord && currentRecord.data['g1'],\r
53 previous = previousRecord && previousRecord.data['g1'],\r
54 changes = {};\r
55\r
56 switch (config.type) {\r
57 case 'marker':\r
58 if (index == 0) {\r
59 return null; // keep the default style for the first marker\r
60 }\r
61 changes.strokeStyle = (current >= previous ? 'green' : 'red');\r
62 changes.fillStyle = (current >= previous ? 'palegreen' : 'lightpink');\r
63 changes.lineWidth = 2;\r
64 break;\r
65 case 'line':\r
66 changes.strokeStyle = (current >= previous ? 'green' : 'red');\r
67 changes.fillStyle = (current >= previous ? 'palegreen' : 'tomato');\r
68 changes.fillOpacity = .1;\r
69 break;\r
70 }\r
71 return changes;\r
72 }\r
73\r
74\r
75\r
76 }],\r
77 axes: [{\r
78 type: 'numeric',\r
79 position: 'left',\r
80 fields: ['g1'],\r
81 minimum: 0\r
82 }, {\r
83 type: 'category',\r
84 position: 'bottom',\r
85 fields: 'name'\r
86 }]\r
87 }],\r
88\r
89 initialize: function() {\r
90 this.callParent();\r
91 Ext.getStore('Pie').generateData(10);\r
92 }\r
93});