| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | Ext.require('Ext.chart.*');Ext.require(['Ext.layout.container.Fit', 'Ext.window.MessageBox']);Ext.onReady(function () {    store1.loadData(generateData(6, 20));    var donut = false,        chart = Ext.create('Ext.chart.Chart', {            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'                }            }]        });    var panel1 = Ext.create('widget.panel', {        width: 800,        height: 600,        title: 'Semester Trends',        renderTo: Ext.getBody(),        layout: 'fit',        tbar: [{            text: 'Save Chart',            handler: function() {                Ext.MessageBox.confirm('Confirm Download', 'Would you like to download the chart as an image?', function(choice){                    if(choice == 'yes'){                        chart.save({                            type: 'image/png'                        });                    }                });            }        }, {            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: chart    });});
 |