Integrate extjs and highcharts

Source: Internet
Author: User

Integrate extjs and highcharts

The painting of the highcharts library is better than ExtJS, but ExtJS has powerful class management. Both are good.

Generally, only one database is selected for commercial projects to reduce costs. However, if it is only used for non-profit projects, you can combine the two to use extjs's powerful class management and highcharts's powerful image functions. The advantages of both are also a good way to use them.




The extjs panel title is used, and the highchart drawing is used.

1. Import the data to the database using the following code: reference the extjs, jquery, and highcharts libraries.

 <script type="text/javascript" src="../ext-4.1.1a/ext-debug.js"></script><script type="text/javascript" src="../jquery-1.11.1.min.js"></script><script type="text/javascript" src="../Highcharts-4.0.4/js/highcharts.js"></script><script type="text/javascript" src="app.js"></script>

2 global configuration
The following code configures the class path in extjs and the global configuration options of highchart in the app. js file.

// Extjs path configuration Ext. loader. setConfig ({enabled: true, paths: {jack: 'app/Jack'}); // highchart global configuration Highcharts. setOptions ({global: {useUTC: false}, // colors: {//}, // lang: {//}, chart: {animation: false }});

In the following code, the file/jack/view/TemperatureHC. js defines a highchart variable to save the highchart handle, and sets the renderTo in highchart as the body element in extjs panel.
Ext.define('jack.view.TemperatureHC', {    extend: 'Ext.panel.Panel',    config: {        panelTitle: null,        chartTitle: null    },    requires: [        'Ext.panel.Panel'    ],        highchart: null,    constructor: function (config) {        this.initConfig(config);        this.callParent(arguments);    },    initComponent: function() {        var me = this;        if (me.panelTitle) {            me.title = me.panelTitle;        }        this.callParent(arguments);    },    afterComponentLayout: function(width, height, oldWidth, oldHeight) {        var me = this;        var chartId = me.id + "-body";        me.highchart = new Highcharts.Chart({            chart: {                renderTo: chartId,                animation: false            },            title: {                text: me.chartTitle            },            xAxis: {                categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']            },            yAxis: {                title: {                    text: 'Temperature (°C)'                },                plotLines: [{                    value: 0,                    width: 1,                    color: '#808080'                }]            },            tooltip: {                valueSuffix: '°C'            },            legend: {                layout: 'vertical',                align: 'right',                verticalAlign: 'middle',                borderWidth: 0            },            series: [{                name: 'Tokyo',                data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]            }, {                name: 'New York',                data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]            }, {                name: 'Berlin',                data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]            }, {                name: 'London',                data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]            }]        });    }});

4 include and display
Ext. require (['ext. container. container ', 'Jack. view. temperatureHC ']); var pageContainer = null; Ext. onReady (function () {pageContainer = Ext. create ('Jack. view. temperatureHC ', {id: 'htcontainer', width: 800, height: 300, panelTitle: 'temperature this year', renderTo: Ext. getBody ()});});


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.