Hi Martin,

Google Chart is versioned
(https://developers.google.com/chart/interactive/docs/release_notes#Releases)
but only in newer "frozen versions", 41 .. 45. 45 is current. Not ideal
for naming, since Google does not emphasize versioning at all.

Perhaps we can create a name from "image vs. loader" based or "image vs
SVG/VML" based. googlecharts-parent is based on the deprecated image
api: https://developers.google.com/chart/image/ The current API is based
on function from a loaded library:
https://developers.google.com/chart/interactive/docs/basic_load_libs.
Please make a suggestion.

My library (currently named gchart-parent) has been improved since my
first post:
 - better package structure
 - implemented OptionBuilder with fluent interface
 - make ChartOptions and JsonStringer model-aware, so values in options
can be IModel
 - offer ChartLibLoaderBehavior for Page to avoid double library loading
on pages with multiple charts by use of HeaderItem#getDependencies
 - more examples, new examples analog to Google's examples
 - tried to make chart redrawable by AJAX, but this is not finished, I
have problems calling the draw callbacks when adding to target. Here I
need some help. Should I write a post to us...@wicket.apache.org?

I will prepare a pull request, but before I have to check:
 - find name (see above)
 - learn maven toolchain definition
 - learn again how to make a neat pull request
 - fix AJAX issue
 - should I include my local git history in request or start with a
clean history?
 - I mixed some lambda expressions and stream use with some traditional
for loops. How should this be unified? Java 8 or not?

Thank you for your help
Dieter

Am 13.08.2017 um 12:56 schrieb Martin Grigorov:
> Hi Dieter,
> 
> Are Google Charts versioned ?
> Maybe we can add your library as wicketstuff-google-charts2, or whatever is
> the correct version. As we did with Google Maps APIs.
> 
> Please create a Pull Request!
> Thank you!
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Mon, Aug 7, 2017 at 10:36 AM, Dieter Tremel <tre...@tremel-computer.de>
> wrote:
> 
>> Hello wicket-team,
>>
>> for a project visualizing metar weather data I used wicket-charts based
>> on Highcharts in a former version
>> (http://tremel-computer.no-ip.org:8080/metarstation/). Due to licensing
>> of Highcharts I decided to move to Google charts, but found the
>> implementation in wicketstuf outdated, since it depends on the image
>> chart API, which is deprecated since 2012.
>>
>> So I wrote a Google Charts component based on the actual API. I am
>> pleased with it, perhaps it could be helpful for other developers, so
>> I'd like to give it to wicketstuff.
>>
>> It is rather lightweight, just enough Java to render the necessary
>> JavaScript to the page header without knowledge of JavaScript. Knowledge
>> of the Google API is needed to use it, it does not hide anything of the
>> API, it should be quite feature complete. It is based at many points on
>> org.apache.wicket.ajax.json and allows the user to build Java-Objects
>> from compact JSON-Strings too, for example look at the essential class
>> ChartOptions. Most of the classes are easy to understand with knowledge
>> of the Google Charts API, since they are counterparts of the structure
>> there. Only OptionHelper as container for convenience methods is a bit
>> clumsy, but I have a different solution as a builder with a fluent
>> interface in mind. gchart is actually used in a new branch of my weather
>> app and does it's job there well.
>>
>> Perhaps you can have a look at it, if you like it, we can integrate it
>> in wicketstuff. The ZIP in the attachment has already the structure with
>> parent, lib and examples. I tried to write useful JavaDoc and some basic
>> unit tests. The example is a quickstart giving two charts on one page,
>> first one simple like Googles's Getting Started, the other more complex
>> with a overview how to use the lib's features.
>>
>> Three issues (see TODO lines integrated in the source) are existing, but
>> two are small, not blocking. The essential one is if the rendering of
>> JavaScript in Chart#renderHead(final IHeaderResponse response) is
>> sufficient for refreshing the chart by AJAX, I am not sure if. You can
>> decide this in a second, I believe, and give me some hints to make the
>> chart AJAX ready.
>>
>> I first wrote to Martin Grigorov since he helped me long ago to
>> contribute a bit to wicketstuff. He told me he is on vacation and I
>> should repeat the mail to the list.
>>
>> Dieter Tremel

Reply via email to