Apr 14

image

Currently I am working on a bigger project where Extjs has an important role. Up to now I had no experience with it charts capabilities. From an earlier work experience I knew Fusion Charts, but I was looking for something “for free”, so my eye fell on Google Charts.


No working right away

My usual search on internet led to this contribution on the Extjs website. So I started the effort to make it work in the latest Extjs release 3.2.

After creating a test environment, where I downloaded the extension from the website I was hoping that it would work immediately, but it didn’t. The demo on this link, is using Extjs release 2.2.

Respect the DOM please

I will keep this story short, but a small argument I have for all who put their effort on maintaining a framework like Extjs, or any other framework. It would be also nice if any modifications to the DOM in relation to the core of a product is well documented, in a kind of history matrix.

It would be great if modifications to objects and functions leave the DOM manipulations more intact in relation with the prior release. I think that many bugs can be addressed to this DOM manipulations. It makes versions also not downwards compatible. This time the pain was just one (1) word that made the difference between working and frustration.

The right type.typeimage

Reason why it was not functioning was a modification in the DOM outcome for Ext.StoreMgr and the function fields.get(). The user extension for Google Charts misinterpreted the column information send to the Google API.

In de original javascript ext.ux.gvisualizationpanel.js (line 23) you can find:

tbl.addColumn(convert[f.type], c.label || c, id);

For version 3.2 of Ext this has to be:

tbl.addColumn(convert[f.type.type], c.label || c, id);

 

Links

Credits

Aaron Conran (twitter)

One Response to “Google charts in Extjs”

  1. Manig says:

    Hi,

    I’ve been trying to work with GvisualizartionPanel, extending the visualizationpkg (line 46 in GVisualizationPanel.js), trying to use google’s GeoMap.

    I thought it might work using:

    visualizationPkgs: {
    ‘geomap’:'Geomap’
    },

    But it doesn’t work, any ideas

    Thanks, and good post

Leave a Reply

preload preload preload