/gwt-d3

A GWT wrapper library around the d3.js library

Primary LanguageJavaOtherNOASSERTION

#gwt-d3: the GWT wrapper around d3.js

Travis CI - Build status Javadocs

This library provides access to the d3.js API to the Java and GWT community. It allows GWT developers to use d3.js library in their project.

Goals of the library:

  • provide access to relevant API of d3.js API
  • enrich the API to ease Java programming style of d3 (turns JS array into List, string constants to Enum, ...)
  • make a bridge between GWT Widget API and d3

Have a look at the demo.

 


 

##Getting started

1. Configure a project

Using Maven

add the gwt-d3-api module to your pom.xml:

<dependencies>
  ...
  <dependency>
    <groupId>com.github.gwtd3</groupId>
    <artifactId>gwt-d3-api</artifactId>
    <version>1.3.0</version>
    <scope>provided</scope>
  </dependency>
  ...

Note: these JARs don't contain any server-side code, so you don't need to package them into your webapp.

Without Maven

Download gwt-d3-js-3.5.11.jar, gwt-d3-api-1.3.0.jar. Add the JARs to the project classpath.

Note: these JARs don't contain any server-side code, so you don't need to package them into your webapp.

2. Add the gwt D3 module inheritance in your gwt module file (.gwt.xml):

  <inherits name='com.github.gwtd3.D3' />

3. Check everything works fine :

  final Label versionLabel = new Label("d3.js current version: " + D3.version());
  RootPanel.get().add(versionLabel);

Launch your application; the current version of d3.js should be displayed.

##Learn D3

  • The best way to learn D3 is to read the d3.js tutorials
  • Then you may want to check the examples gallery from Mike Bostock website
  • You may also be interested in forking the gwt-d3 repository to see the demo source code
  • Read the Javadocs
  • Look at the demo.

##API docs

##Release notes

  • 1.3.0 (9th of jan 2017) : made GWT 2.8-compliant
  • 1.2.0 (28th of jan 2016) : added Arrays.median/Arrays.mean API, fix some regression to ensure future GWT 2.8.0 compatibility, added Cluster and Tree layouts
  • 1.1.1 (6th of feb 2015) : integrated a bug fix (color brighter() and darker() methods take a decimal rather than an integer argument
  • 1.1.0 (3rd of feb 2015) : made GWT 2.7-compliant, completed SVG Shapes,SVG Controls, and Geometry API + some bug fixes
  • 1.0.1 (7th of dec 2013) : a bug fix release to make gwt-d3 compatible with GWT super dev mode.
  • 1.0.0 (30th of sept 2013) : initial release (see below for the API coverage)

##Scope and coverage

Currently (9th of jan 2017), version 1.3.0 of gwt-d3 depends on the version 3.5.11 of d3.js codebase. However, not all the API is covered. Please also have a look to the issues.

#####CORE

API status version notes
Selections Complete 1.0.0
Transitions Complete 1.0.0
Localization - - unplanned
Working with Arrays Partial 1.0.0
Math Complete 1.0.0
String Formatting Complete 1.0.0
Colors Complete 1.0.0
Loading External Resources Partial - unplanned
CSV Formatting - - unplanned
Namespaces - - unplanned
Internals - - unplanned

#####SCALES

API status version notes
Linear Complete 1.0.0
sqrt Complete 1.0.0
pow Complete 1.0.0
log Complete 1.0.0
quantize Complete 1.0.0
threshold Complete 1.0.0
quantile Complete 1.0.0
identity Complete 1.0.0
Ordinal Complete 1.0.0

#####SVG

API status version notes
Shapes
Line Complete 1.0.0
line.radial Complete 1.1.0
area Complete 1.1.0
area.radial - - not planned
arc Complete 1.1.0
chord Complete 1.1.0
diagonal Complete 1.1.0
diagonal.radial Complete 1.1.0
Symbol Complete 1.0.0
Axes Complete 1.0.0
Controls Complete 1.1.0

#####LAYOUTS

API status version notes
Bundle - - planned for 1.4.0
Chord - - planned for 1.4.0
Cluster Complete 1.2.0
Force - - planned for 1.4.0
Hierarchy Complete 1.2.0
Histogram - - planned for 1.4.0
Pack - - planned for 1.4.0
Partition - - planned for 1.4.0
Pie - - planned for 1.4.0
Stack - - planned for 1.4.0
Tree Complete 1.2.0
Treemap - - planned for 1.4.0

#####TIME

API status version notes
Time Formatting Complete 1.0.0
Time Scales Complete 1.0.0
Time Intervals Complete 1.0.0

#####GEOGRAPHY

API status version notes
Paths - - planned for 1.5.0
Projections - - planned for 1.5.0
Streams - - planned for 1.5.0

#####GEOMETRY

API status version notes
Quadtree Complete 1.0.0
Polygon Complete 1.0.0
Hull Complete 1.0.0
Voronoi Partial 1.1.0

#####BEHAVIORS

API status version notes
Drag Complete 1.0.0
Zoom Complete 1.0.0

##Version mapping

GWT-D3 version d3.js version GWT-D3 release date
1.3.0 3.5.11 2017 01 09
1.2.0 3.5.11 2016 01 30
1.1.1 3.5.3 2015 02 06
1.1.0 3.5.3 2015 02 03
1.0.1 3.3.10 2013 12 07
1.0.0 3.3.6 2013 09 30
0.0.16 3.3.6 2013 09 29
0.0.15 3.1.10 2013 07 29
0.0.14 3.1.10 2013 07 24
0.0.13 3.1.10 2013 06 13
0.0.12 3.1.10 2013 06 01

##Debugging d3.js

You may be interested in debugging d3.js scripts when using super dev mode. If so, just add to your gwt application module file the following configuration:

  <set-property name="d3.pretty" value="true"/>

##License

See LICENSE file