Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / charts / Pie.js
diff --git a/examples/charts/Pie.js b/examples/charts/Pie.js
new file mode 100644 (file)
index 0000000..fbcdc42
--- /dev/null
@@ -0,0 +1,72 @@
+Ext.require('Ext.chart.*');
+Ext.require('Ext.layout.container.Fit');
+
+Ext.onReady(function () {
+    store1.loadData(generateData(6, 20));
+
+    var donut = false,
+        panel1 = Ext.create('widget.panel', {
+        width: 800,
+        height: 600,
+        title: 'Semester Trends',
+        renderTo: Ext.getBody(),
+        layout: 'fit',
+        tbar: [{
+            text: 'Reload Data',
+            handler: function() {
+                store1.loadData(generateData(6, 20));
+            }
+        }, {
+            enableToggle: true,
+            pressed: false,
+            text: 'Donut',
+            toggleHandler: function(btn, pressed) {
+                var chart = Ext.getCmp('chartCmp');
+                chart.series.first().donut = pressed ? 35 : false;
+                chart.refresh();
+            }
+        }],
+        items: {
+            xtype: 'chart',
+            id: 'chartCmp',
+            animate: true,
+            store: store1,
+            shadow: true,
+            legend: {
+                position: 'right'
+            },
+            insetPadding: 60,
+            theme: 'Base:gradients',
+            series: [{
+                type: 'pie',
+                field: 'data1',
+                showInLegend: true,
+                donut: donut,
+                tips: {
+                  trackMouse: true,
+                  width: 140,
+                  height: 28,
+                  renderer: function(storeItem, item) {
+                    //calculate percentage.
+                    var total = 0;
+                    store1.each(function(rec) {
+                        total += rec.get('data1');
+                    });
+                    this.setTitle(storeItem.get('name') + ': ' + Math.round(storeItem.get('data1') / total * 100) + '%');
+                  }
+                },
+                highlight: {
+                  segment: {
+                    margin: 20
+                  }
+                },
+                label: {
+                    field: 'name',
+                    display: 'rotate',
+                    contrast: true,
+                    font: '18px Arial'
+                }
+            }]
+        }
+    });
+});