123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- Ext.require('Ext.chart.*');
- Ext.require(['Ext.Window', 'Ext.layout.container.Fit', 'Ext.fx.target.Sprite', 'Ext.window.MessageBox']);
- Ext.onReady(function () {
- store1.loadData(generateData(5, 0));
-
- var colors = ['url(#v-1)',
- 'url(#v-2)',
- 'url(#v-3)',
- 'url(#v-4)',
- 'url(#v-5)'];
-
- var baseColor = '#eee';
-
- Ext.define('Ext.chart.theme.Fancy', {
- extend: 'Ext.chart.theme.Base',
-
- constructor: function(config) {
- this.callParent([Ext.apply({
- axis: {
- fill: baseColor,
- stroke: baseColor
- },
- axisLabelLeft: {
- fill: baseColor
- },
- axisLabelBottom: {
- fill: baseColor
- },
- axisTitleLeft: {
- fill: baseColor
- },
- axisTitleBottom: {
- fill: baseColor
- },
- colors: colors
- }, config)]);
- }
- });
- var chart = Ext.create('Ext.chart.Chart', {
- id: 'chartCmp',
- xtype: 'chart',
- theme: 'Fancy',
- animate: {
- easing: 'bounceOut',
- duration: 750
- },
- store: store1,
- background: {
- fill: 'rgb(17, 17, 17)'
- },
- gradients: [
- {
- 'id': 'v-1',
- 'angle': 0,
- stops: {
- 0: {
- color: 'rgb(212, 40, 40)'
- },
- 100: {
- color: 'rgb(117, 14, 14)'
- }
- }
- },
- {
- 'id': 'v-2',
- 'angle': 0,
- stops: {
- 0: {
- color: 'rgb(180, 216, 42)'
- },
- 100: {
- color: 'rgb(94, 114, 13)'
- }
- }
- },
- {
- 'id': 'v-3',
- 'angle': 0,
- stops: {
- 0: {
- color: 'rgb(43, 221, 115)'
- },
- 100: {
- color: 'rgb(14, 117, 56)'
- }
- }
- },
- {
- 'id': 'v-4',
- 'angle': 0,
- stops: {
- 0: {
- color: 'rgb(45, 117, 226)'
- },
- 100: {
- color: 'rgb(14, 56, 117)'
- }
- }
- },
- {
- 'id': 'v-5',
- 'angle': 0,
- stops: {
- 0: {
- color: 'rgb(187, 45, 222)'
- },
- 100: {
- color: 'rgb(85, 10, 103)'
- }
- }
- }],
- axes: [{
- type: 'Numeric',
- position: 'left',
- fields: ['data1'],
- minimum: 0,
- maximum: 100,
- label: {
- renderer: Ext.util.Format.numberRenderer('0,0')
- },
- title: 'Number of Hits',
- grid: {
- odd: {
- stroke: '#555'
- },
- even: {
- stroke: '#555'
- }
- }
- }, {
- type: 'Category',
- position: 'bottom',
- fields: ['name'],
- title: 'Month of the Year'
- }],
- series: [{
- type: 'column',
- axis: 'left',
- highlight: true,
- label: {
- display: 'insideEnd',
- 'text-anchor': 'middle',
- field: 'data1',
- orientation: 'horizontal',
- fill: '#fff',
- font: '17px Arial'
- },
- renderer: function(sprite, storeItem, barAttr, i, store) {
- barAttr.fill = colors[i % colors.length];
- return barAttr;
- },
- style: {
- opacity: 0.95
- },
- xField: 'name',
- yField: 'data1'
- }]
- });
-
- var win = Ext.create('Ext.Window', {
- width: 800,
- height: 600,
- minHeight: 400,
- minWidth: 550,
- hidden: false,
- maximizable: true,
- title: 'Column Chart',
- 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(5, 0));
- }
- }],
- items: chart
- });
- });
|