PDA

View Full Version : Feature : Charts



zaccret
29 Apr 2008, 2:24 AM
Hi,

Do you plan to support Yahoo UI Charts, like gwt-ext ? I know that YUI is full javascript whereas you want to implement a full Java solution, but this feature should be welcome ;-)

sheesh-kebab
29 Apr 2008, 7:15 AM
I'd vote for support of the FusionCharts instead.

hendricd
29 Apr 2008, 7:42 AM
Fusion Chart wrappers are already available in ux Form. (See sig below)

darrellmeyer
29 Apr 2008, 11:40 AM
We do plan to add charting support either using YUI or Fusion Charts. A roadmap will be posted soon that will show what is planned and in what order.

zaccret
29 Apr 2008, 11:48 AM
Great that's a good new !! Thank you.
Actually that's not very important either YUI or Fusion Charts (except I'm not a great supporter in choosing proprietary software - Flash).

hendricd
29 Apr 2008, 11:59 AM
Guess I didn't notice which Open Discussion Forum this was. ;)

jherfurth
11 May 2008, 2:22 PM
This project looks cool too: http://teethgrinder.co.uk/open-flash-chart/index.php.

FlexIDX
12 May 2008, 10:57 PM
jherfurth - I agree, that looks really cool, I already have fusion charts but will have to give the open source one a go, also at least they under stand the GPL, and don't try to say that if used all your source code is also gpl like ummm Jack.

zaccret
14 May 2008, 1:15 AM
I think we can leave Fusion Charts away. The v3 is a proprietary product. The "free" v2 has less features and is no more open-sourced : http://www.fusioncharts.com/free/TermsOfUse.asp. It is free of money but not open source : you have to send an email to InfoSoft Global if you want to redistribute it (even as a part of a software/product/application), you cannot modify it... actually, you cannot even get the source code.

Something like Open Flash Chart (under GPL license) or Yahoo UI ("modified" BSD license - GPL-compatible) could be better.

We've also talked about that on the roadmap thread : http://extjs.com/forum/showthread.php?p=164749

jherfurth
14 May 2008, 8:56 AM
Also, Open Flash Chart is going JSON: http://sourceforge.net/forum/forum.php?thread_id=2026419&forum_id=716572

The data format read by Open Flash Chart 1 is a bit weird :-)

willgillen
9 Jun 2008, 6:04 PM
I vote for Open Flash Chart. I like the LGPL, and don't like the licensing of FusionCharts

zaccret
9 Jun 2008, 9:39 PM
I vote for Open Flash Chart. I like the LGPL, and don't like the licensing of FusionCharts

Open Flash is GPL

hendricd
10 Jun 2008, 4:38 AM
Just to add, OFC-2 (http://teethgrinder.co.uk/open-flash-chart-2/) will be LGPL (OFC-1 is GPL), and supports JSON for the chart series definition and formatting.

Not sure how useful version 2 will be for Ext/Gxt /:).

What a shame, the change to JSON makes it an appealing package.

willgillen
19 Jun 2008, 8:28 PM
Unless OFC (Open Flash Chart) version 2 (the LGPL version) gets off the ground, I'll vote for fusion charts. I just found that Fusion Charts has a "free" version with what looks basically like a BSD license (free for open source and/or commercial use). It has some minor functional restrictions, but nothing that I see as showstoppers.

Here:
http://www.fusioncharts.com/free

zaccret
19 Jun 2008, 9:43 PM
Unless OFC (Open Flash Chart) version 2 (the LGPL version) gets off the ground, I'll vote for fusion charts. I just found that Fusion Charts has a "free" version with what looks basically like a BSD license (free for open source and/or commercial use). It has some minor functional restrictions, but nothing that I see as showstoppers.

Here:
http://www.fusioncharts.com/free

I don't think you can compare the "free" Fusion Charts license to the BSD license... BSD license is an open source license, Fusion Charts is not open source.

willgillen
4 Jul 2008, 8:02 AM
I don't think you can compare the "free" Fusion Charts license to the BSD license... BSD license is an open source license, Fusion Charts is not open source.

Well.... not exactly BSD (I suppose I shouldn't have gone that far), but according to their license, it can be used in commercial products without royalties or without forcing the developer of the commercial product to release in open-source (GPL or otherwise). So, unless I've missed something, the "free" version of Fusion Charts seems like a pretty good charting plugin...

EvilTed
17 Jul 2008, 7:44 AM
I'd vote for Fusion Charts with a flexible enough API to allow us to choose either free v2 or commercial v3.

ET

sdc
17 Jul 2008, 10:53 PM
I'd vote for Open Flash Chart. I would prefer not working with a closed-source product.

zaccret
22 Jul 2008, 2:28 AM
By the way, Open Flash Chart is GPL but there is no issue with wrapping it in Ext GWT even with commercial licence, as the author say on this page (http://teethgrinder.co.uk/open-flash-chart/download.php) :


Open Flash Chart is a compiled flash object which communicates with the world by downloading a data file. This is 'at arms length' and means you can use it in a commercial product, so long as you inform your users that Open Flash Chart is GPL and provide access (e.g. a link) to the source code.

uros
5 Aug 2008, 2:55 AM
It's GPL-free and would fit into Ext perfectly.

gslender
16 Aug 2008, 3:44 AM
Folks, I've almost got a GWT Open Free Chart widget library completed :D

There are 1 or 2 bugs in OFC2 that stop you from having more than 1 chart widget in the dom at a time /:) ...but you can remove and add that 1 chart widget as needed (as well as dynamically update it) - so not a show stopper so far.

I plan to publish to google code so all can freely use and improve.

At the moment it's a GWT widget, but would only take a small amount of effort to wrap a GXT panel and longer term goal is to plug into the ModelData and Store to allow for dynamic data updates - how cool would that be ;-)

When that happens I'll release a ext.ux version to the forum.

I'm going to clean up the code, add some docs and examples and then I'm looking for some volunteers to provide feedback etc... so PM me with you email addresss if you are keen.

Cheers,
Grant

pcrombach
16 Aug 2008, 11:33 AM
Me too I vote for Open FLash Charts. I'ts not perfect, but its totally free. It's missing now but maybe ther is somebody who can add (flash) functions like pie 3D.

stefmal
19 Aug 2008, 5:55 AM
hi, gslender
I've download your ofcgwt. It looks great.
But could you provide some information about how to use it ?

thx
--
stef

EvilTed
28 Aug 2008, 4:31 PM
Folks, some of you are missing the point I think:
Commercial companies will not touch GPL period.
This is why my company bought a commercial license for ExtGWT.

Simply stating that OFC is GPL and therefore ExtGWT should use it over any other solution is a bit selfish.
Look at the list of large commercial companies using ExtJS.
Since the change in licensing they have either moved away completely or they have bought commercial licenses too.

I think Fusion Chart is a far better solution. There is a a commercial version or a free version.
This suits both camps much better.

ET

EvilTed
28 Aug 2008, 5:11 PM
There is already a project for building Open Flash Charts in Java.
It is called OFC4J.

http://code.google.com/p/ofcj/

ET

sheesh-kebab
28 Aug 2008, 5:29 PM
ofc4j is not for GWT - OFCGWT is however, and will work for easy embedding OFC2 charts into GWT. I think however that the combination of OFC4J and OFCGWT could be pretty nice too - although not sure.

Currently OFC2 is GPL, however I've read some rumblings that it may become more liberal in its licensing. Support for Fusion Charts would be cool too, I agree. Maybe ExtJs guys could take this one up since Fusion Charts fits better into the free/commercial model.

zaccret
4 Sep 2008, 2:07 AM
Folks, some of you are missing the point I think:
Commercial companies will not touch GPL period.
This is why my company bought a commercial license for ExtGWT.

Simply stating that OFC is GPL and therefore ExtGWT should use it over any other solution is a bit selfish.
Look at the list of large commercial companies using ExtJS.
Since the change in licensing they have either moved away completely or they have bought commercial licenses too.

I think Fusion Chart is a far better solution. There is a a commercial version or a free version.
This suits both camps much better.

ET

Again : Open Flash Chart is GPL but the author won't avoid you to use it in a proprietary solution (quoted from here (http://teethgrinder.co.uk/open-flash-chart/download.php)) :


Open Flash Chart is a compiled flash object which communicates with the world by downloading a data file. This is 'at arms length' and means you can use it in a commercial product, so long as you inform your users that Open Flash Chart is GPL and provide access (e.g. a link) to the source code.

hendricd
4 Sep 2008, 2:31 AM
DId you guys miss out on OCF-2 (http://teethgrinder.co.uk/open-flash-chart-2/index.php) (LGPL)? And its all JSON-fed.

sheesh-kebab
4 Sep 2008, 5:31 PM
yey, finally it seems to have been finalized. LGPL it is then (it used to be GPL in the pre-beta releases)

sheesh-kebab
4 Sep 2008, 5:47 PM
oh, didn't notice OFCGWT is now LGPL - which is kinda bad and is not really useable in commercial projects based on GWT - or really any closed source GWT projects (GWT obviosly has a compiler that links OFCGWT code together with whatever other GWT code of yours, creating by GNU's interpretation a derivative work which is subject to the same terms as GPL license, and not Lesser GPL).

It would be better if OFCGWT stayed licensed under Apache2.0 (or some GPL/Commercial setup similar to GXT/ExtJs).

Tim
http://gwtnow.com

gslender
4 Sep 2008, 6:31 PM
oh, didn't notice OFCGWT is now LGPL - which is kinda bad and is not really useable in commercial projects based on GWT - or really any closed source GWT projects (GWT obviosly has a compiler that links OFCGWT code together with whatever other GWT code of yours, creating by GNU's interpretation a derivative work which is subject to the same terms as GPL license, and not Lesser GPL).

Tim,

Can't say I agree with that view... /:)

Would you mind pointing out what specific part of the LGPLv3 license you believe states that 1) using something like the GWT compiler with a LGPL library would be considered a derivative works, and 2) where is states that doing so would make it all become GPL (instead of LGPL)?? :-?

Cheers,
Grant

sheesh-kebab
4 Sep 2008, 7:42 PM
there was this lengthy discussion on this over on the mygwt forum at some point (with a reply from FSF on the matter), however that post is now gone somewhere. Here is the link to the thread on the google groups:

http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/93d36a0ebd586b8

I personally didn't really talk to anyone at FSF, however my reading of LGPL is similar to what folks were talking about in that case.

Anyway, I'm just pointing this out while temporarily replacing my tinfoil hat with whatever lawyers wear (and immediately putting my tinfoil hat back on :) )

gslender
4 Sep 2008, 8:41 PM
Tim,

If anything, that just confirms my view in that you

1) must state what libraries use LGPL code; and

2) provide a way for users to get the same source you used in your code (ie a link to the very same original LGPL library).

There is no mention or intention that LGPL means everything turns GPL. Saying that is spreading FUD.

I've not yet read anything that suggests any compiled app using LGPL must do anything more than what I've outlined above - this would be the "lesser" part of the L in LGPL.

Cheers,
Grant

sheesh-kebab
4 Sep 2008, 9:21 PM
gslender,

There was an official response from FSF on this. Check with Darrel on where the post went. Or double check with FSF - I'm sure they'll clear it up again (or maybe just leave it up to the users).

Again, I'm in no way trying to persuade the change in the license - there is no reason for me to do so - just trying to point out some not so well known however previously discussed questions related to GNU license terms.

gslender
4 Sep 2008, 9:31 PM
There was an official response from FSF on this.

Couldn't have been that "official" if it can't be found (or was posted to a forum). Clearly if the FSF are clarifying their view then it should be made on their website... but alas I can understand your point if you feel you read it somewhere by someone who should know.


Or double check with FSF - I'm sure they'll clear it up again (or maybe just leave it up to the users).

I think reading the license agreement is fairly clear - it seems it is you that have developed a different view from the license and I'm asking that you provide support for your claim. If you are saying its based on something you read, that no longer exists, posted by some guy - then I'm happy with accepting what I already know and can validate right now as being true.


Again, I'm in no way trying to persuade the change in the license - there is no reason for me to do so - just trying to point out some not so well known however previously discussed questions related to GNU license terms.

It is probably not so well known because its false and FUD. There just isn't any part of the LGPL that suggests compiled works become GPL. The entire point of LGPL was to allow compiled works (that use LGPL libraries) to exist without having to make the entire works GPL. Your claim is contrary to the spirit of the agreement.

Cheers,
Grant

sheesh-kebab
4 Sep 2008, 10:24 PM
From what I remember from FSF reponse was related to impossibility under GWT to satisfy conditions outline sections 4 (d) (1) of LGPL, given that GWT produces statically linked output with no ability to substitute version of the LGPL library at run time. Typically a good test of compliance with LGPL terms for an java application is whether one could substitute one oversion of an LGPL library with another without recompiling the application.

Btw, none of this has nothing to do with the spirit of anything - licenses in US are created not to reflect the spirit but rather outline the terms that in worst case scenarios are tested in courts. Also, GPL was not tested in any courts and technically speaking its somewhat unknown whether any of the GPL terms are valid.

gslender
4 Sep 2008, 11:16 PM
Typically a good test of compliance with LGPL terms for an java application is whether one could substitute one oversion of an LGPL library with another without recompiling the application.

I have never seen or heard that before... where are you getting this from? Any application that links (either statically or dynamically) can use a LGPL library - there is just so many commercial apps doing this and many of them don't allow drop-in replacement of code like you are suggesting.

In any case, section d) provides an option and I would suggest option 0) is sufficient -which is to offer access to the library's source and there is no Corresponding Application Code in this use as the library can be used without any needed application code to recombine/link without that code. Option 1 can be safely ignored in this agreement.


d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.


I again also fail to see where it says LGPL becomes GPL ?


Btw, none of this has nothing to do with the spirit of anything - licenses in US are created not to reflect the spirit but rather outline the terms that in worst case scenarios are tested in courts. Also, GPL was not tested in any courts and technically speaking its somewhat unknown whether any of the GPL terms are valid.

I use the phrase "spirit of the agreement" as this is often used in a legal decision to determine if the contract was intending to restrict as it is being contested... I'm suggesting that LGPL implies reduced restrictions and your implication is greater or equal - which would not be "lessor"

Cheers,
Grant

zaccret
5 Sep 2008, 1:08 AM
Hi guys,

I found what you were talking about, sheesh-kebab : http://extjs.com/forum/showthread.php?p=157961#post157961
Anyway, a derivative work from LGPL never becomes GPL... This is trivial... /:)

OFCGWT uses OFC-2. OFC-2 is LGPL and OFCGWT is LGPL : no issue.

Now suppose you want to use OFCGWT in an application. Following what is said in the post, it SEEMS that you WOULD have to provide Minimal Corresponding Source and Corresponding Application Source (to comply a requirement from the LGPL license, section 4d). Read the LGPL, this is really far from GPL restrictions...

sheesh-kebab
5 Sep 2008, 10:50 AM
zaccret, thanks for the link - that's the FSF response I was referring to all along just couldn't find it (it was originally posted in the old mygwt forum).

EvilTed
5 Sep 2008, 12:58 PM
Darrel,

Can you please add support for PowerCharts when you add the FusionCharts stuff?
I'm using FusionCharts now with ExtGWT using some third party code.
The results are first rate!
I really want to have support for both PowerChart and FusionChart built into ExtGWT.
Do you think there is a possibility of this happening?

Cheers

ET

sheesh-kebab
15 Sep 2008, 6:12 PM
I found another pretty good option for charting, for whoever is interested - it's kinda similar to fusion charts, Flash-based, just seems to be more liberal in licensing (it's no OSS, but lets you use the latest commercial version for free):

AmCharts - (http://www.amcharts.com/) - quite comprehensive regular charting suite
AmMap - (http://www.ammap.com/) - geographical mapping suite

both products have quite impressive demos and are driven by XML for display and have programmatic interactivity via javascript, so a GWT wrapper could be quite easy and useful.

dardison
16 Sep 2008, 7:07 PM
Hi gslender,

I downloaded ofcgxt an at a first look works fine.
I managed to build a test class taking some code from your test.java from ofcgwt.

For anyone who wants to tested here is the code I wrote:


import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Viewport;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.RootPanel;
import com.rednels.ofcgwt.client.model.ChartData;
import com.rednels.ofcgwt.client.model.axis.XAxis;
import com.rednels.ofcgwt.client.model.axis.YAxis;
import com.rednels.ofcgwt.client.model.elements.BarChart;
import com.rednels.ofcgwt.client.model.elements.PieChart;
import com.rednels.ofcgwt.client.model.elements.BarChart.BarStyle;

import ext.ux.ofcgxt.client.GxtChartWidget;

public class Testing extends Viewport implements EntryPoint {

public void onModuleLoad() {
RootPanel.get().add(this);
}

@Override
protected void onRender(Element parent, int pos) {
super.onRender(parent, pos);
TabPanel tabPanel=new TabPanel();
tabPanel.setSize(600, 400);

TabItem pieItem = new TabItem();
pieItem.setText("Torta");
pieItem.add(addPieChart());
tabPanel.add(pieItem);

TabItem barItem = new TabItem();
barItem.setText("Barras");
barItem.add(addBarChart());
tabPanel.add(barItem);

this.add(tabPanel);
}

public GxtChartWidget addPieChart(){
GxtChartWidget chart=new GxtChartWidget();
ChartData cd = new ChartData("Sales by Region","font-size: 14px; font-family: Verdana; text-align: center;");
cd.setBackgroundColour("#ffffff");
PieChart pie = new PieChart();
pie.setAlpha(0.3f);
pie.setNoLabels(true);
pie.setTooltip("#label# $#val#<br>#percent#");
pie.setAnimate(true);
pie.setGradientFill(true);
pie.setColours("#ff0000","#00ff00","#0000ff","#ff9900","#ff00ff");
pie.addSlices(new PieChart.Slice(11000,"AU"));
pie.addSlices(new PieChart.Slice(88000,"USA"));
pie.addSlices(new PieChart.Slice(62000,"UK"));
pie.addSlices(new PieChart.Slice(14000,"JP"));
pie.addSlices(new PieChart.Slice(43000,"EU"));
cd.addElements(pie);
chart.setSize("300", "300");
chart.setJsonData(cd.toString());
return chart;
}

public GxtChartWidget addBarChart(){
GxtChartWidget chart=new GxtChartWidget();
ChartData cd1 = new ChartData("Sales by Month 2006","font-size: 14px; font-family: Verdana; text-align: center;");
cd1.setBackgroundColour("#ffffff");
XAxis xa = new XAxis();
xa.setLabels("J","F","M","A","M","J","J","A","S","O","N","D");
xa.setMax(12);
cd1.setXAxis(xa);
YAxis ya = new YAxis();
ya.setSteps(16);
ya.setMax(160);
cd1.setYAxis(ya);
BarChart bchart1 = new BarChart(BarStyle.GLASS);
bchart1.setTooltip("$#val#");
bchart1.addValues(133,123,144,122,155,123,135,153,123,122,111,100);
cd1.addElements(bchart1);
chart.setSize(300, 300);
chart.setJsonData(cd1.toString());
return chart;
}

}


I really need 2 things in my app: charts and printing, so I will be very glad to colaborate with your testing in anyway.

I think that DataModel support will be a good next step to integrate with gxt.

please let me know if I could be of any help.

regards,
Daniel

gslender
16 Sep 2008, 7:26 PM
An ExtGWT (ExtJS) version is available at http://code.google.com/p/ext-ux-ofcgxt/

I agree that next step would be to add DataModel support, and if you have some ideas on that, I'd be happy to add them and work on that.

dardison
17 Sep 2008, 6:25 AM
I think that the integration should provide something like ChartStore <--> ChartBinder classes and ModelStringProvider
Maybe colors and toolTips could be predefined by default.

I have a schedule deadline on Friday, but I I promise that I will develop something on this during the weekend.

dardison
20 Sep 2008, 10:30 AM
Hi,

I added an implementation of BarChart integrated with ModelData to OFCGXT.

The project is available at: http://code.google.com/p/ext-ux-ofcgxt/

I put the code on a new branch as gslender suggested, the name of the branch is IModel.

It basically works around 2 classess:

ChartElementProvider is an interface that works as a wrapper for Model instance to get Labels and values for the chart.

ModelBarChart<M> is a widget that builds a Bar Chart from a ListStore<M>

Regards,
Daniel

zaccret
13 Oct 2008, 1:14 AM
What about using Google Visualizations API, like this ExtJS extension (http://extjs.com/blog/2008/10/13/google-visualization/) ? Most of the visualizations are not Flash-based, but use SVG/VML, so no need of the Flash plugin !

MeMyself
6 Nov 2008, 12:41 AM
I think the Flash Charting API is good news. However, it doesn't bode well for enterprise deployments where Flash is a no-no. (We are currently evaluation GWT toolkits for our new generation product and for us Flash is not an option - lots of our clients just don't allow it.)

Could I throw my vote in for a Google Visualisations API wrapper as well? Loads of JS-only components.

darrellmeyer
6 Nov 2008, 10:09 AM
Google Visualizations is being considered for the charting solution for release 2.0. We will evaluate the Google solution once we begin development.

MeMyself
6 Nov 2008, 10:17 AM
I'm really glad to hear that.

It is a fine line to walk - on the one hand you get the same benefits as you have in GXT with a pure JS charting solution (there are very good reasons why people are using it over Flex/Silverlight in Enterprise development) on the other hand you may get a richer experience.

gondrong
27 Nov 2008, 1:22 AM
Hi, I'm new to Ext and have Ext 2.2 for the project I'm developing. Is there any chart codes that I can use for my project??

Richie1985
10 Feb 2009, 12:23 AM
hi,

what do you thinking about dojo charting:

http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/charting/tests/ (http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/charting/tests/)

bye

jarrod
30 Mar 2009, 10:46 PM
I think the Flash Charting API is good news. However, it doesn't bode well for enterprise deployments where Flash is a no-no. (We are currently evaluation GWT toolkits for our new generation product and for us Flash is not an option - lots of our clients just don't allow it.)

Could I throw my vote in for a Google Visualisations API wrapper as well? Loads of JS-only components.

But doesn't Google Visualisations API require connectivity to Google itself?
Some enterprises don't even allow their staff PCs to have internet connectivity... (:|

sven
31 Mar 2009, 3:56 AM
GXT 2 chart code is already available in SVN.

sdc
31 Mar 2009, 4:35 AM
So it is based on Open Flash Chart 2, which is LGPL licensed. I also guess this is a port of OFC-GXT by gslender : http://code.google.com/p/ext-ux-ofcgxt/

sven
31 Mar 2009, 4:36 AM
Well not really a port. There is a FlashComponent to handle basic flash interaction. The chart is based on that component.

zaccret
1 Apr 2009, 8:31 AM
Nice ! Glad to see that you choose an open source solution !