Great work Stéphane. Good to have a robust charting option available. I'll put up a blog post as well when I get some time.
Kind regards Bob On 7/12/2010 13:10, Stéphane NICOLAS wrote: > Hello all, > > I am rather new to click. I tested the framework a month or two ago and > enjoyed it. > The click framework is nevertheless missing a robust chart components suite. > > So I decided to give some time on this idea and built a new API to get chart > components inside click. > There are some good javascript (mostly jquery based) charting libraries > around for the web. The API > I propose, makes them easily usable into click projects. > > The idea of this new API is simple : > - provide a core api that acts as an abstraction layer above charting > components > - povide 2 implementations of this abstract layer. For now it supports both > flot and jqplot. Those 2 > javascript libraries are free and extensible. > - provide a set of examples, in the same way as click-jquery, and click > itself do. > > The jqplot implementation of the api offers all those graphs : (all of them > being able to represent > multiple data set per graph) > - lines > - bars > - blocks > - pies > - bezier curves > - mekko > - OHLC / HLC / Candlesticks > - bubbles, funnel, donut, meter gauge, etc. > it also offers rotated texts, multiple axis. For those who know jqplot, the > api has all > functionalities, including plugins like cursor, higlighter, point labels and > so on. > > The API is basically a wrapper around javascript library, giving the java > programmer a strong > advantage when using those frameworks : > - no more struggle with those horrible strings to generate a working > javascript in your html pages. > The API generates all the code for you. The generated code can easily be > inspected in debug mode. > - all imports of javascript and css are made for you too, so programmers just > don't care at all > about that. > - strong typing for charting and drawing options versus loosely typed > javascript variables. > - basic ready-to-use chart components with powerfull defaults (colors, > legends, shadows, tooltips, > etc.). All components, even ready-to-use ones are highly customizable. > - You still have to learn a specific javascript API if defaults are not > enough but it is much more > easy to use as it appears as a set of java objects (with javadoc and > completion). > > The whole code is available on google code project hosting : > - http://code.google.com/p/click-charts-enhanced/ > > The demo is available at > - http://latest.click-charts-enhanced.appspot.com/ > > There is a download of click-charts-enhanced-api-core, version 0.7 available > here : > - http://code.google.com/p/click-charts-enhanced/downloads/list > it includes jqplot and plot, the core classes, everything need to add as a > jar in a click project. > > Bob Schellink helped me quite a lot to set the project, made me discover > jqplot and provided tons of > good advices. > Thank you bob for all your kind answers. > > I write on this list to get some feedback of the project. The project has > been a lot of work, > especially to cover all classes of jqplot. > I think the project opens the way to unify quite a lot of javascript > framework from a java web > application point of view. I could be extended to other javascript (or flash > ?) libraries, > and could also be ported to other java frameworks like jsf, struts, tapestry > and for sure wickets. > As there would be another good effort before starting that, I would like to > know how people are > interested on the project in its early stage. > > I shall say I am very bad at packaging stuff, project management cycles, but > eager to learn. > Stéphane > > Here after, I give an excerpt of java code to build a pie chart using this > api : > http://latest.click-charts-enhanced.appspot.com/JQPlotsPieChartsDemo.htm > > To get the last pie chart is your click app, here is the java code : > > pieChart = new PieChart( "lineChart4" ); > //to see generated code > pieChart.setDemoMode( true ); > > > pieChart.setLabel("Pie Chart with Legend and sliceMargin"); > > //easy to use shortcuts > pieChart.setSliceMargin( 8 ); > pieChart.setFill( false ); > pieChart.setShadow( false ); > pieChart.setLineWidth( 5 ); > > pieChart.setDiameter( 100d ); > > //power of inheritance, the pie chart still is highly > //customizable > pieChart.getLegend().setLocation( Compass.WEST ); > > //ease of data input > pieChart.add( "frogs", 3 ); > > pieChart.add( "buzzards", 7 ); > pieChart.add( "deer", 2.5 ); > pieChart.add( "turkeys", 6 ); > pieChart.add( "moles", 5 ); > pieChart.add( "ground hogs", 4 ); > > > -------- >
