femi
femi

Reputation: 984

sencha touch and charts

Has anyone been able to incorporate Charts and graphs into Sencha Touch?

If so, an example would be appreciated.

Thanks

Upvotes: 9

Views: 10308

Answers (7)

zhoufei
zhoufei

Reputation: 41

The package with the chart api for Sencha exists ( http://dev.sencha.com/deploy/touch-charts-beta/examples/) but appears very hard to integrate in the sencha touch solution (files dependency, function not defined in some version of the sencha touch package).

The solution I found is to install the trial version of Sencha Architect which already include the graph api, create a mobile project (touch project) and package it. Then I have a whole package with the right dependencies and I can reuse it without depending on Sencha Architect.

Upvotes: 0

Soenhay
Soenhay

Reputation: 4058

Here is a link to a Sencha forum with some examples of how to incorporate a chart into an existing Sencha Touch 2.0 application:

http://www.sencha.com/forum/showthread.php?190053-How-to-Integrate-Touch-2-Charts-into-an-existing-Sencha-Touch-2.0-Final-application.

Upvotes: 0

SashaZd
SashaZd

Reputation: 3319

Here's the code for a sample chart in Sencha Touch

var SampleLineChart = new Ext.chart.Chart({
    fullscreen : true,
    iconCls: 'line', 
    cls: 'chartpanel',
    theme: 'Energy',
    interactions: [ 'reset',
    {
        type: 'panzoom',
        axes: {
            right: {}
        }
    },
    {
        type: 'iteminfo',
        gesture: 'tap',
        listeners: {
            show: function(interaction, item, panel) {

//                    Ext.dispatch({
//                        controller : 'Users',
//                        action : 'popupInfoAbtChart',
//                        data : {item:item, panel:panel}
//                    });

            }
        }
    }],
    animate: false,
    store: EnergyApp.stores.ChartStore, //choose for consumption
    axes: [{
        type: 'Numeric',
        position: 'right',
        minimum: 0,
        majorTickSteps : 10,
        minorTickSteps : 5,
        fields: ['generatedpv', 'buildcons','excessPV'],
        title: 'Y-axis title'
    },
    {
        type: 'Category',
        position: 'bottom',
        fields: ['day'],
        title: 'X-axis title',
        label: {
            rotate: {
                degrees: 45
            }
        }
    }],
    legend: {
        position: Ext.is.Phone ? 'left' : 'top'
    },

     series: [{
      type: 'line',
       highlight: false,
       showMarkers: true,
       fill: false,
       smooth: true,
       axis: 'right',
       xField: 'day',
       yField: 'generatedpv',
        title: 'Field 1
    },
{
      type: 'line',
       highlight: false,
       showMarkers: true,
       fill: false,
       smooth: true,
       axis: 'right',
       xField: 'day',
       yField: 'buildcons',
       title: 'Field 2
    }],

    listeners: {
        afterrender: function(me) {
            me.on('beforerefresh', function() {
                if (me.ownerCt.getActiveItem().id !== me.id) {
                    return false;
                }
            }, me);
        }
    }
});

For more code examples take a look at the EnergyApp Example in the Sencha-Touch-Charts example folder. Its been depicted quite well

Upvotes: 0

endemic
endemic

Reputation: 1366

I was under the impression that Raphael (http://raphaeljs.com/) would eventually be incorporated into Sencha Touch for its' graphing component (http://g.raphaeljs.com/). Until then, you can pretty easily just include the extra Raphael .js files and make graphs that way. Something like:

<script src="sencha-touch-1.0/sencha-touch-debug.js" type="text/javascript" charset="utf-8"></script>

<!-- Raphael JS -->
<script src="raphael/raphael-min.js" type="text/javascript" charset="utf-8"></script>
<script src="raphael/g.raphael-min.js" type="text/javascript" charset="utf-8"></script>
<script src="raphael/g.pie-min.js" type="text/javascript" charset="utf-8"></script>
<script src="raphael/g.line-min.js" type="text/javascript" charset="utf-8"></script>
<script src="raphael/g.bar-min.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript" charset="utf-8">
    Ext.setup({
        onReady: function() 
        {
            // Set up main panel!
            var tabPanel = new Ext.Panel
            ({
                fullscreen: true,
                html: '<div id="graph"></div>'
            });

            // Try to draw a graph!
            var r = Raphael('graph');
            r.g.txtattr.font = '12px Helvetica, Arial, sans-serif';
            r.g.text(150, 250, "Demo chart with title");
            r.g.linechart(10, 10, 300, 220, [[1, 2, 3, 4, 5, 6, 7],[3.5, 4.5, 5.5, 6.5, 7, 8]], [[12, 32, 23, 15, 17, 27, 22], [10, 20, 30, 25, 15, 28]], {nostroke: false, axis: "0 0 1 1", symbol: "o", smooth: true});

        }
    });
</script>

Upvotes: 4

jd291
jd291

Reputation: 261

they now have some examples. they should help http://dev.sencha.com/deploy/touch-charts-beta/examples/

Upvotes: 0

angryITguy
angryITguy

Reputation: 9561

Sencha Touch Charts has just been released

Upvotes: 7

Huang
Huang

Reputation: 49

Take a look at http://code.google.com/p/oppo-touching/. Someone already moved charting to Snecha Touch. Also there is news that next version of Sencha Touch will include charting.

Upvotes: 4

Related Questions